[SCM] csound/master: New upstream version 6.10.0~dfsg

fsateler at users.alioth.debian.org fsateler at users.alioth.debian.org
Sat Jan 27 12:51:20 UTC 2018


The following commit has been merged in the master branch:
commit 7d6842e1ca4f57a8235df94682d6c8c1630430ce
Author: Felipe Sateler <fsateler at debian.org>
Date:   Fri Dec 22 20:14:09 2017 -0300

    New upstream version 6.10.0~dfsg

diff --git a/.gitignore b/.gitignore
index e2b57e4..92f310a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -199,3 +199,6 @@ xcuserdata/
 emscripten/examples/javascripts/CsoundObj.js
 emscripten/examples/javascripts/libcsound.js
 *.bz2
+tests/soak/CheckSums
+tests/soak/Output
+Opcodes/stk/
diff --git a/.travis.yml b/.travis.yml
index 620b8de..e755586 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,18 +2,13 @@ language: cpp
 compiler:
       - gcc
 #      - clang
-sudo: required
+sudo: false
 dist: trusty
-group: deprecated-2017Q2
 env:
       global:
            - secure: "pOICMBtfwljj450Vht1D2/XvtUm07edkbiUI0+PCnfuwiwBFJyqY919whZu+CrplQvkVS+RzvxT3wpgkVccflo0uvNJ7NwfKksRqrUKwTp59nGIwjUsnDjI3YkxOQyxIdIPsSm3bUxXVy/Jge0v6vzvbbPXKxyAxKsupnUBYOwM="
            - OMP_NUM_THREADS=4
            - VERBOSE=1
-#before_install:
-#      - sudo apt-get update
-install:
-      - sudo apt-get install -qq cmake libsndfile1-dev libasound2-dev libjack-dev portaudio19-dev libportmidi-dev libpulse-dev swig liblua5.1-0-dev python-dev puredata-dev default-jdk libfltk1.1-dev libfluidsynth-dev liblo-dev fluid ladspa-sdk libboost-dev libboost-serialization-dev libpng-dev dssi-dev libstk0-dev libgmm++-dev bison flex libportsmf-dev libeigen3-dev libcunit1-dev python-tk
 before_script:
         - mkdir -p build
 script:
@@ -29,6 +24,35 @@ addons:
           build_command_prepend: "mkdir -p $TRAVIS_BUILD_DIR/build && cd $TRAVIS_BUILD_DIR/build && cmake .."
           build_command: "make -C $TRAVIS_BUILD_DIR/build"
           branch_pattern: coverity_scan
+      apt:
+          packages:
+              - cmake
+              - libsndfile1-dev
+              - libasound2-dev
+              - libjack-dev
+              - portaudio19-dev
+              - libportmidi-dev
+              - libpulse-dev
+              - swig
+              - liblua5.1-0-dev
+              - python-dev
+              - puredata-dev
+              - default-jdk
+              - libfltk1.1-dev
+              - libfluidsynth-dev
+              - liblo-dev
+              - fluid
+              - ladspa-sdk
+              - libpng-dev
+              - dssi-dev
+              - libstk0-dev
+              - libgmm++-dev
+              - bison
+              - flex
+              - libportsmf-dev
+              - libeigen3-dev
+              - libcunit1-dev
+              - python-tk
 
 notifications:
       email:
diff --git a/AUTHORS b/AUTHORS
index 8e5c0b2..b9abcad 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -80,6 +80,7 @@ Jean Piché
 Ville Pulkki
 John Ramsdell
 Marc Resibois
+Sigurd Saue
 Simon Schampijer
 Rob Shaw
 Paris Smaragdis
diff --git a/BUILD.md b/BUILD.md
index 89d9e11..8cca758 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -40,15 +40,16 @@ required for building Csound, as well as for installing into /usr/local.
 
 ### Building Csound 6 
 
-The first thing to do is get a copy of the Csound 6 sources. The following
-instructions are written for those getting a copy of the source code from Git.
+The following instructions are written for those getting a copy of the source code from Git.
 You will need to adjust the steps accordingly when using the source tarball from
 the files section.
 
 The first thing to do is make sure you have all of the required dependencies for
 building Csound. In a terminal, do the following:
 
-1.  `sudo apt-get build-dep csound`
+1.  Edit, as root, `/etc/apt/sources.list` and ensure that each line beginning with `deb` has another line below it that is identical except that `deb` is replaced with `deb-src`. Then run `sudo apt-get update`.
+
+1.  `sudo apt-get build-dep csound` 
 
 2.  `sudo apt-get install cmake`
 
diff --git a/Bela/CsoundBela.cpp b/Bela/CsoundBela.cpp
new file mode 100644
index 0000000..8ea941d
--- /dev/null
+++ b/Bela/CsoundBela.cpp
@@ -0,0 +1,90 @@
+#include <Bela.h>
+#include <csound/csound.hpp>
+#include <csound/csPerfThread.hpp>
+
+#define BLOCKS 8
+
+struct csData{
+  Csound *csound;
+  CsoundPerformanceThread *thread;
+  void *cbuff;
+  int blocksize;
+  int count;
+  int read;
+  MYFLT *buffer;
+  MYFLT scal;
+};
+
+csData* gCsData;
+
+void cback(void *p){
+  csData* pp = (csData *) p;
+  if(pp->thread->GetStatus() == 0)
+     csoundWriteCircularBuffer(csound, pp->cbuff,
+			    (void *) csoundGetSpout(csound),
+			    pp->blocksize);
+}
+
+bool setup(BelaContext *context, void *userData)
+{
+
+  gCsData  = new csData;
+  Csound *csound = new Csound();
+  csound->Compile("trapped.csd","-+rtaudio=null", "--realtime");
+  gCsData->blocksize = csound->GetNchnls()*csound->GetKsmps();
+  gCsData->cbuff = csoundCreateCircularBuffer(csound->GetCsound(),
+					      gCsData->blocksize*BLOCKS,
+					      sizeof(MYFLT));
+
+  gCsData->thread = new CsoundPerformanceThread(csound->GetCsound());
+  gCsData->thread->SetProcessCallback(cback,gCsData);
+  gCsData->csound = csound;
+  gCsData->count = 0;
+  gCsData->read = 0;
+  gCsData->scal = userData->csound->Get0dBFS();
+  gCsData->buffer = new MYFLT[gCsData->blocksize];
+  gCsData->thread->Play();
+  //userData = data;
+    
+  return true;
+}
+
+void render(BelaContext *context, void *Data)
+{
+  int n,i,j,blocksize,read;
+  csData *userData = gCsData;
+  MYFLT *buffer = userData->buffer;
+  MYFLT scal = userData->scal;
+  j = userData->count;
+  read = userData->read;
+  blocksize = userData->blocksize;
+    
+  for(n = 0; n < context->audioFrames; n++){
+    for(i = 0; i < context->audioOutChannels; i++){
+      if(j >= read) {
+	read = csoundReadCircularBuffer(NULL,
+				     userData->cbuff,
+				     buffer,
+				     blocksize);
+	j = 0;
+      }
+      if(read > 0)
+        audioWrite(context,n,i,(float)buffer[j++]/scal);
+    }
+  }
+  userData->count = j;
+  userData->read = read;
+}
+
+void cleanup(BelaContext *context, void *Data)
+{
+  csData *userData = gCsData;
+  gCsData->thread->Stop();
+  gCsData->thread->Join();
+  csoundDestroyCircularBuffer(gCsData->csound->GetCsound(),
+			      gCsData->cbuff);
+  delete userData->csound;
+  delete userData->thread;
+  delete[] userData->buffer;
+  delete userData;
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f97541b..b100618 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,4 @@
-# When the minimum required version is bumped to >= 2.8.12, remove this line,
-# remove all occurences of LINK_INTERFACE_LIBRARIES, and modify all target_link_libraries
-# to be PRIVATE (eg, target_link_libraries(${CSOUNDLIB} PRIVATE ...) )
-# This silences a cmake warning about a variable name change
-set(CMAKE_POLICY_DEFAULT_CMP0022 OLD)
-cmake_minimum_required(VERSION 2.8.3)
+cmake_minimum_required(VERSION 2.8.12)
 
 project(Csound)
 
@@ -15,7 +10,7 @@ endif()
 
 message(STATUS "${CMAKE_HOME_DIRECTORY}")
 
-if(NOT MSVC)
+if(NOT MSVC AND NOT WASM)
 set(CMAKE_CXX_FLAGS_RELEASE "-O3 ")
 set(CMAKE_C_FLAGS_RELEASE "-O3 ")
 endif()
@@ -41,6 +36,14 @@ include(CheckCXXCompilerFlag)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
 
+# Utility to munge with items in a list.
+#
+macro(LIST_REPLACE LIST INDEX NEWVALUE)
+    list(INSERT ${LIST} ${INDEX} ${NEWVALUE})
+    MATH(EXPR __INDEX "${INDEX} + 1")
+    list (REMOVE_AT ${LIST} ${__INDEX})
+endmacro(LIST_REPLACE)
+
 # Utility function to make executables. All plugin targets should use this as it
 # sets up output directory set in top-level CmakeLists.txt
 # and adds an appropriate install target
@@ -79,19 +82,6 @@ function(make_utility name srcs)
     endif()
 endfunction()
 
-
-# Expands a list into a space-separated string (outvar element1 ....)
-# Why do I have to do this? Cmake, you just lost one point
-function(expand_list out)
-    set(i 1)
-    set(tmp "")
-    while( ${i} LESS ${ARGC} )
-        set(tmp "${tmp} ${ARGV${i}}")
-        math(EXPR i "${i}+1")
-    endwhile()
-    set(${out} "${tmp}" PARENT_SCOPE)
-endfunction(expand_list)
-
 # Checks if dependencies for an enabled target are fulfilled.
 # If FAIL_MISSING is true and the dependencies are not fulfilled,
 # it will abort the cmake run.
@@ -124,46 +114,6 @@ function(check_deps option)
     endif()
 endfunction(check_deps)
 
-# Shortcut to add compiler flags
-# Mandatory arguments: the flags to add, should be passed before optional keywords, can be
-#                      passed as lists or space-separated
-# Optional keywords:
-# LINKER: add to linker instead of compile flags (LDFLAGS vs CFLAGS)
-# TARGETS <target1> <target2> ...
-#           if specified, will add the flags to a target instead
-#           of the global namespace
-function(add_compiler_flags)
-    set(bool_options LINKER)
-    set(multi_val_args TARGETS)
-    cmake_parse_arguments(FLAGS "${bool_options}" "" "${multi_val_args}" ${ARGN})
-
-    expand_list(FLAGS ${FLAGS_UNPARSED_ARGUMENTS})
-
-    if(FLAGS_TARGETS)
-        foreach(target ${FLAGS_TARGETS})
-            if(NOT FLAGS_LINKER)
-                set(property "COMPILE_FLAGS")
-            else()
-                set(property "LINK_FLAGS")
-            endif()
-            get_target_property(propval ${target} ${property})
-            if(NOT propval)
-                set(propval "")
-            endif()
-            set_target_properties(${target} PROPERTIES
-                ${property} "${propval} ${FLAGS}")
-        endforeach()
-    else()
-        if(FLAGS_LINKER)
-            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAGS}")
-            set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAGS}")
-            set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FLAGS}")
-        else()
-            add_definitions("${FLAGS}")
-        endif()
-    endif()
-endfunction(add_compiler_flags)
-
 ### COMPILER OPTIMIZATION FLAGS
 option(USE_COMPILER_OPTIMIZATIONS "Use the default Csound compiler optimization flags" ON)
 if(USE_COMPILER_OPTIMIZATIONS)
@@ -205,6 +155,7 @@ endif()
 option(USE_LIB64 "Set to on to set installation directory for libraries to lib64" OFF)
 if(USE_LIB64)
     set(LIBRARY_INSTALL_DIR "lib64")
+    add_definitions("-DLIB64")
 else()
     set(LIBRARY_INSTALL_DIR "lib")
 endif()
@@ -221,11 +172,13 @@ endif()
 execute_process (
      COMMAND python -c
      "import site, sys; sys.stdout.write(site.getusersitepackages())"
-     OUTPUT_VARIABLE PYTHON_MODULE_INSTALL_DIR
+     OUTPUT_VARIABLE PYTHON_USER_SITE_PACKAGES
    )
 
-set(JAVA_MODULE_INSTALL_DIR ${LIBRARY_INSTALL_DIR})
-set(LUA_MODULE_INSTALL_DIR ${LIBRARY_INSTALL_DIR})
+SET(PYTHON_MODULE_INSTALL_DIR ${PYTHON_USER_SITE_PACKAGES} CACHE PATH "Python module install dir")
+
+set(JAVA_MODULE_INSTALL_DIR ${LIBRARY_INSTALL_DIR} CACHE PATH "Java module install dir")
+set(LUA_MODULE_INSTALL_DIR ${LIBRARY_INSTALL_DIR} CACHE PATH "Lua module install dir")
 
 # VL this is breaking CUDA compilation. It's not necessary
 #if(APPLE)
@@ -242,22 +195,99 @@ if(WIN32 AND NOT MSVC)
     set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--add-stdcall-alias")
 endif()
 
-if(MSVC) 
+if(MSVC)
   include_directories(${PROJECT_SOURCE_DIR}/msvc/include)
-  set(CMAKE_REQUIRED_INCLUDES "${PROJECT_SOURCE_DIR}/msvc/include;${PROJECT_SOURCE_DIR}/msvc/deps/include")
+  list(APPEND CMAKE_REQUIRED_INCLUDES "${PROJECT_SOURCE_DIR}/msvc/include;${PROJECT_SOURCE_DIR}/msvc/deps/include")
 endif()
 
 if(WIN32)
     set(CMAKE_SHARED_LIBRARY_PREFIX "")
     set(CMAKE_SHARED_MODULE_PREFIX "")
 
+
+if(NOT MSVC)
+    set(CSOUND_WINDOWS_LIBRARIES
+        msvcrt
+        advapi32
+        comctl32
+        comdlg32
+        glu32
+        kernel32
+        odbc32
+        odbccp32
+        ole32
+        oleaut32
+        shell32
+        user32
+        uuid
+        winmm
+        winspool
+        ws2_32
+        wsock32
+        advapi32
+        comctl32
+        comdlg32
+        glu32
+        msvcrt
+        kernel32
+        odbc32
+        odbccp32
+        ole32
+        oleaut32
+        shell32
+        user32
+        uuid
+        winmm
+        winspool
+        ws2_32
+        wsock32)
+else()
+    if(MSVC_VERSION LESS 1900)
     set(CSOUND_WINDOWS_LIBRARIES
+        msvcrt
         advapi32
         comctl32
         comdlg32
         glu32
         kernel32
+        odbc32
+        odbccp32
+        ole32
+        oleaut32
+        shell32
+        user32
+        uuid
+        winmm
+        winspool
+        ws2_32
+        wsock32
+        advapi32
+        comctl32
+        comdlg32
+        glu32
         msvcrt
+        kernel32
+        odbc32
+        odbccp32
+        ole32
+        oleaut32
+        shell32
+        user32
+        uuid
+        winmm
+        winspool
+        ws2_32
+        wsock32)
+    else()
+    set(CSOUND_WINDOWS_LIBRARIES
+        ucrt
+        vcruntime
+        advapi32
+        comctl32
+        comdlg32
+        glu32
+        kernel32
+        mincore
         odbc32
         odbccp32
         ole32
@@ -285,11 +315,24 @@ if(WIN32)
         winspool
         ws2_32
         wsock32)
+    endif()
+endif()
 
 if(MSVC)
   # Experimented with flags but did not make change performance results
   #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi /fp:fast /arch:AVX2")
   #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Oi /fp:fast /arch:AVX2")
+  #set(CompilerFlags
+  #  CMAKE_CXX_FLAGS
+  #  CMAKE_CXX_FLAGS_DEBUG
+  #  CMAKE_CXX_FLAGS_RELEASE
+  #  CMAKE_C_FLAGS
+  #  CMAKE_C_FLAGS_DEBUG
+  #  CMAKE_C_FLAGS_RELEASE
+  #  )
+  #foreach(CompilerFlag ${CompilerFlags})
+  #  string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
+  #endforeach()
 else()
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign -static-libgcc -static")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign -static-libstdc++ -static-libgcc -static")
@@ -321,6 +364,14 @@ if (HAS_CXX_VISIBILITY_HIDDEN)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
 endif()
 
+check_c_compiler_flag(-std=gnu99 HAS_GNU99)
+if (HAS_GNU99)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
+endif()
+if (HAS_CXX_VISIBILITY_HIDDEN)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
+endif()
+
 if(APPLE)
 if(IOS)
 message(STATUS "Building for iOS.")
@@ -347,7 +398,7 @@ message(STATUS "Building for OSX")
     set(VECLIB_PATH "/System/Library/Frameworks/")
   endif()
  endif()
-   
+
 endif()
 
 if(USE_DOUBLE)
@@ -390,7 +441,6 @@ endif()
 
 if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
     add_definitions("-Wno-format")
-    #    add_compiler_flags("-g")
 endif()
 
 
@@ -424,16 +474,31 @@ SET(BUILD_SHARED_LIBS ON)
 ## HEADER/LIBRARY/OTHER CHECKS ##
 
 # First, required stuff
-find_library(LIBSNDFILE_LIBRARY sndfile libsndfile-1 HINTS ${PROJECT_SOURCE_DIR}/msvc/deps/lib)
+if (MSVC)
+  find_library(LIBSNDFILE_LIBRARY NAMES sndfile libsndfile-1 libsndfile)
+else()
+  find_library(LIBSNDFILE_LIBRARY sndfile libsndfile-1)
+endif()
+
 
 if(NOT LIBSNDFILE_LIBRARY)
     message(FATAL_ERROR "Csound requires the sndfile library")
 endif()
 
-find_package(Boost)
 find_package(CURL)
 set(FLTK_SKIP_OPENGL true)
-find_package(FLTK)
+find_package(FLTK )
+#if (FLTK_FOUND AND MSVC)
+#    # If "SHARED" variants of FLTK libraries exist, use them.
+#    find_library(FLTK_SHARED_VARIANT "fltk_SHARED")
+#    message(STATUS "FLTK_SHARED_VARIANT:" ${FLTK_SHARED_VARIANT})
+#    if(FLTK_SHARED_VARIANT)
+#        message(STATUS "Using 'SHARED' variants of FLTK libraries.")
+#        LIST_REPLACE(FLTK_LIBRARIES 0 "fltk_SHARED")
+#        LIST_REPLACE(FLTK_LIBRARIES 1 "fltk_forms_SHARED")
+#        LIST_REPLACE(FLTK_LIBRARIES 2 "fltk_images_SHARED")
+#    endif()
+#endif()
 find_package(Java)
 find_package(JNI)
 find_package(LIBLO)
@@ -441,19 +506,24 @@ find_package(LUAJIT)
 find_package(MUSICXML)
 find_package(PORTSMF)
 find_package(PythonLibs 2.7)
-find_package(STK)
+if(NOT STK_LOCAL)
+    find_package(STK)
+endif()
 find_package(SWIG)
 find_package(VSTSDK2X)
 
 # TODO should this work for MSVC also?
-if(WIN32 AND NOT MSVC)
-  find_library(FLAC_LIB FLAC)
+if(WIN32)
+  find_library(FLAC_LIB NAMES FLAC flac)
   find_library(OGG_LIB ogg)
   find_library(SPEEX_LIB speex)
   find_library(VORBIS_LIB vorbis)
   find_library(VORBISENC_LIB vorbisenc)
-  set(LIBSNDFILE_SUPPORT_LIBS ${VORBIS_LIB} ${VORBISENC_LIB} ${SPEEX_LIB} ${FLAC_LIB} ${OGG_LIB}
-)
+  set(LIBSNDFILE_SUPPORT_LIBS ${VORBIS_LIB} ${VORBISENC_LIB} ${FLAC_LIB} ${OGG_LIB})
+  if(SPEEX_LIB) 
+    list(APPEND LIBSNDFILE_SUPPORT_LIBS ${SPEEX_LIB} )
+  endif()
+  #message(STATUS "${LIBSNDFILE_SUPPORT_LIBS}")
 endif()
 
 find_path(SNDFILE_H_PATH sndfile.h)
@@ -466,7 +536,7 @@ endif()
 if(NOT MSVC AND REQUIRE_PTHREADS)
   # Use ladder of if's to support older CMake versions (i.e., travis)
   find_library(PTHREAD_LIBRARY winpthread-1)
-  if(NOT PTHREAD_LIBRARY) 
+  if(NOT PTHREAD_LIBRARY)
     find_library(PTHREAD_LIBRARY pthread)
   endif()
   if(NOT PTHREAD_LIBRARY)
@@ -502,6 +572,7 @@ endif()
 find_library(VORBISFILE_LIBRARY vorbisfile)
 check_include_file(libintl.h LIBINTL_HEADER)
 find_path(EIGEN3_INCLUDE_PATH eigen3/Eigen/Dense)
+find_package(GMM)
 find_library(LIBINTL_LIBRARY intl)
 find_package(Gettext)
 check_library_exists(m lrint "" HAVE_LRINT)
@@ -670,7 +741,6 @@ set(libcsound_SRCS
     OOps/ugens6.c
     OOps/ugtabs.c
     OOps/ugrw1.c
-    OOps/ugrw2.c
     OOps/vdelay.c
     OOps/compile_ops.c
     Opcodes/babo.c
@@ -678,6 +748,7 @@ set(libcsound_SRCS
     Opcodes/compress.c
     Opcodes/eqfil.c
     Opcodes/Vosim.c
+    Opcodes/squinewave.c
     Opcodes/pinker.c
     Opcodes/pitch.c
     Opcodes/pitch0.c
@@ -829,7 +900,7 @@ set(mp3in_SRCS
     InOut/libmpadec/tables.c
     InOut/libmpadec/mpadec.c
     InOut/libmpadec/mp3dec.c)
-    
+
 list(APPEND libcsound_SRCS ${stdopcod_SRCS} ${cs_pvs_ops_SRCS} ${oldpvoc_SRCS} ${mp3in_SRCS})
 
 if(INIT_STATIC_MODULES)
@@ -838,6 +909,7 @@ if(INIT_STATIC_MODULES)
         Opcodes/ampmidid.cpp
         Opcodes/doppler.cpp
         Opcodes/tl/fractalnoise.cpp
+        Opcodes/ftsamplebank.cpp
         Opcodes/mixer.cpp
         Opcodes/signalflowgraph.cpp)
     set_source_files_properties(${static_modules_SRCS} PROPERTIES COMPILE_FLAGS -DINIT_STATIC_MODULES)
@@ -889,7 +961,7 @@ set_source_files_properties(${YACC_OUTH} GENERATED)
 set_source_files_properties(${LEX_OUT} GENERATED)
 set_source_files_properties(${PRELEX_OUT} GENERATED)
 
-if(MSVC) 
+if(MSVC)
   set_source_files_properties(${LEX_OUT} PROPERTIES
     COMPILE_FLAGS -DYY_NO_UNISTD_H)
   set_source_files_properties(${PRELEX_OUT} PROPERTIES
@@ -939,7 +1011,7 @@ list(APPEND libcsound_SRCS ${PRELEX_SCOOUT})
 #set_source_files_properties(${YACC_SCOOUT} GENERATED)
 #set_source_files_properties(${LEX_SCOOUT} GENERATED)
 set_source_files_properties(${PRELEX_SCOOUT} GENERATED)
-if(MSVC) 
+if(MSVC)
   set_source_files_properties(${PRELEX_SCOOUT} PROPERTIES
     COMPILE_FLAGS -DYY_NO_UNISTD_H)
 endif()
@@ -983,9 +1055,6 @@ endif()
 
 add_library(${CSOUNDLIB} SHARED ${libcsound_SRCS})
 set_target_properties(${CSOUNDLIB} PROPERTIES
-    # Do not pull extra libs when linking against shared libcsound
-    # The shared library loader will do that for us
-    LINK_INTERFACE_LIBRARIES ""
     SOVERSION ${APIVERSION})
 
 
@@ -1117,9 +1186,7 @@ endif()
 
 if(WIN32)
     list(APPEND libcsound_LIBS "${CSOUND_WINDOWS_LIBRARIES}")
-    if(NOT MSVC)
-      list(APPEND libcsound_LIBS "${LIBSNDFILE_SUPPORT_LIBS}")
-    endif()
+    list(APPEND libcsound_LIBS "${LIBSNDFILE_SUPPORT_LIBS}")
 else()
 endif()
 
@@ -1257,10 +1324,8 @@ if(BIG_ENDIAN)
 endif()
 
 
-
-
-add_compiler_flags(${libcsound_CFLAGS} TARGETS ${CSOUNDLIB})
-target_link_libraries(${CSOUNDLIB} ${libcsound_LIBS})
+target_compile_options(${CSOUNDLIB} PRIVATE ${libcsound_CFLAGS})
+target_link_libraries(${CSOUNDLIB} PRIVATE ${libcsound_LIBS})
 
 set_target_properties(${CSOUNDLIB} PROPERTIES
     RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
@@ -1271,7 +1336,7 @@ if(BUILD_STATIC_LIBRARY)
     add_library(${CSOUNDLIB_STATIC} STATIC ${libcsound_SRCS})
     SET_TARGET_PROPERTIES(${CSOUNDLIB_STATIC} PROPERTIES OUTPUT_NAME ${CSOUNDLIB})
     SET_TARGET_PROPERTIES(${CSOUNDLIB_STATIC} PROPERTIES PREFIX "lib")
-    add_compiler_flags(${libcsound_CFLAGS} TARGETS ${CSOUNDLIB_STATIC})
+    target_compile_options(${CSOUNDLIB_STATIC} PRIVATE ${libcsound_CFLAGS})
 
     target_link_libraries(${CSOUNDLIB_STATIC} ${libcsound_LIBS})
 
@@ -1340,7 +1405,7 @@ set (CPACK_PACKAGE_VERSION_MINOR "0")
 set (CPACK_PACKAGE_VERSION_PATCH "0")
 include (CPack)
 
-# Documentation 
+# Documentation
 find_package(Doxygen)
 if(DOXYGEN_FOUND)
     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.doxygen
diff --git a/Engine/README.md b/Engine/README.md
index c9d32c6..0b93223 100644
--- a/Engine/README.md
+++ b/Engine/README.md
@@ -32,7 +32,8 @@ Engine: files for internal engine operation
 * musmon.c: performance control and event scheduling
 * namedins.c: functions for named instrument system
 * new_orc_parser.c: csound language parser control
-* parse_param.h: macro parameters parsing structures and prototypes
+* parse_param.h: macro parameters orchestra parsing structures and prototypes
+* score_param.h: macro parameters score parsing structures and prototypes
 * scsort.c: score sorting
 * scxtract.c: score extraction
 * sort.c: sorting functions
diff --git a/Engine/auxfd.c b/Engine/auxfd.c
index 02433be..3f79fe7 100644
--- a/Engine/auxfd.c
+++ b/Engine/auxfd.c
@@ -44,7 +44,7 @@ void csoundAuxAlloc(CSOUND *csound, size_t nbytes, AUXCH *auxchp)
         csound->Free(csound, tmp);
       }
     }
-    else {                                  /* else linkin new auxch blk */
+    else {                                  /* else link in new auxch blk */
       auxchp->nxtchp = csound->curip->auxchp;
       csound->curip->auxchp = auxchp;
     }
@@ -57,30 +57,30 @@ void csoundAuxAlloc(CSOUND *csound, size_t nbytes, AUXCH *auxchp)
 }
 
 
-uintptr_t alloc_thread(void *p) {
-  AUXASYNC *pp = (AUXASYNC *) p;
-  CSOUND *csound = pp->csound;
-  AUXCH newm;
-  char *ptr;
-  if (pp->auxchp->auxp == NULL) {
-    /* Allocate new memory */
-    newm.size = pp->nbytes;
-    newm.auxp = csound->Calloc(csound, pp->nbytes);
-    newm.endp = (char*) newm.auxp + pp->nbytes;
-    ptr = (char *) newm.auxp;
-    newm  = *(pp->notify(csound, pp->userData, &newm));
-    /* check that the returned pointer is not
-     NULL and that is not the memory we have
-     just allocated in case the old memory was
-     never swapped back.
-     */
-    if (newm.auxp != NULL && newm.auxp != ptr)
-       csound->Free(csound, newm.auxp);
-  } else {
-    csoundAuxAlloc(csound,pp->nbytes,pp->auxchp);
-    pp->notify(csound, pp->userData, pp->auxchp);
-  }
-  return 0;
+static uintptr_t alloc_thread(void *p) {
+    AUXASYNC *pp = (AUXASYNC *) p;
+    CSOUND *csound = pp->csound;
+    AUXCH newm;
+    char *ptr;
+    if (pp->auxchp->auxp == NULL) {
+      /* Allocate new memory */
+      newm.size = pp->nbytes;
+      newm.auxp = csound->Calloc(csound, pp->nbytes);
+      newm.endp = (char*) newm.auxp + pp->nbytes;
+      ptr = (char *) newm.auxp;
+      newm  = *(pp->notify(csound, pp->userData, &newm));
+      /* check that the returned pointer is not
+         NULL and that is not the memory we have
+         just allocated in case the old memory was
+         never swapped back.
+      */
+      if (newm.auxp != NULL && newm.auxp != ptr)
+        csound->Free(csound, newm.auxp);
+    } else {
+      csoundAuxAlloc(csound,pp->nbytes,pp->auxchp);
+      pp->notify(csound, pp->userData, pp->auxchp);
+    }
+    return 0;
 }
 
 
@@ -155,7 +155,7 @@ void auxchfree(CSOUND *csound, INSDS *ip)
       void  *auxp = (void*) ip->auxchp->auxp;
       AUXCH *nxt = ip->auxchp->nxtchp;
       memset((void*) ip->auxchp, 0, sizeof(AUXCH)); /*  delete the pntr     */
-      csound->Free(csound, auxp);                          /*  & free the space    */
+      csound->Free(csound, auxp);                   /*  & free the space    */
       ip->auxchp = nxt;
     }
     if (UNLIKELY(csound->oparms->odebug))
@@ -198,7 +198,7 @@ static CS_NOINLINE void auxchprint(CSOUND *csound, INSDS *ip)
     /* chain through auxlocs */
     for (curchp = ip->auxchp; curchp != NULL; curchp = curchp->nxtchp)
       csoundMessage(csound,
-                      Str("\tauxch at %p: size %ld, auxp %p, endp %p\n"),
+                      Str("\tauxch at %p: size %zu, auxp %p, endp %p\n"),
                       curchp, curchp->size, curchp->auxp, curchp->endp);
 }
 
diff --git a/Engine/corfiles.c b/Engine/corfiles.c
index cda7d83..8e10952 100644
--- a/Engine/corfiles.c
+++ b/Engine/corfiles.c
@@ -31,31 +31,31 @@
 extern int csoundFileClose(CSOUND*, void*);
 CORFIL *copy_url_corefile(CSOUND *, const char *, int);
 
-CORFIL *corfile_create_w(void)
+CORFIL *corfile_create_w(CSOUND *csound)
 {
-    CORFIL *ans = (CORFIL*) malloc(sizeof(CORFIL));
-    ans->body = (char*)calloc(100,1);
+    CORFIL *ans = (CORFIL*) csound->Malloc(csound, sizeof(CORFIL));
+    ans->body = (char*)csound->Calloc(csound,100);
     ans->len = 100;
     ans->p = 0;
     return ans;
 }
 
-CORFIL *corfile_create_r(const char *text)
+CORFIL *corfile_create_r(CSOUND *csound, const char *text)
 {
     //char *strdup(const char *);
-    CORFIL *ans = (CORFIL*) malloc(sizeof(CORFIL));
-    ans->body = strdup(text);
+    CORFIL *ans = (CORFIL*) csound->Malloc(csound, sizeof(CORFIL));
+    ans->body = cs_strdup(csound, (char*)text);
     ans->len = strlen(text)+1;
     ans->p = 0;
     return ans;
 }
 
-void corfile_putc(int c, CORFIL *f)
+void corfile_putc(CSOUND *csound, int c, CORFIL *f)
 {
     char *new;
     f->body[f->p++] = c;
     if (UNLIKELY(f->p >= f->len)) {
-      new = (char*) realloc(f->body, f->len+=100);
+      new = (char*) csound->ReAlloc(csound, f->body, f->len+=100);
       if (UNLIKELY(new==NULL)) {
         fprintf(stderr, Str("Out of Memory\n"));
         exit(7);
@@ -65,7 +65,7 @@ void corfile_putc(int c, CORFIL *f)
     f->body[f->p] = '\0';
 }
 
-void corfile_puts(const char *s, CORFIL *f)
+void corfile_puts(CSOUND *csound, const char *s, CORFIL *f)
 {
     const char *c;
     int n;
@@ -76,7 +76,7 @@ void corfile_puts(const char *s, CORFIL *f)
       char *new;
       f->body[f->p++] = *c;
       if (UNLIKELY(f->p >= f->len)) {
-        new = (char*) realloc(f->body, f->len+=100);
+        new = (char*) csound->ReAlloc(csound, f->body, f->len+=100);
         if (UNLIKELY(new==NULL)) {
           fprintf(stderr, Str("Out of Memory\n"));
           exit(7);
@@ -90,7 +90,7 @@ void corfile_puts(const char *s, CORFIL *f)
         char *new;
         f->body[f->p++] = '\0';
         if (UNLIKELY(f->p >= f->len)) {
-          new = (char*) realloc(f->body, f->len+=100);
+          new = (char*) csound->ReAlloc(csound, f->body, f->len+=100);
           if (UNLIKELY(new==NULL)) {
             fprintf(stderr, Str("Out of Memory\n"));
             exit(7);
@@ -102,11 +102,11 @@ void corfile_puts(const char *s, CORFIL *f)
     f->body[f->p] = '\0';
 }
 
-void corfile_flush(CORFIL *f)
+void corfile_flush(CSOUND *csound, CORFIL *f)
 {
     char *new;
     f->len = strlen(f->body)+1;
-    new = (char*)realloc(f->body, f->len);
+    new = (char*)csound->ReAlloc(csound, f->body, f->len);
     if (UNLIKELY(new==NULL)) {
       fprintf(stderr, Str("Out of Memory\n"));
       exit(7);
@@ -121,12 +121,12 @@ int corfile_length(CORFIL *f)
     return strlen(f->body);
 }
 
-void corfile_rm(CORFIL **ff)
+void corfile_rm(CSOUND *csound, CORFIL **ff)
 {
     CORFIL *f = *ff;
     if (LIKELY(f!=NULL)) {
-      free(f->body);
-      free(f);
+      csound->Free(csound, f->body);
+      csound->Free(csound, f);
       *ff = NULL;
     }
 }
@@ -227,7 +227,7 @@ CORFIL *copy_to_corefile(CSOUND *csound, const char *fname,
     void *fd;
     int n;
     char buffer[1024];
-    if (fname==NULL) {
+    if (UNLIKELY(fname==NULL)) {
       csound->ErrorMsg(csound, Str("Null file name in copy_to_corefile"));
       csound->LongJmp(csound, 1);
     }
@@ -238,7 +238,7 @@ CORFIL *copy_to_corefile(CSOUND *csound, const char *fname,
 #endif
     fd = fopen_path(csound, &ff, (char *)fname, NULL, (char *)env, fromScore);
     if (UNLIKELY(ff==NULL)) return NULL;
-    mm = corfile_create_w();
+    mm = corfile_create_w(csound);
     memset(buffer, '\0', 1024);
     while ((n = fread(buffer, 1, 1023, ff))) {
       /* Need to lose \r characters  here */
@@ -247,28 +247,28 @@ CORFIL *copy_to_corefile(CSOUND *csound, const char *fname,
       /*   memmove(s, s+1, k); */
       /*   n--; */
       /* } */
-      corfile_puts(buffer, mm);
+      corfile_puts(csound, buffer, mm);
       memset(buffer, '\0', 1024);
     }
     //#ifdef SCORE_PARSER
     if (fromScore) {
-      corfile_puts("\n#exit\n", mm);
+      corfile_puts(csound, "\n#exit\n", mm);
     }
     //#endif
-    corfile_putc('\0', mm);     /* For use in bison/flex */
-    corfile_putc('\0', mm);     /* For use in bison/flex */
-    if (fromScore) corfile_flush(mm);
+    corfile_putc(csound, '\0', mm);     /* For use in bison/flex */
+    corfile_putc(csound, '\0', mm);     /* For use in bison/flex */
+    if (fromScore) corfile_flush(csound, mm);
     csoundFileClose(csound, fd);
     return mm;
 }
 
-void corfile_preputs(const char *s, CORFIL *f)
+void corfile_preputs(CSOUND *csound, const char *s, CORFIL *f)
 {
     char *body = f->body;
-    f->body = (char*)malloc(f->len=(strlen(body)+strlen(s)+1));
+    f->body = (char*)csound->Malloc(csound, f->len=(strlen(body)+strlen(s)+1));
     f->p = f->len-1;
     strcpy(f->body, s); strcat(f->body, body);
-    free(body);
+    csound->Free(csound, body);
 }
 
 #ifdef HAVE_CURL
@@ -278,6 +278,7 @@ void corfile_preputs(const char *s, CORFIL *f)
 struct MemoryStruct {
   char *memory;
   size_t size;
+  CSOUND* cs;
 };
 
 
@@ -286,8 +287,9 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
 {
   size_t realsize = size * nmemb;
   struct MemoryStruct *mem = (struct MemoryStruct *)userp;
+  CSOUND *csound = mem->cs;
 
-  mem->memory = realloc(mem->memory, mem->size + realsize + 1);
+  mem->memory = csound->ReAlloc(csound, mem->memory, mem->size + realsize + 1);
   if (UNLIKELY(mem->memory == NULL)) {
     /* out of memory! */
     printf(Str("not enough memory (realloc returned NULL)\n"));
@@ -305,11 +307,12 @@ CORFIL *copy_url_corefile(CSOUND *csound, const char *url, int fromScore)
 {
     int n;
     CURL *curl = curl_easy_init();
-    CORFIL *mm = corfile_create_w();
+    CORFIL *mm = corfile_create_w(csound);
     struct MemoryStruct chunk;
 
-    chunk.memory = malloc(1);  /* will be grown as needed by the realloc above */
+    chunk.memory = csound->Malloc(csound, 1);  /* will grown */
     chunk.size = 0;    /* no data at this point */
+    chunk.cs = csound;
     curl_easy_setopt(curl, CURLOPT_URL, url);
     curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
     curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
@@ -321,11 +324,11 @@ CORFIL *copy_url_corefile(CSOUND *csound, const char *url, int fromScore)
       /* return NULL ? */
     }
     curl_easy_cleanup(curl);
-    corfile_puts(chunk.memory, mm);
-    corfile_putc('\0', mm);     /* For use in bison/flex */
-    corfile_putc('\0', mm);     /* For use in bison/flex */
-    if (fromScore) corfile_flush(mm);
-    free (chunk.memory);
+    corfile_puts(csound, chunk.memory, mm);
+    corfile_putc(csound, '\0', mm);     /* For use in bison/flex */
+    corfile_putc(csound, '\0', mm);     /* For use in bison/flex */
+    if (fromScore) corfile_flush(csound, mm);
+    csound->Free(csound, chunk.memory);
 
     curl_global_cleanup();
     return mm;
@@ -336,60 +339,76 @@ CORFIL *copy_url_corefile(CSOUND *csound, const char *url, int fromScore)
 #if 0
 int main(void)
 {
-  CURL *curl_handle;
-  CURLcode res;
+    CURL *curl_handle;
+    CURLcode res;
 
-  struct MemoryStruct chunk;
+    struct MemoryStruct chunk;
 
-  chunk.memory = malloc(1);  /* will be grown as needed by the realloc above */
-  chunk.size = 0;    /* no data at this point */
+    /* will grown as needed by the realloc above */
+    chunk.memory = csound->Malloc(csound, 1);
+    chunk.size = 0;    /* no data at this point */
 
-  curl_global_init(CURL_GLOBAL_ALL);
+    curl_global_init(CURL_GLOBAL_ALL);
 
-  /* init the curl session */
-  curl_handle = curl_easy_init();
+    /* init the curl session */
+    curl_handle = curl_easy_init();
 
-  /* specify URL to get */
-  curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.example.com/");
+    /* specify URL to get */
+    curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.example.com/");
 
-  /* send all data to this function  */
-  curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
+    /* send all data to this function  */
+    curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
 
-  /* we pass our 'chunk' struct to the callback function */
-  curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
+    /* we pass our 'chunk' struct to the callback function */
+    curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
 
-  /* some servers don't like requests that are made without a user-agent
-     field, so we provide one */
-  curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
+    /* some servers don't like requests that are made without a user-agent
+       field, so we provide one */
+    curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
 
-  /* get it! */
-  res = curl_easy_perform(curl_handle);
+    /* get it! */
+    res = curl_easy_perform(curl_handle);
 
-  /* check for errors */
-  if (res != CURLE_OK) {
-    fprintf(stderr, "curl_easy_perform() failed: %s\n",
-            curl_easy_strerror(res));
-  }
-  else {
-    /*
-     * Now, our chunk.memory points to a memory block that is chunk.size
-     * bytes big and contains the remote file.
-     *
-     * Do something nice with it!
-     */
-
-    printf("%lu bytes retrieved\n", (long)chunk.size);
-  }
+    /* check for errors */
+    if (res != CURLE_OK) {
+      fprintf(stderr, "curl_easy_perform() failed: %s\n",
+              curl_easy_strerror(res));
+    }
+    else {
+      /*
+       * Now, our chunk.memory points to a memory block that is chunk.size
+       * bytes big and contains the remote file.
+       *
+       * Do something nice with it!
+       */
+
+      printf("%lu bytes retrieved\n", (long)chunk.size);
+    }
 
-  /* cleanup curl stuff */
-  curl_easy_cleanup(curl_handle);
+    /* cleanup curl stuff */
+    curl_easy_cleanup(curl_handle);
 
-  if (chunk.memory)
-    free(chunk.memory);
+    if (chunk.memory)
+      free(chunk.memory);
 
-  /* we're done with libcurl, so clean it up */
-  curl_global_cleanup();
+    /* we're done with libcurl, so clean it up */
+    curl_global_cleanup();
 
-  return 0;
+    return 0;
 }
 #endif
+
+typedef struct dir {
+  char       *name;
+  CORFIL     *corfile;
+  struct dir *next;
+} CORDIR;
+
+void add_corfile(CSOUND* csound, CORFIL *smpf, char *filename)
+{
+    CORDIR *entry = csound->Malloc(csound, sizeof(CORDIR));
+    entry->name = cs_strdup(csound, filename);
+    entry->corfile = smpf;
+    entry->next = (CORDIR *)csound->directory;
+    csound->directory = entry;
+}
diff --git a/Engine/cs_new_dispatch.c b/Engine/cs_new_dispatch.c
index 94cef42..cb50898 100644
--- a/Engine/cs_new_dispatch.c
+++ b/Engine/cs_new_dispatch.c
@@ -117,7 +117,7 @@ static void dag_print_state(CSOUND *csound)
 }
 
 /* For now allocate a fixed maximum number of tasks; FIXME */
-void create_dag(CSOUND *csound)
+static void create_dag(CSOUND *csound)
 {
     /* Allocate the main task status and watchlists */
     int max = csound->dag_task_max_size;
@@ -128,7 +128,7 @@ void create_dag(CSOUND *csound)
     csound->dag_wlmm = (watchList *)csound->Calloc(csound, sizeof(watchList)*max);
 }
 
-void recreate_dag(CSOUND *csound)
+static void recreate_dag(CSOUND *csound)
 {
     /* Allocate the main task status and watchlists */
     int max = csound->dag_task_max_size;
@@ -154,7 +154,7 @@ static INSTR_SEMANTICS *dag_get_info(CSOUND* csound, int insno)
       current_instr =
         csp_orc_sa_instr_get_by_name(csound,
            csound->engineState.instrtxtp[insno]->insname);
-      if (current_instr == NULL)
+      if (UNLIKELY(current_instr == NULL))
         csound->Die(csound,
                     Str("Failed to find semantic information"
                         " for instrument '%i'"),
@@ -305,11 +305,19 @@ void dag_reinit(CSOUND *csound)
 #define ATOMIC_READ(x) x
 #define ATOMIC_WRITE(x,v) x = v;
 #if defined(_MSC_VER)
-#define ATOMIC_CAS(x,current,new)  InterlockedCompareExchange(x, current, new)
+#define ATOMIC_CAS(x,current,new) \
+  (current == InterlockedCompareExchange(x, new, current))
 #else
 #define ATOMIC_CAS(x,current,new)  __sync_bool_compare_and_swap(x,current,new)
 #endif
 
+#if defined(_MSC_VER)
+#define ATOMIC_CAS_PTR(x,current,new) \
+  (current == InterlockedCompareExchangePointer(x, new, current))
+#else
+#define ATOMIC_CAS_PTR(x,current,new)  __sync_bool_compare_and_swap(x,current,new)
+#endif
+
 taskID dag_get_task(CSOUND *csound, int index, int numThreads, taskID next_task)
 {
     int i;
@@ -385,7 +393,7 @@ inline static int moveWatch(CSOUND *csound, watchList * volatile *w,
         return 0;//was no & earlier
       }
       else t->next = local;
-    } while (!ATOMIC_CAS(w,local,t));
+    } while (!ATOMIC_CAS_PTR(w,local,t));
     //dag_print_state(csound);
     //printf("moveWatch done\n");
     return 1;
@@ -409,7 +417,7 @@ taskID dag_end_task(CSOUND *csound, taskID i)
     {                                      /* ATOMIC_SWAP */
       do {
         to_notify = ATOMIC_READ(task_watch[i]);
-      } while (!ATOMIC_CAS(&task_watch[i],to_notify,&DoNotRead));
+      } while (!ATOMIC_CAS_PTR(&task_watch[i],to_notify,(watchList *) &DoNotRead));
     } //to_notify = ATOMIC_SWAP(task_watch[i], &DoNotRead);
     //printf("Ending task %d\n", i);
     next = to_notify;
@@ -522,7 +530,7 @@ void initialiseWatch (watchList **w, taskID id) {
   *w = &(wlmm[id].s);
 }
 
-watchList * getWatches(taskID id) {
+inline watchList * getWatches(taskID id) {
 
     return __sync_lock_test_and_set (&(watch[id]), doNotAdd);
 }
@@ -556,7 +564,7 @@ void appendToWL (taskID id, watchList *l) {
 
 }
 
-void deleteWatch (watchList *t) {
+inline void deleteWatch (watchList *t) {
   wlmm[t->id].used = FALSE;
 }
 
diff --git a/Engine/cs_par_base.c b/Engine/cs_par_base.c
index 7f78511..85796d1 100644
--- a/Engine/cs_par_base.c
+++ b/Engine/cs_par_base.c
@@ -117,7 +117,8 @@ int barrier_destroy(barrier_t *b)
 /* when barrier is passed, all threads except one return 0 */
 int barrier_wait(barrier_t *b)
 {
-    int ret, it;
+  int ret;
+  unsigned int it;
 
     pthread_mutex_lock(&b->mut);
     b->count++;
@@ -155,7 +156,6 @@ void csp_barrier_alloc(CSOUND *csound, void **barrier,
     }
 }
 
-// PTHREAD: change
 void csp_barrier_dealloc(CSOUND *csound, void **barrier)
 {
     if (UNLIKELY(barrier == NULL || *barrier == NULL))
@@ -165,102 +165,6 @@ void csp_barrier_dealloc(CSOUND *csound, void **barrier)
 }
 
 
-/***********************************************************************
- * semaphore
- */
-
-//void csp_semaphore_alloc(CSOUND *csound, sem_t **sem, int max_threads)
-//{
-//    if (UNLIKELY(sem == NULL))
-//      csound->Die(csound, "Invalid NULL Parameter sem");
-//    if (*sem != NULL) {
-//      int val;
-//      sem_getvalue(*sem, &val);
-//      csound->DebugMsg(csound, "Already a semaphore: %d %p\n", val, *sem);
-//      sem_destroy(*sem);
-//      csound->Free(csound, *sem);
-//    }
-//
-//    *sem = csound->Malloc(csound, sizeof(sem_t));
-//    if (UNLIKELY(*sem == NULL)) {
-//      csound->Die(csound, "Failed to allocate semaphore");
-//    }
-//    sem_init(*sem, 0, 1);
-//}
-//
-//void csp_semaphore_dealloc(CSOUND *csound, sem_t **sem)
-//{
-//    if (UNLIKELY(sem == NULL || *sem == NULL))
-//      csound->Die(csound, "Invalid NULL Parameter sem");
-//    sem_destroy(*sem);
-//    csound->Free(csound, *sem);
-//    *sem = NULL;
-//}
-//
-//void csp_semaphore_wait(CSOUND *csound, sem_t *sem)
-//{
-//    if (UNLIKELY(sem == NULL))
-//       csound->Die(csound, "Invalid NULL Parameter sem");
-//
-//    TRACE_1("[%i] wait:\n", csp_thread_index_get(csound));
-//    {
-//      /* int val, res; */
-//      /* res = sem_getvalue(sem, &val); */
-//      /* csound->DebugMsg(csound, "before sem_wait: %d %i:\t", val, */
-//      /*         csp_thread_index_get(csound)); */
-//      sem_wait(sem);
-//      /* res = sem_getvalue(sem, &val); */
-//      /* csound->DebugMsg(csound, "after sem_wait: %d %i\n", val, */
-//      /*         csp_thread_index_get(csound)); */
-//    }
-//    TRACE_1("[%i] continue:\n", csp_thread_index_get(csound));
-//}
-//
-//void csp_semaphore_grow(CSOUND *csound, sem_t *sem)
-//{
-//    /* int val, res; */
-//    /* res = sem_getvalue(sem, &val); */
-//    /* csound->DebugMsg(csound, "before sem_grow: %d %i\t",
-//               val, csp_thread_index_get(csound)); */
-//    sem_post(sem);
-//    /* res = sem_getvalue(sem, &val); */
-//    /* csound->DebugMsg(csound, "after sem_grow: %d %i\n",
-//               val, csp_thread_index_get(csound)); */
-//}
-//
-//void csp_semaphore_release(CSOUND *csound, sem_t *sem)
-//{
-//    /* TRACE_2("[%i] post:\n", csp_thread_index_get(csound)); */
-//    /* { */
-//    /*   int val, res; */
-//    /*   res = sem_getvalue(sem, &val); */
-//    /*   csound->DebugMsg(csound, "before sem_release: %d %i\n", */
-//    /*           val, csp_thread_index_get(csound)); */
-//    /* } */
-//}
-//
-//void csp_semaphore_release_end(CSOUND *csound, sem_t *sem)
-//{
-//    /* int val, res; */
-//    /* res = sem_getvalue(sem, &val); */
-//    /* csound->DebugMsg(csound, "before sem_release_end: %d %i\t", */
-//    /*         val, csp_thread_index_get(csound)); */
-//    sem_post(sem);
-//    /* res = sem_getvalue(sem, &val); */
-//    /* csound->DebugMsg(csound, "after sem_release_end: %d %i\n", */
-//    /*         val, csp_thread_index_get(csound)); */
-//}
-//
-//void csp_semaphore_release_print(CSOUND *csound, sem_t *sem)
-//{
-//    int val, res;
-//    if (UNLIKELY(sem == NULL))
-//      csound->Die(csound, "Invalid NULL Parameter sem");
-//    res = sem_getvalue(sem, &val);
-//    csound->DebugMsg(csound, "sem_release_print: %d %p\n",
-//            val, csp_thread_index_get(csound));
-//}
-//
 
 /***********************************************************************
  * set data structure
diff --git a/Engine/cs_par_dispatch.c b/Engine/cs_par_dispatch.c
index 5fdd111..32c13cd 100644
--- a/Engine/cs_par_dispatch.c
+++ b/Engine/cs_par_dispatch.c
@@ -28,7 +28,7 @@
 #include "csound_orc.h"
 #include "cs_par_base.h"
 #include "cs_par_orc_semantics.h"
-#include "cs_par_dispatch.h"
+//#include "cs_par_dispatch.h"
 
 #include "cs_par_ops.h"
 #include "cs_par_structs.h"
@@ -52,7 +52,7 @@ struct global_var_lock_t {
   struct global_var_lock_t    *next;
 };
 
-inline void csp_locks_lock(CSOUND * csound, int global_index)
+static inline void csp_locks_lock(CSOUND * csound, int global_index)
 {
     if (UNLIKELY(global_index >= csound->global_var_lock_count)) {
       csound->Die(csound,
@@ -65,7 +65,7 @@ inline void csp_locks_lock(CSOUND * csound, int global_index)
     TAKE_LOCK(&(csound->global_var_lock_cache[global_index]->lock));
 }
 
-inline void csp_locks_unlock(CSOUND * csound, int global_index)
+static inline void csp_locks_unlock(CSOUND * csound, int global_index)
 {
     if (UNLIKELY(global_index >= csound->global_var_lock_count)) {
       csound->Die(csound,
@@ -77,7 +77,7 @@ inline void csp_locks_unlock(CSOUND * csound, int global_index)
     /*         global_index, csound->global_var_lock_cache[global_index], */
     /*         csound->global_var_lock_cache[global_index]->name); */
 }
-
+#if 0
 static struct global_var_lock_t *global_var_lock_alloc(CSOUND *csound,
                                                        char *name, int index)
 {
@@ -131,7 +131,8 @@ static struct global_var_lock_t
     }
 }
 
-TREE *csp_locks_insert(CSOUND *csound, TREE *root)
+
+static TREE *csp_locks_insert(CSOUND *csound, TREE *root)
 {
     csound->Message(csound,
                     Str("Inserting Parallelism Constructs into AST\n"));
@@ -169,7 +170,6 @@ TREE *csp_locks_insert(CSOUND *csound, TREE *root)
         break;
 
       case '=':
-        /*if (current->type == '=')*/
         {
           struct set_t *left = csp_orc_sa_globals_find(csound, current->left);
           struct set_t *right = csp_orc_sa_globals_find(csound, current->right);
@@ -241,6 +241,7 @@ TREE *csp_locks_insert(CSOUND *csound, TREE *root)
 
     return anchor;
 }
+#endif
 
 void csp_locks_cache_build(CSOUND *csound)
 {
diff --git a/Engine/cs_par_orc_semantic_analysis.c b/Engine/cs_par_orc_semantic_analysis.c
index 184a35c..b8ad6a1 100644
--- a/Engine/cs_par_orc_semantic_analysis.c
+++ b/Engine/cs_par_orc_semantic_analysis.c
@@ -146,7 +146,7 @@ void csp_orc_sa_global_read_write_add_list(CSOUND *csound,
                                            struct set_t *write,
                                            struct set_t *read)
 {
-    if (csound->instCurr == NULL) {
+    if (UNLIKELY(csound->instCurr == NULL)) {
       csound->DebugMsg(csound,
                       "Add global read, write lists without any instruments\n");
     }
@@ -165,7 +165,7 @@ void csp_orc_sa_global_read_write_add_list1(CSOUND *csound,
                                            struct set_t *write,
                                            struct set_t *read)
 {
-    if (csound->instCurr == NULL) {
+    if (UNLIKELY(csound->instCurr == NULL)) {
       csound->DebugMsg(csound,
                       "Add global read, write lists without any instruments\n");
     }
@@ -198,7 +198,7 @@ void csp_orc_sa_global_read_write_add_list1(CSOUND *csound,
 
 void csp_orc_sa_global_write_add_list(CSOUND *csound, struct set_t *set)
 {
-    if (csound->instCurr == NULL) {
+    if (UNLIKELY(csound->instCurr == NULL)) {
       csound->Message(csound,
                       Str("Add a global write_list without any instruments\n"));
     }
@@ -257,7 +257,7 @@ void csp_orc_sa_interlocksf(CSOUND *csound, int code)
       if (code&_CW) csp_set_add(csound, ww, "##chn");
       if (code&WR) csp_set_add(csound, ww, "##wri");
       csp_orc_sa_global_read_write_add_list(csound, ww, rr);
-      if (code&_QQ) csound->Message(csound, Str("opcode deprecated"));
+      if (UNLIKELY(code&_QQ)) csound->Message(csound, Str("opcode deprecated"));
     }
 }
 
@@ -272,7 +272,7 @@ void csp_orc_sa_interlocks(CSOUND *csound, ORCTOKEN *opcode)
 
 void csp_orc_sa_instr_add(CSOUND *csound, char *name)
 {
-  name = cs_strdup(csound, name); // JPff:  leaks: necessary??
+    name = cs_strdup(csound, name); // JPff:  leaks: necessary?? Think it is correct
     //printf("csp_orc_sa_instr_add name=%s\n", name);
     csound->inInstr = 1;
     if (csound->instRoot == NULL) {
@@ -390,7 +390,8 @@ INSTR_SEMANTICS *csp_orc_sa_instr_get_by_num(CSOUND *csound, int16 insno)
 
 void csp_orc_analyze_tree(CSOUND* csound, TREE* root)
 {
-    if (PARSER_DEBUG) csound->Message(csound, "Performing csp analysis\n");
+    if (UNLIKELY(PARSER_DEBUG))
+      csound->Message(csound, "Performing csp analysis\n");
 
     TREE *current = root;
     TREE *temp;
@@ -424,7 +425,7 @@ void csp_orc_analyze_tree(CSOUND* csound, TREE* root)
       case LABEL_TOKEN:
         break;
       default:
-        if (PARSER_DEBUG)
+        if (UNLIKELY(PARSER_DEBUG))
           csound->Message(csound,
                           "Statement: %s\n", current->value->lexeme);
 
@@ -446,6 +447,6 @@ void csp_orc_analyze_tree(CSOUND* csound, TREE* root)
 
     }
 
-    if (PARSER_DEBUG) csound->Message(csound, "[End csp analysis]\n");
+    if (UNLIKELY(PARSER_DEBUG)) csound->Message(csound, "[End csp analysis]\n");
 
 }
diff --git a/Engine/csound_data_structures.c b/Engine/csound_data_structures.c
index 4f7289c..deebf80 100644
--- a/Engine/csound_data_structures.c
+++ b/Engine/csound_data_structures.c
@@ -38,8 +38,8 @@ PUBLIC CONS_CELL* cs_cons(CSOUND* csound, void* val, CONS_CELL* cons) {
 }
 
 PUBLIC CONS_CELL* cs_cons_append(CONS_CELL* cons1, CONS_CELL* cons2) {
-    if(cons1 == NULL) return cons2;
-    if(cons2 == NULL) return cons1;
+    if (cons1 == NULL) return cons2;
+    if (cons2 == NULL) return cons1;
 
     CONS_CELL* c = cons1;
 
@@ -54,8 +54,8 @@ PUBLIC int cs_cons_length(CONS_CELL* head) {
     CONS_CELL* current = head;
     int count = 0;
     while (current != NULL) {
-        count++;
-        current = current->next;
+      count++;
+      current = current->next;
     }
     return count;
 }
@@ -67,10 +67,10 @@ PUBLIC void cs_cons_free(CSOUND* csound, CONS_CELL* head) {
 
     current = head;
 
-    while(current != NULL) {
-        next = current->next;
-        csound->Free(csound, current);
-        current = next;
+    while (current != NULL) {
+      next = current->next;
+      csound->Free(csound, current);
+      current = next;
     }
 }
 
@@ -83,11 +83,11 @@ PUBLIC void cs_cons_free_complete(CSOUND* csound, CONS_CELL* head) {
 
     current = head;
 
-    while(current != NULL) {
-        next = current->next;
-        csound->Free(csound, current->value);
-        csound->Free(csound, current);
-        current = next;
+    while (current != NULL) {
+      next = current->next;
+      csound->Free(csound, current->value);
+      csound->Free(csound, current);
+      current = next;
     }
 }
 
@@ -101,28 +101,29 @@ static unsigned int cs_name_hash(char *s)
 {
     unsigned int h = 0;
     while (*s != '\0') {
-        h = (h<<4) ^ *s++;
+      h = (h<<4) ^ *s++;
     }
     return (h%HASH_SIZE);
 }
 
 PUBLIC void* cs_hash_table_get(CSOUND* csound,
                                CS_HASH_TABLE* hashTable, char* key) {
+    IGN(csound);
     unsigned int index;
     CS_HASH_TABLE_ITEM* item;
 
     if (key == NULL) {
-        return NULL;
+      return NULL;
     }
 
     index = cs_name_hash(key);
     item = hashTable->buckets[index];
 
     while (item != NULL) {
-        if (strcmp(key, item->key) == 0) {
-            return item->value;
-        }
-        item = item->next;
+      if (strcmp(key, item->key) == 0) {
+        return item->value;
+      }
+      item = item->next;
     }
 
     return NULL;
@@ -132,19 +133,20 @@ PUBLIC char* cs_hash_table_get_key(CSOUND* csound,
                                    CS_HASH_TABLE* hashTable, char* key) {
     unsigned int index;
     CS_HASH_TABLE_ITEM* item;
+    IGN(csound);
 
     if (key == NULL) {
-        return NULL;
+      return NULL;
     }
 
     index = cs_name_hash(key);
     item = hashTable->buckets[index];
 
     while (item != NULL) {
-        if (strcmp(key, item->key) == 0) {
-            return item->key;
-        }
-        item = item->next;
+      if (strcmp(key, item->key) == 0) {
+        return item->key;
+      }
+      item = item->next;
     }
 
     return NULL;
@@ -154,7 +156,7 @@ char* cs_hash_table_put_no_key_copy(CSOUND* csound,
                                    CS_HASH_TABLE* hashTable,
                                     char* key, void* value) {
     if (key == NULL) {
-        return NULL;
+      return NULL;
     }
 
     unsigned int index = cs_name_hash(key);
@@ -162,29 +164,29 @@ char* cs_hash_table_put_no_key_copy(CSOUND* csound,
     CS_HASH_TABLE_ITEM* item = hashTable->buckets[index];
 
     if (item == NULL) {
-        CS_HASH_TABLE_ITEM* newItem = csound->Malloc(csound,
-                                                     sizeof(CS_HASH_TABLE_ITEM));
-        newItem->key = key;
-        newItem->value = value;
-        newItem->next = NULL;
-        hashTable->buckets[index] = newItem;
-        return newItem->key;
+      CS_HASH_TABLE_ITEM* newItem = csound->Malloc(csound,
+                                                   sizeof(CS_HASH_TABLE_ITEM));
+      newItem->key = key;
+      newItem->value = value;
+      newItem->next = NULL;
+      hashTable->buckets[index] = newItem;
+      return newItem->key;
     } else {
-        while (item != NULL) {
-            if (strcmp(key, item->key) == 0) {
-                item->value = value;
-                return item->key;
-            } else if(item->next == NULL) {
-                CS_HASH_TABLE_ITEM* newItem = csound->Malloc(csound,
-                                                      sizeof(CS_HASH_TABLE_ITEM));
-                newItem->key = key;
-                 newItem->value = value;
-                newItem->next = NULL;
-                item->next = newItem;
-                return newItem->key;
-            }
-            item = item->next;
+      while (item != NULL) {
+        if (strcmp(key, item->key) == 0) {
+          item->value = value;
+          return item->key;
+        } else if (item->next == NULL) {
+          CS_HASH_TABLE_ITEM* newItem = csound->Malloc(csound,
+                                                       sizeof(CS_HASH_TABLE_ITEM));
+          newItem->key = key;
+          newItem->value = value;
+          newItem->next = NULL;
+          item->next = newItem;
+          return newItem->key;
         }
+        item = item->next;
+      }
     }
     return NULL;
 }
@@ -207,7 +209,7 @@ PUBLIC void cs_hash_table_remove(CSOUND* csound,
     unsigned int index;
 
     if (key == NULL) {
-        return;
+      return;
     }
 
     index = cs_name_hash(key);
@@ -216,17 +218,17 @@ PUBLIC void cs_hash_table_remove(CSOUND* csound,
     item = hashTable->buckets[index];
 
     while (item != NULL) {
-        if (strcmp(key, item->key) == 0) {
-            if (previous == NULL) {
-                hashTable->buckets[index] = item->next;
-            } else {
-                previous->next = item->next;
-            }
-            csound->Free(csound, item);
-            return;
+      if (strcmp(key, item->key) == 0) {
+        if (previous == NULL) {
+          hashTable->buckets[index] = item->next;
+        } else {
+          previous->next = item->next;
         }
-        previous = item;
-        item = item->next;
+        csound->Free(csound, item);
+        return;
+      }
+      previous = item;
+      item = item->next;
     }
 }
 
@@ -236,12 +238,12 @@ PUBLIC CONS_CELL* cs_hash_table_keys(CSOUND* csound, CS_HASH_TABLE* hashTable) {
     int i = 0;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
+      CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
 
-        while (item != NULL) {
-            head = cs_cons(csound, item->key, head);
-            item = item->next;
-        }
+      while (item != NULL) {
+        head = cs_cons(csound, item->key, head);
+        item = item->next;
+      }
     }
     return head;
 }
@@ -252,12 +254,12 @@ PUBLIC CONS_CELL* cs_hash_table_values(CSOUND* csound, CS_HASH_TABLE* hashTable)
     int i = 0;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
+      CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
 
-        while (item != NULL) {
-            head = cs_cons(csound, item->value, head);
-            item = item->next;
-        }
+      while (item != NULL) {
+        head = cs_cons(csound, item->value, head);
+        item = item->next;
+      }
     }
     return head;
 }
@@ -268,20 +270,21 @@ PUBLIC void cs_hash_table_merge(CSOUND* csound,
     int i = 0;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = source->buckets[i];
-
-        while (item != NULL) {
-            CS_HASH_TABLE_ITEM* next = item->next;
-            char* new_key =
-              cs_hash_table_put_no_key_copy(csound, target, item->key, item->value);
+      CS_HASH_TABLE_ITEM* item = source->buckets[i];
 
-            if(new_key != item->key) {
-                csound->Free(csound, item->key);
-              }
+      while (item != NULL) {
+        CS_HASH_TABLE_ITEM* next = item->next;
+        char* new_key =
+          cs_hash_table_put_no_key_copy(csound, target, item->key, item->value);
 
-            csound->Free(csound, item);
-            item = next;
+        if (new_key != item->key) {
+          csound->Free(csound, item->key);
         }
+
+        csound->Free(csound, item);
+        item = next;
+      }
+      source->buckets[i] = NULL;
     }
 
 }
@@ -290,14 +293,14 @@ PUBLIC void cs_hash_table_free(CSOUND* csound, CS_HASH_TABLE* hashTable) {
     int i;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
-
-        while(item != NULL) {
-            CS_HASH_TABLE_ITEM* next = item->next;
-            csound->Free(csound, item->key);
-            csound->Free(csound, item);
-            item = next;
-        }
+      CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
+
+      while(item != NULL) {
+        CS_HASH_TABLE_ITEM* next = item->next;
+        csound->Free(csound, item->key);
+        csound->Free(csound, item);
+        item = next;
+      }
     }
     csound->Free(csound, hashTable);
 }
@@ -307,15 +310,15 @@ PUBLIC void cs_hash_table_mfree_complete(CSOUND* csound, CS_HASH_TABLE* hashTabl
     int i;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
-
-        while(item != NULL) {
-            CS_HASH_TABLE_ITEM* next = item->next;
-            csound->Free(csound, item->key);
-            csound->Free(csound, item->value);
-            csound->Free(csound, item);
-            item = next;
-        }
+      CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
+
+      while(item != NULL) {
+        CS_HASH_TABLE_ITEM* next = item->next;
+        csound->Free(csound, item->key);
+        csound->Free(csound, item->value);
+        csound->Free(csound, item);
+        item = next;
+      }
     }
     csound->Free(csound, hashTable);
 }
@@ -325,19 +328,19 @@ PUBLIC void cs_hash_table_free_complete(CSOUND* csound, CS_HASH_TABLE* hashTable
     int i;
 
     for (i = 0; i < HASH_SIZE; i++) {
-        CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
-
-        while(item != NULL) {
-            CS_HASH_TABLE_ITEM* next = item->next;
-            csound->Free(csound, item->key);
-
-            /* NOTE: This needs to be free, not csound->Free.
-               To use mfree on keys, use cs_hash_table_mfree_complete
-               TODO: Check if this is even necessary anymore... */
-            free(item->value);
-            csound->Free(csound, item);
-            item = next;
-        }
+      CS_HASH_TABLE_ITEM* item = hashTable->buckets[i];
+
+      while(item != NULL) {
+        CS_HASH_TABLE_ITEM* next = item->next;
+        csound->Free(csound, item->key);
+
+        /* NOTE: This needs to be free, not csound->Free.
+           To use mfree on keys, use cs_hash_table_mfree_complete
+           TODO: Check if this is even necessary anymore... */
+        free(item->value);
+        csound->Free(csound, item);
+        item = next;
+      }
     }
     csound->Free(csound, hashTable);
 }
@@ -345,5 +348,5 @@ PUBLIC void cs_hash_table_free_complete(CSOUND* csound, CS_HASH_TABLE* hashTable
 
 
 #ifdef __cplusplus
-extern "C" {
+  extern "C" {
 #endif
diff --git a/Engine/csound_orc.lex b/Engine/csound_orc.lex
index 59d23c4..8804e3f 100644
--- a/Engine/csound_orc.lex
+++ b/Engine/csound_orc.lex
@@ -104,173 +104,173 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                                        yyscanner);
                   return NEWLINE; }
 "("{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
-                       csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
+                  if (UNLIKELY(strchr(yytext, '\n')))
+                    csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '(';
                 }
 ")"             { return ')'; }
-"["{OPTWHITE}"\n"? { if (strchr(yytext, '\n'))
+"["{OPTWHITE}"\n"? { if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '[';
                 }
 "]"             { return ']'; }
 "+"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '+';
                    }
 "-"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '-';
                    }
 "*"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '*';
                    }
 "/"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '/';
                    }
 "%"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '%';
                    }
 "\^"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '^';
                    }
 "?"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '?';
                    }
 ":"             { return ':'; }
 ","{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return ',';
                    }
 "!"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '!'; }
 "->"               { return S_ELIPSIS; }
 "!="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_NEQ; }
 "&&"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_AND; }
 "||"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_OR; }
 "<<"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_BITSHIFT_LEFT; }
 ">>"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_BITSHIFT_RIGHT; }
 "<"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_LT; }
 "<="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_LE; }
 "=="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_EQ; }
 "+="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_ADDIN; }
 "-="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_SUBIN; }
 "*="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_MULIN; }
 "/="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_DIVIN; }
 "="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      *lvalp = make_token(csound, "=");
                      (*lvalp)->type = '=';
                      return '='; }
 ">"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_GT; }
 ">="{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return S_GE; }
 "|"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '|'; }
 "&"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '&'; }
 "#"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '#'; }
 \xC2?\xAC{OPTWHITE}"\n"? {
                      //printf("convert ¬ to ~\n");
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '~'; }
 "~"{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return '~'; }
@@ -282,7 +282,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                   (*lvalp)->type = IF_TOKEN;
                   return IF_TOKEN; }
 "if("{OPTWHITE}"\n"? {
-                  if (strchr(yytext, '\n'))
+                  if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                   *lvalp = make_token(csound, yytext);
@@ -302,7 +302,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                   (*lvalp)->type = ELSEIF_TOKEN;
                   return ELSEIF_TOKEN; }
 "elseif("{OPTWHITE}"\n"? {
-                  if (strchr(yytext, '\n'))
+                  if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                   unput('(');
@@ -400,7 +400,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                 }
 
 <xstr>"\n"     { /* The next two should be one case but I cannot get that to work */
-                  if (PARM->xstrptr+2==PARM->xstrmax) {
+                  if (UNLIKELY(PARM->xstrptr+2==PARM->xstrmax)) {
                       PARM->xstrbuff = (char *)realloc(PARM->xstrbuff,
                                                        PARM->xstrmax+=80);
                       csound->DebugMsg(csound,"Extending xstr buffer\n");
@@ -411,7 +411,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                 }
 
 <xstr>"\r"     { }
-<xstr>.         { if (PARM->xstrptr+2==PARM->xstrmax) {
+<xstr>.         { if (UNLIKELY(PARM->xstrptr+2==PARM->xstrmax)) {
                       PARM->xstrbuff = (char *)realloc(PARM->xstrbuff,
                                                        PARM->xstrmax+=80);
                       csound->DebugMsg(csound,"Extending xstr buffer\n");
@@ -428,7 +428,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                                      yytext, (*lvalp)->type); */
                   return (*lvalp)->type; }
 <udoarg>","{OPTWHITE}"\n"? {
-                     if (strchr(yytext, '\n'))
+                     if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                      return ',';
@@ -478,8 +478,8 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                         break;
                       }
                     }
-                    else if (ch=='\n') {
-                      if (n>=cnt-2) buff = realloc(buff, cnt+=20);
+                    else if (UNLIKELY(ch=='\n')) {
+                      if (UNLIKELY(n>=cnt-2)) buff = realloc(buff, cnt+=20);
                       buff[n++] = '"';
                       buff[n] = '\0';
                       csound->Message(csound,
@@ -488,7 +488,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                       break;
                     }
                     else {
-                      if (n>=cnt-2) buff = realloc(buff, cnt+=20);
+                      if (UNLIKELY(n>=cnt-2)) buff = realloc(buff, cnt+=20);
                       buff[n++] = ch;
                     }
                   }
@@ -501,7 +501,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                   (*lvalp)->type = ZERODBFS_TOKEN;
                   /* csound->Message(csound,"%d\n", (*lvalp)->type); */
                   return ZERODBFS_TOKEN; }
-{IDENTB}        { if (strchr(yytext, '\n'))
+{IDENTB}        { if (UNLIKELY(strchr(yytext, '\n')))
                        csound_orcset_lineno(1+csound_orcget_lineno(yyscanner),
                                             yyscanner);
                   *strrchr(yytext, '(') = '\0';
@@ -512,7 +512,7 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                                      yytext, (*lvalp)->type); */
                   return (*lvalp)->type; }
 {INTGR}         {
-                    if (udoflag == 0) {
+                  if (udoflag == 0) {
                         *lvalp = make_string(csound, yytext);
                         (*lvalp)->type = UDO_ANS_TOKEN;
                     } else if (udoflag == 1) {
@@ -555,12 +555,13 @@ FNAME           [a-zA-Z0-9/:.+-_]+
                 }
 
 %%
-
+  /* unused at the moment
 static inline int isNameChar(int c, int pos)
 {
     c = (int) ((unsigned char) c);
     return (isalpha(c) || (pos && (c == '_' || isdigit(c))));
 }
+  */
 
 ORCTOKEN *new_token(CSOUND *csound, int type)
 {
diff --git a/Engine/csound_orc.y b/Engine/csound_orc.y
index 828d439..acca85d 100644
--- a/Engine/csound_orc.y
+++ b/Engine/csound_orc.y
@@ -162,6 +162,7 @@
     extern TREE* appendToTree(CSOUND * csound, TREE *first, TREE *newlast);
     extern int csound_orclex(TREE**, CSOUND *, void *);
     extern void print_tree(CSOUND *, char *msg, TREE *);
+    extern TREE* constant_fold(CSOUND *, TREE *);
     extern void csound_orcerror(PARSE_PARM *, void *, CSOUND *,
                                 TREE**, const char*);
     extern int add_udo_definition(CSOUND*, char *, char *, char *);
@@ -176,11 +177,14 @@
 
 orcfile           : rootstatement
                         {
-                          if ($1 != NULL)
-                            *astTree = ((TREE *)$1);
                           csound->synterrcnt = csound_orcnerrs;
-                          if (csound->oparms->odebug)
+                          if (UNLIKELY(csound->oparms->odebug))
                             print_tree(csound, "ALL", $1);
+                          $1 = constant_fold(csound, $1);
+                          if (UNLIKELY(csound->oparms->odebug))
+                            print_tree(csound, "Folded", $1);
+                          if ($1 != NULL)
+                            *astTree = ((TREE *)$1);
                         }
                   ;
 
diff --git a/Engine/csound_orc_compile.c b/Engine/csound_orc_compile.c
index 0414eb5..63beaa7 100644
--- a/Engine/csound_orc_compile.c
+++ b/Engine/csound_orc_compile.c
@@ -45,7 +45,7 @@ static  void    lgbuild(CSOUND *, INSTRTXT *, char *,
                         int inarg, ENGINE_STATE *engineState);
 int     pnum(char *s) ;
 static void     unquote_string(char *, const char *);
-extern void     print_tree(CSOUND *, char *, TREE *);
+void     print_tree(CSOUND *, char *, TREE *);
 void close_instrument(CSOUND *csound, ENGINE_STATE *engineState, INSTRTXT * ip);
 char argtyp2(char *s);
 void debugPrintCsound(CSOUND* csound);
@@ -54,7 +54,8 @@ void named_instr_assign_numbers(CSOUND *csound, ENGINE_STATE *engineState);
 int named_instr_alloc(CSOUND *csound, char *s, INSTRTXT *ip, int32 insno,
                       ENGINE_STATE *engineState, int merge);
 int check_instr_name(char *s);
-extern void free_instr_var_memory(CSOUND*, INSDS*);
+void free_instr_var_memory(CSOUND*, INSDS*);
+void mergeState_enqueue(CSOUND *csound, ENGINE_STATE *e, TYPE_TABLE* t, OPDS *ids);
 
 extern const char* SYNTHESIZED_ARG;
 
@@ -116,7 +117,7 @@ static int argCount(ARG* arg)
 */
 
 /* convert string constant */
-static void unquote_string(char *dst, const char *src)
+void unquote_string(char *dst, const char *src)
 {
     int i, j, n = (int) strlen(src) - 1;
     for (i = 1, j = 0; i < n; i++) {
@@ -236,7 +237,7 @@ char** splitArgs(CSOUND* csound, char* argString)
             t++;
             len++;
 
-            if (*t != ']') {
+            if (UNLIKELY(*t != ']')) {
               // FIXME: needs more precise error information
               csound->Message(csound,
                               Str("ERROR: Unmatched bracket found in array"
@@ -443,6 +444,18 @@ void addGlobalVariable(CSOUND *csound,
     }
 }
 
+void* find_or_add_constant(CSOUND* csound, CS_HASH_TABLE* constantsPool,
+                           const char* name, MYFLT value) {
+  void* retVal = cs_hash_table_get(csound, constantsPool, (char *) name);
+    if (retVal == NULL) {
+        CS_VAR_MEM *memValue = csound->Calloc(csound, sizeof(CS_VAR_MEM));
+        memValue->varType = (CS_TYPE*)&CS_VAR_TYPE_C;
+        memValue->value = value;
+        cs_hash_table_put(csound, constantsPool, (char *) name, memValue);
+        retVal = cs_hash_table_get(csound, constantsPool, (char *) name);
+    }
+    return retVal;
+}
 
 /**
  * NB - instr0 to be created only once, in the first compilation
@@ -475,7 +488,7 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
     addGlobalVariable(csound, engineState, rType, "$kr", NULL);
     addGlobalVariable(csound, engineState, rType, "$ksmps", NULL);
 
-    myflt_pool_find_or_add(csound, engineState->constantsPool, 0);
+    find_or_add_constant(csound, engineState->constantsPool, "0", 0.0);
 
     ip = (INSTRTXT *) csound->Calloc(csound, sizeof(INSTRTXT));
     ip->varPool = varPool;
@@ -525,7 +538,8 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
                                         NULL);
           // systems constants get set here and are not
           // compiled into i-time code
-          myflt_pool_find_or_add(csound, csound->engineState.constantsPool, val);
+          find_or_add_constant(csound, csound->engineState.constantsPool,
+              (const char*) current->right->value->lexeme, val);
 
           /* modify otran defaults*/
           /* removed assignments to csound->tran_* */
@@ -585,18 +599,20 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
       CSOUND    *p = (CSOUND*) csound;
       char      err_msg[128];
       CS_SPRINTF(err_msg, "sr = %.7g, kr = %.7g, ksmps = %.7g\nerror:",
-              sr, kr, ksmps);
+                 sr, kr, ksmps);
       if (UNLIKELY(sr <= FL(0.0)))
         synterr(p, Str("%s invalid sample rate"), err_msg);
       if (UNLIKELY(kr <= FL(0.0)))
         synterr(p, Str("%s invalid control rate"), err_msg);
+      if (UNLIKELY(ksmps <= FL(0.0)))
+        synterr(p, Str("%s invalid number of samples"), err_msg);
       else if (UNLIKELY(ksmps < FL(0.75) ||
                         FLOAT_COMPARE(ksmps,
                                       MYFLT2LRND(ksmps))))
         synterr(p, Str("%s invalid ksmps value"), err_msg);
       else if (UNLIKELY(FLOAT_COMPARE(sr,(double)kr *ksmps)))
         synterr(p, Str("%s inconsistent sr, kr, ksmps\n"), err_msg);
-      else if (ksmps > sr)
+      else if (UNLIKELY(ksmps > sr))
         synterr(p, Str("%s inconsistent sr, kr, ksmps \n"), err_msg);
     }
 
@@ -660,7 +676,7 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
           csound->ekr = O->kr_override;
         }
         else {
-         csound->ekr = csound->esr / csound->ksmps;
+          csound->ekr = csound->esr / csound->ksmps;
         }
       }
 
@@ -668,7 +684,7 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
       {
         char  s[256];
         CS_SPRINTF(s, Str("sr = %.7g, kr = %.7g, ksmps = %.7g\nerror:"),
-                csound->esr, csound->ekr, ensmps);
+                   csound->esr, csound->ekr, ensmps);
         if (UNLIKELY(csound->ksmps < 1 || FLOAT_COMPARE(ensmps, csound->ksmps)))
           csoundDie(csound, Str("%s invalid ksmps value"), s);
         if (UNLIKELY(csound->esr <= FL(0.0)))
@@ -704,20 +720,21 @@ INSTRTXT *create_instrument0(CSOUND *csound, TREE *root,
 }
 
 /**
-This global instrument replaces instr 0 in
-subsequent compilations. It does not allow the
-setting of system parameters such as ksmps etc,
-but it allows i-time code to be compiled and run.
+   This global instrument replaces instr 0 in
+   subsequent compilations. It does not allow the
+   setting of system parameters such as ksmps etc,
+   but it allows i-time code to be compiled and run.
 **/
 INSTRTXT *create_global_instrument(CSOUND *csound, TREE *root,
-                             ENGINE_STATE *engineState,
-                             CS_VAR_POOL* varPool)
+                                   ENGINE_STATE *engineState,
+                                   CS_VAR_POOL* varPool)
 {
     INSTRTXT *ip;
     OPTXT *op;
     TREE *current;
 
-    myflt_pool_find_or_add(csound, engineState->constantsPool, 0);
+    //csound->inZero = 1;
+    find_or_add_constant(csound, engineState->constantsPool, "0", 0);
 
     ip = (INSTRTXT *) csound->Calloc(csound, sizeof(INSTRTXT));
     ip->varPool = varPool;
@@ -752,19 +769,19 @@ INSTRTXT *create_global_instrument(CSOUND *csound, TREE *root,
         if (UNLIKELY(PARSER_DEBUG))
           csound->Message(csound,
                           "In INSTR GLOBAL: %s\n", current->value->lexeme);
-        if (current->type == '='
-            && strcmp(oentry->opname, "=.r") == 0)
+        if (UNLIKELY(current->type == '='
+                     && strcmp(oentry->opname, "=.r") == 0))
           csound->Warning(csound, Str("system constants can only be set once\n"));
         else {
-        op->nxtop = create_opcode(csound, current, ip, engineState);
-        op = last_optxt(op);
+          op->nxtop = create_opcode(csound, current, ip, engineState);
+          op = last_optxt(op);
         }
       }
       current = current->next;
     }
 
     close_instrument(csound, engineState, ip);
-
+    //csound->inZero = 0;
     return ip;
 }
 
@@ -816,14 +833,14 @@ INSTRTXT *create_instrument(CSOUND *csound, TREE *root,
     ip->t.inlist->count = 1;
 
     /* create local ksmps variable */
-     CS_TYPE* rType = (CS_TYPE*)&CS_VAR_TYPE_R;
-     CS_VARIABLE *var = csoundCreateVariable(csound, csound->typePool,
+    CS_TYPE* rType = (CS_TYPE*)&CS_VAR_TYPE_R;
+    CS_VARIABLE *var = csoundCreateVariable(csound, csound->typePool,
                                             rType, "ksmps", NULL);
-     csoundAddVariable(csound, ip->varPool, var);
-     /* same for kr */
-     var = csoundCreateVariable(csound, csound->typePool,
-                                            rType, "kr", NULL);
-     csoundAddVariable(csound, ip->varPool, var);
+    csoundAddVariable(csound, ip->varPool, var);
+    /* same for kr */
+    var = csoundCreateVariable(csound, csound->typePool,
+                               rType, "kr", NULL);
+    csoundAddVariable(csound, ip->varPool, var);
 
     /* Maybe should do this assignment at end when instr is setup?
      * Note: look into how "instr 4,5,6,8" is handled, i.e. if copies
@@ -840,7 +857,7 @@ INSTRTXT *create_instrument(CSOUND *csound, TREE *root,
 
       if (PARSER_DEBUG)
         csound->Message(csound,
-                        Str("create_instrument: instr num %ld\n"), instrNum);
+                        Str("create_instrument: instr num %d\n"), instrNum);
 
       ip->t.inlist->arg[0] = strsav_string(csound, engineState, c);
 
@@ -922,33 +939,33 @@ void free_instrtxt(CSOUND *csound, INSTRTXT *instrtxt)
     }
     OPTXT *t = ip->nxtop;
     while (t) {
-          OPTXT *s = t->nxtop;
-          TEXT *ttp = &t->t;
-          //printf("%s \n",  ttp->opcod);
-          ARG* current = ttp->outArgs;
-          while (current != NULL) {
-              ARG *tmp = current;
-              //printf("delete %p \n", tmp);
-              current = current->next;
-              csound->Free(csound, tmp);
-            }
-          csound->Free(csound, t->t.outlist);
-          current = ttp->inArgs;
-            while (current  != NULL) {
-              ARG *tmp = current;
-              //printf("delete %p \n", tmp);
-              current = current->next;
-              csound->Free(csound, tmp);
-           }
-          csound->Free(csound, t->t.inlist);
-          csound->Free(csound, t);
-          t = s;
-        }
+      OPTXT *s = t->nxtop;
+      TEXT *ttp = &t->t;
+      //printf("%s \n",  ttp->opcod);
+      ARG* current = ttp->outArgs;
+      while (current != NULL) {
+        ARG *tmp = current;
+        //printf("delete %p \n", tmp);
+        current = current->next;
+        csound->Free(csound, tmp);
+      }
+      csound->Free(csound, t->t.outlist);
+      current = ttp->inArgs;
+      while (current  != NULL) {
+        ARG *tmp = current;
+        //printf("delete %p \n", tmp);
+        current = current->next;
+        csound->Free(csound, tmp);
+      }
+      csound->Free(csound, t->t.inlist);
+      csound->Free(csound, t);
+      t = s;
+    }
 
     csound->Free(csound, ip->t.outlist);
     csound->Free(csound, ip->t.inlist);
     CS_VARIABLE *var = ip->varPool->head;
-    while(var != NULL) {
+    while (var != NULL) {
       CS_VARIABLE *tmp = var;
       var = var->next;
       csound->Free(csound, tmp->varName);
@@ -956,7 +973,7 @@ void free_instrtxt(CSOUND *csound, INSTRTXT *instrtxt)
 
     csoundFreeVarPool(csound, ip->varPool);
     csound->Free(csound, ip);
-    if (csound->oparms->odebug)
+    if (UNLIKELY(csound->oparms->odebug))
        csound->Message(csound, Str("-- deleted instr from deadpool \n"));
 }
 
@@ -972,7 +989,7 @@ void add_to_deadpool(CSOUND *csound, INSTRTXT *instrtxt)
 {
     /* check current items in deadpool to see if they need deleting */
     int i;
-    for(i=0; i < csound->dead_instr_no; i++) {
+    for (i=0; i < csound->dead_instr_no; i++) {
       if (csound->dead_instr_pool[i] != NULL) {
         INSDS *active = csound->dead_instr_pool[i]->instance;
         while (active != NULL) {
@@ -984,7 +1001,7 @@ void add_to_deadpool(CSOUND *csound, INSTRTXT *instrtxt)
         }
         /* no active instances */
         if (active == NULL) {
-          if (csound->oparms->odebug)
+          if (UNLIKELY(csound->oparms->odebug))
             csound->Message(csound, Str(" -- free instr def %p %p \n"),
                             csound->dead_instr_pool[i]->instance,
                             csound->dead_instr_pool[i]);
@@ -998,7 +1015,7 @@ void add_to_deadpool(CSOUND *csound, INSTRTXT *instrtxt)
     for (i=0; i < csound->dead_instr_no; i++) {
       if (csound->dead_instr_pool[i] == NULL) {
          csound->dead_instr_pool[i] = instrtxt;
-         if (csound->oparms->odebug)
+         if (UNLIKELY(csound->oparms->odebug))
            csound->Message(csound, Str(" -- added to deadpool slot %d \n"),
                            i);
          return;
@@ -1009,7 +1026,7 @@ void add_to_deadpool(CSOUND *csound, INSTRTXT *instrtxt)
       csound->ReAlloc(csound, csound->dead_instr_pool,
                ++csound->dead_instr_no * sizeof(INSTRTXT*));
     csound->dead_instr_pool[csound->dead_instr_no-1] = instrtxt;
-    if (csound->oparms->odebug)
+    if (UNLIKELY(csound->oparms->odebug))
       csound->Message(csound, Str(" -- added to deadpool slot %d \n"),
                       csound->dead_instr_no-1);
 }
@@ -1036,9 +1053,9 @@ int named_instr_alloc(CSOUND *csound, char *s, INSTRTXT *ip,
       if (!merge) return ret;
        inm->ip->isNew = 1;
       /* redefinition does not raise an error now, just a warning */
-       if (csound->oparms->odebug)
+       if (UNLIKELY(csound->oparms->odebug))
          csound->Warning(csound,
-                         Str("instr %ld redefined, replacing previous definition"),
+                         Str("instr %d redefined, replacing previous definition"),
                          inm->instno);
       /* here we should move the old instrument definition into a deadpool
          which will be checked for active instances and freed when there are no
@@ -1064,14 +1081,14 @@ int named_instr_alloc(CSOUND *csound, char *s, INSTRTXT *ip,
       }
       /* no active instances */
       if (active == NULL) {
-        if (csound->oparms->odebug)
+        if (UNLIKELY(csound->oparms->odebug))
           csound->Message(csound, Str("no active instances \n"));
         free_instrtxt(csound, engineState->instrtxtp[inm->instno]);
         engineState->instrtxtp[inm->instno] = NULL;
       }
       inm->ip->instance = inm->ip->act_instance = inm->ip->lst_instance = NULL;
     }
-    cont:
+ cont:
 
     /* allocate entry, */
     inm = (INSTRNAME*) csound->Calloc(csound, sizeof(INSTRNAME));
@@ -1091,7 +1108,7 @@ int named_instr_alloc(CSOUND *csound, char *s, INSTRTXT *ip,
         cs_hash_table_put(csound, engineState->instrumentNames,
                           (char*)INSTR_NAME_FIRST, inm2);
     } else {
-        while(inm_head->next != NULL) {
+        while (inm_head->next != NULL) {
             inm_head = inm_head->next;
         }
         inm_head->next = inm2;
@@ -1141,7 +1158,8 @@ void named_instr_assign_numbers(CSOUND *csound, ENGINE_STATE *engineState)
         //printf("instno %d \n", num);
         inm2->instno = (int32) num;
         engineState->instrtxtp[num] = inm2->ip;
-        if (csound->oparms->msglevel && engineState == &csound->engineState)
+        if (UNLIKELY(csound->oparms->msglevel &&
+                     engineState == &csound->engineState))
           csound->Message(csound, Str("instr %s uses instrument number %d\n"),
                                   inm2->name, num);
       }
@@ -1191,9 +1209,9 @@ void insert_instrtxt(CSOUND *csound, INSTRTXT *instrtxt,
       /* redefinition does not raise an error now, just a warning */
       /* unless we are not merging */
       if (!merge) synterr(csound, Str("instr %d redefined\n"), instrNum);
-      if (instrNum && csound->oparms->odebug)
+      if (UNLIKELY(instrNum && csound->oparms->odebug))
         csound->Warning(csound,
-                        Str("instr %ld redefined, replacing previous definition"),
+                        Str("instr %d redefined, replacing previous definition"),
                         instrNum);
       /* inherit active & maxalloc flags */
         instrtxt->active = engineState->instrtxtp[instrNum]->active;
@@ -1221,10 +1239,10 @@ void insert_instrtxt(CSOUND *csound, INSTRTXT *instrtxt,
       /* no active instances */
       /* instr0 is freed elsewhere */
       if (active == NULL  && instrNum != 0) {
-       if (csound->oparms->odebug)
-       csound->Message(csound,
-                       Str("no active instances of instr %d \n"), instrNum);
-       free_instrtxt(csound, engineState->instrtxtp[instrNum]);
+        if (UNLIKELY(csound->oparms->odebug))
+          csound->Message(csound,
+                          Str("no active instances of instr %d \n"), instrNum);
+        free_instrtxt(csound, engineState->instrtxtp[instrNum]);
       }
 
       /* err++; continue; */
@@ -1298,24 +1316,26 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
     int i, end = engineState->maxinsno;
     ENGINE_STATE *current_state = &csound->engineState;
     INSTRTXT *current, *old_instr0;
-    int count;
+    int count = 0;
 
     //cs_hash_table_merge(csound,
     //                current_state->stringPool, engineState->stringPool);
 
-    for (count = 0; count < engineState->constantsPool->count; count++) {
-    if (csound->oparms->odebug)
+    cs_hash_table_merge(csound, current_state->constantsPool,
+                        engineState->constantsPool);
+   /* for (count = 0; count < engineState->constantsPool->count; count++) {
+      if (UNLIKELY(csound->oparms->odebug))
         csound->Message(csound, Str(" merging constants %d) %f\n"),
                         count, engineState->constantsPool->values[count].value);
-        myflt_pool_find_or_add(csound, current_state->constantsPool,
-                       engineState->constantsPool->values[count].value);
-    }
+      myflt_pool_find_or_add(csound, current_state->constantsPool,
+                             engineState->constantsPool->values[count].value);
+    }*/
 
     CS_VARIABLE* gVar = engineState->varPool->head;
     while (gVar != NULL) {
       CS_VARIABLE* var;
-      if (csound->oparms->odebug)
-      csound->Message(csound, Str(" merging %p %d) %s:%s\n"), gVar, count,
+      if (UNLIKELY(csound->oparms->odebug))
+        csound->Message(csound, Str(" merging %p %d) %s:%s\n"), gVar, count,
                         gVar->varName, gVar->varType->varTypeName);
       var = csoundFindVariableWithName(csound,
                                        current_state->varPool, gVar->varName);
@@ -1330,7 +1350,7 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
         /* when disposing of the engineState global vars, we do not
            delete the memBlock */
         var->memBlock = gVar->memBlock;
-        if (csound->oparms->odebug)
+        if (UNLIKELY(csound->oparms->odebug))
           csound->Message(csound, Str(" adding %p %d) %s:%s\n"),  var, count,
                           gVar->varName, gVar->varType->varTypeName);
         gVar = gVar->next;
@@ -1346,7 +1366,11 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
     }
 
     /* merge opcodinfo */
+
+    /* VL probably not the right place, since instr list
+       might grow
     insert_opcodes(csound, csound->opcodeInfo, current_state);
+    */
     old_instr0 = current_state->instrtxtp[0];
     insert_instrtxt(csound,engineState->instrtxtp[0],0,current_state,1);
     for (i=1; i < end; i++) {
@@ -1361,7 +1385,7 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
           insert_instrtxt(csound,current,i,current_state,1);
         }
         else {
-          if (csound->oparms->odebug)
+          if (UNLIKELY(csound->oparms->odebug))
             csound->Message(csound, Str("merging instr %s \n"), current->insname);
           /* allocate a named_instr string in the current engine */
           named_instr_alloc(csound,current->insname,current,-1L,current_state,1);
@@ -1370,12 +1394,15 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
     }
     /* merges all named instruments */
     //printf("assign numbers; %p\n", current_state);
-    named_instr_assign_numbers(csound,current_state);
+    named_instr_assign_numbers(csound,current_state);\
+    /* VL MOVED here after all instruments are merged so
+       that we get the correct number */
+    insert_opcodes(csound, csound->opcodeInfo, current_state);
     /* this needs to be called in a separate loop
        in case of multiple instr numbers, so insprep() is called only once */
     current = (&(engineState->instxtanchor));//->nxtinstxt;
     while ((current = current->nxtinstxt) != NULL) {
-      if (csound->oparms->odebug)
+      if (UNLIKELY(csound->oparms->odebug))
         csound->Message(csound, "insprep %p \n", current);
       insprep(csound, current, current_state);/* run insprep() to connect ARGS */
       recalculateVarPoolMemory(csound,
@@ -1388,7 +1415,7 @@ int engineState_merge(CSOUND *csound, ENGINE_STATE *engineState)
       int j;
       current = current_state->instrtxtp[i];
       if (current != NULL) {
-        if (csound->oparms->odebug)
+        if (UNLIKELY(csound->oparms->odebug))
           csound->Message(csound, "instr %d:%p \n", i, current);
         current->nxtinstxt = NULL;
         j = i;
@@ -1410,7 +1437,8 @@ int engineState_free(CSOUND *csound, ENGINE_STATE *engineState)
 {
 
     csound->Free(csound, engineState->instrumentNames);
-    myflt_pool_free(csound, engineState->constantsPool);
+    cs_hash_table_free(csound, engineState->constantsPool);
+    //cs_hash_table_free(csound, engineState->stringPool);
     csoundFreeVarPool(csound, engineState->varPool);
     csound->Free(csound, engineState->instrtxtp);
     csound->Free(csound, engineState);
@@ -1433,6 +1461,24 @@ static char *node2string(int type)
     }
 }
 
+/** Merge and Dispose of engine state and type table,
+   and run global i-time code
+*/
+void merge_state(CSOUND *csound, ENGINE_STATE *engineState,
+                 TYPE_TABLE* typetable, OPDS *ids) {
+   if (csound->init_pass_threadlock)
+       csoundLockMutex(csound->init_pass_threadlock);
+    engineState_merge(csound, engineState);
+    engineState_free(csound, engineState);
+    free_typetable(csound, typetable);
+    /* run global i-time code */
+    init0(csound);
+    csound->ids = ids;
+   if (csound->init_pass_threadlock)
+       csoundUnlockMutex(csound->init_pass_threadlock);
+}
+
+
 /**
  * Compile the given TREE node into structs
 
@@ -1449,13 +1495,16 @@ static char *node2string(int type)
    3) Creates other instruments
    4) Calls engineState_merge() and engineState_free()
 
+    async determines asynchronous operation of the
+    merge stage.
+
   VL 20-12-12
 
  * ASSUMES: TREE has been validated prior to compilation
  *
  *
  */
-PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
+int csoundCompileTreeInternal(CSOUND *csound, TREE *root, int async)
 {
     INSTRTXT    *instrtxt = NULL;
     INSTRTXT    *ip = NULL;
@@ -1486,7 +1535,7 @@ PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
       engineState = (ENGINE_STATE *) csound->Calloc(csound, sizeof(ENGINE_STATE));
       engineState->stringPool = csound->engineState.stringPool;
                                 //cs_hash_table_create(csound);
-      engineState->constantsPool = myflt_pool_create(csound);
+      engineState->constantsPool = cs_hash_table_create(csound);
       engineState->varPool = typeTable->globalPool;
       prvinstxt = &(engineState->instxtanchor);
       engineState->instrtxtp =
@@ -1508,7 +1557,7 @@ PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
     // if this variable already exists,
     // memory will be freed on merge.
     var = typeTable->globalPool->head;
-    while(var != NULL) {
+    while (var != NULL) {
       size_t memSize = CS_VAR_TYPE_OFFSET + var->memBlockSize;
       CS_VAR_MEM* varMem = (CS_VAR_MEM*) csound->Calloc(csound, memSize);
       //printf("alloc %p -- %s\n", varMem, var->varName);
@@ -1678,24 +1727,20 @@ PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
       return CSOUND_ERROR;
     }
 
+
     /* now add the instruments with names, assigning them fake instr numbers */
     named_instr_assign_numbers(csound,engineState);
-
-    /* lock to ensure thread-safety */
-    csoundLockMutex(csound->API_lock);
-    if (csound->init_pass_threadlock)
-      csoundLockMutex(csound->init_pass_threadlock);
     if (engineState != &csound->engineState) {
       OPDS *ids = csound->ids;
       /* any compilation other than the first one */
       /* merge ENGINE_STATE */
-      engineState_merge(csound, engineState);
-      /* delete ENGINE_STATE  */
-      engineState_free(csound, engineState);
-      /* run global i-time code */
-      init0(csound);
-      csound->ids = ids;
-      free_typetable(csound, typeTable);
+      /* lock to ensure thread-safety */
+      if (!async) {
+        csoundLockMutex(csound->API_lock);
+        merge_state(csound, engineState, typeTable, ids);
+        csoundUnlockMutex(csound->API_lock);
+      } else
+        mergeState_enqueue(csound, engineState, typeTable, ids);
     }
     else {
       /* first compilation */
@@ -1714,9 +1759,12 @@ PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
                      (!thread && bp->t.pftype != 'b'))) {
           csound->DebugMsg(csound, "***opcode=%s thread=%d pftype=%c\n",
                            bp->t.opcod, thread, bp->t.pftype);
-          synterr(csound,
+          /* synterr(csound,
                   Str("perf-pass statements illegal in header blk (%s)\n"),
-                  oentry->opname);
+                  oentry->opname);*/
+          csound->Warning(csound,
+                          Str("%s: perf-time code in global space, ignored"),
+                          oentry->opname);
         }
       }
 
@@ -1743,29 +1791,11 @@ PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root)
       var = csoundFindVariableWithName(csound, engineState->varPool, "A4");
       var->memBlock->value = csound->A4;
     }
-    if (csound->init_pass_threadlock)
-      csoundUnlockMutex(csound->init_pass_threadlock);
-    /* notify API lock  */
-    csoundUnlockMutex(csound->API_lock);
+
+
     return CSOUND_SUCCESS;
 }
 
-/**
-    Parse and compile an orchestra given on an string,
-    evaluating any global space code (i-time only).
-    On SUCCESS it returns a value passed to the
-    'return' opcode in global space
-*/
-PUBLIC MYFLT csoundEvalCode(CSOUND *csound, const char *str)
-{
-    if (str && csoundCompileOrc(csound,str) == CSOUND_SUCCESS)
-      return csound->instr0->instance[0].retval;
-#ifdef NAN
-    else return NAN;
-#else
-    else return 0;
-#endif
-}
 
 #ifdef EMSCRIPTEN
 void sanitize(CSOUND *csound) {}
@@ -1778,8 +1808,10 @@ extern void sanitize(CSOUND *csound);
     if str is NULL the string is taken from the internal corfile
     containing the initial orchestra file passed to Csound.
     Also evaluates any global space code.
+    async determines asynchronous operation of the
+    merge stage.
 */
-PUBLIC int csoundCompileOrc(CSOUND *csound, const char *str)
+int csoundCompileOrcInternal(CSOUND *csound, const char *str, int async)
 {
     TREE *root;
     int retVal=1;
@@ -1793,7 +1825,7 @@ PUBLIC int csoundCompileOrc(CSOUND *csound, const char *str)
     //retVal = 1;
     root = csoundParseOrc(csound, str);
     if (LIKELY(root != NULL)) {
-      retVal = csoundCompileTree(csound, root);
+      retVal = csoundCompileTreeInternal(csound, root, async);
       // Sanitise semantic sets here
       sanitize(csound);
       csoundDeleteTree(csound, root);
@@ -1811,6 +1843,8 @@ PUBLIC int csoundCompileOrc(CSOUND *csound, const char *str)
 }
 
 
+
+
 /* prep an instr template for efficient allocs  */
 /* repl arg refs by offset ndx to lcl/gbl space */
 static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
@@ -1837,7 +1871,7 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
         continue;
       }
 
-      if (O->odebug)
+      if (UNLIKELY(O->odebug))
         csound->Message(csound, "%s args:", ep->opname);
       if ((outlist = ttp->outlist) == NULL || !outlist->count)
         ttp->outArgs = NULL;
@@ -1860,7 +1894,7 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
       }
       if ((inlist = ttp->inlist) == NULL || !inlist->count)
         ttp->inArgs = NULL;
-      else {
+     else {
         inreqd = argsRequired(ep->intypes);
         argStringParts = splitArgs(csound, ep->intypes);
         argp = inlist->arg;                     /* get inarg indices */
@@ -1884,7 +1918,7 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
           } else {
             ARG* current = ttp->inArgs;
             //printf("xinarg %p %p -- opcode %s \n", current, arg, ttp->opcod);
-            while(current->next != NULL) {
+            while (current->next != NULL) {
               //printf("inarg %p %p -- opcode %s \n", current, arg, ttp->opcod);
               current = current->next;
             }
@@ -1905,7 +1939,7 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
                             tp->insname, tp->pmax);
           else
             csound->Message(csound, "PSET: isno=??, pmax=%d\n", tp->pmax);
-          if ((n = ttp->inArgCount) != tp->pmax) {
+          if (UNLIKELY((n = ttp->inArgCount) != tp->pmax)) {
             //csound->Warning(csound, Str("i%d pset args != pmax"), (int) insno);
             csound->Warning(csound, Str("i[fixme] pset args != pmax"));
             if (n < tp->pmax) n = tp->pmax; /* cf pset, pmax    */
@@ -1918,7 +1952,7 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
             switch (inArgs->type) {
               case ARG_CONSTANT:
 
-                *fp1++ = engineState->constantsPool->values[inArgs->index].value;
+                *fp1++ = ((CS_VAR_MEM*)inArgs->argPtr)->value;
                 break;
 
 //                      case ARG_LOCAL:
@@ -1948,14 +1982,14 @@ static void insprep(CSOUND *csound, INSTRTXT *tp, ENGINE_STATE *engineState)
           csound->Message(csound, "\n");
         }
         //printf("delete %p \n", argStringParts);
-        for(n=0; argStringParts[n] != NULL; n++) {
+        for (n=0; argStringParts[n] != NULL; n++) {
           //printf("delete %p \n", argStringParts[n]);
           csound->Free(csound, argStringParts[n]);
         }
         csound->Free(csound, argStringParts);
       }
 
-      if (O->odebug)
+      if (UNLIKELY(O->odebug))
         csound->Message(csound, "\n");
     }
 }
@@ -1973,7 +2007,11 @@ static void lgbuild(CSOUND *csound, INSTRTXT* ip, char *s,
     /* must trap 0dbfs as name starts with a digit! */
     if ((c >= '1' && c <= '9') || c == '.' || c == '-' || c == '+' ||
         (c == '0' && strcmp(s, "0dbfs") != 0)) {
-      myflt_pool_find_or_addc(csound, engineState->constantsPool, s);
+        if (cs_hash_table_get(csound,
+                              csound->engineState.constantsPool, s) == NULL) {
+            find_or_add_constant(csound, engineState->constantsPool,
+                                 s, cs_strtod(s, NULL));
+        }
     } else if (c == '"') {
       temp = csound->Calloc(csound, strlen(s) + 1);
       //csound->Message(csound, "%c \n", s[1]);
@@ -2006,7 +2044,13 @@ static ARG* createArg(CSOUND *csound, INSTRTXT* ip,
         (c == '0' && strcmp(s, "0dbfs") != 0)) {
       arg->type = ARG_CONSTANT;
       //printf("create constant %p: %c \n", arg, c);
-      arg->index = myflt_pool_find_or_addc(csound, engineState->constantsPool, s);
+
+      if ((arg->argPtr =
+           cs_hash_table_get(csound,
+                             csound->engineState.constantsPool, s)) != NULL) {
+        arg->argPtr = find_or_add_constant(csound, engineState->constantsPool,
+                                           s, cs_strtod(s, NULL));
+      }
     } else if (c == '"') {
       size_t memSize = CS_VAR_TYPE_OFFSET + sizeof(STRINGDAT);
       CS_VAR_MEM* varMem = csound->Calloc(csound, memSize);
@@ -2086,7 +2130,7 @@ char argtyp2(char *s)
     if (c == 'g')
       c = *(++s);
     if (c == '[') {
-      while(c == '[') {
+      while (c == '[') {
         c = *(++s);
       }
     }
@@ -2110,7 +2154,7 @@ uint8_t file_to_int(CSOUND *csound, const char *name)
     }
     // Not there so add
     // ensure long enough?
-    if (n==255) {
+    if (UNLIKELY(n==255)) {
       filedir[n] = cs_strdup(csound, Str("**unrecorded**"));
     }
     else {
@@ -2124,25 +2168,29 @@ void debugPrintCsound(CSOUND* csound)
 {
     INSTRTXT    *current;
     CONS_CELL* val = cs_hash_table_keys(csound, csound->engineState.stringPool);
+    CONS_CELL* const_val = cs_hash_table_values(csound,
+                                                csound->engineState.constantsPool);
     int count = 0;
     csound->Message(csound, "Compile State:\n");
     csound->Message(csound, "String Pool:\n");
 
-    while(val != NULL) {
+    while (val != NULL) {
       csound->Message(csound, "    %d) %s\n", count++, (char *)val->value);
       val = val->next;
     }
+
     csound->Message(csound, "Constants Pool:\n");
-    count = 0;
-    for(count = 0; count < csound->engineState.constantsPool->count; count++) {
-      csound->Message(csound, "    %d) %f\n",
-                      count, csound->engineState.constantsPool->values[count].value);
+    while (const_val != NULL) {
+      CS_VAR_MEM* mem = (CS_VAR_MEM*)const_val->value;
+      csound->Message(csound, "  %d) %f\n", count++,
+                      mem->value);
+      const_val = const_val->next;
     }
 
     csound->Message(csound, "Global Variables:\n");
     CS_VARIABLE* gVar = csound->engineState.varPool->head;
     count = 0;
-    while(gVar != NULL) {
+    while (gVar != NULL) {
       csound->Message(csound, "  %d) %s:%s\n", count++,
                       gVar->varName, gVar->varType->varTypeName);
       gVar = gVar->next;
@@ -2183,6 +2231,6 @@ void query_deprecated_opcode(CSOUND *csound, ORCTOKEN *o)
 {
     char *name = o->lexeme;
     OENTRY *ep = find_opcode(csound, name);
-    if (ep->flags&_QQ)
+    if (UNLIKELY(ep->flags&_QQ))
       csound->Warning(csound, Str("Opcode \"%s\" is deprecated\n"), name);
 }
diff --git a/Engine/csound_orc_expressions.c b/Engine/csound_orc_expressions.c
index 46252c8..a7755c0 100644
--- a/Engine/csound_orc_expressions.c
+++ b/Engine/csound_orc_expressions.c
@@ -48,8 +48,8 @@ extern char* get_array_sub_type(CSOUND* csound, char*);
 extern char* convert_external_to_internal(CSOUND* csound, char* arg);
 
 
-TREE* create_boolean_expression(CSOUND*, TREE*, int, int, TYPE_TABLE*);
-TREE * create_expression(CSOUND *, TREE *, int, int, TYPE_TABLE*);
+static TREE *create_boolean_expression(CSOUND*, TREE*, int, int, TYPE_TABLE*);
+static TREE *create_expression(CSOUND *, TREE *, int, int, TYPE_TABLE*);
 char *check_annotated_type(CSOUND* csound, OENTRIES* entries,
                            char* outArgTypes);
 
@@ -108,7 +108,7 @@ char * get_boolean_arg(CSOUND *csound, TYPE_TABLE* typeTable, int type)
     return s;
 }
 
-TREE *create_empty_token(CSOUND *csound)
+static TREE *create_empty_token(CSOUND *csound)
 {
     TREE *ans;
     ans = (TREE*)csound->Malloc(csound, sizeof(TREE));
@@ -129,7 +129,7 @@ TREE *create_empty_token(CSOUND *csound)
     return ans;
 }
 
-TREE *create_minus_token(CSOUND *csound)
+static TREE *create_minus_token(CSOUND *csound)
 {
     TREE *ans;
     ans = (TREE*)csound->Malloc(csound, sizeof(TREE));
@@ -148,7 +148,7 @@ TREE *create_minus_token(CSOUND *csound)
     return ans;
 }
 
-TREE * create_opcode_token(CSOUND *csound, char* op)
+static TREE * create_opcode_token(CSOUND *csound, char* op)
 {
     TREE *ans = create_empty_token(csound);
 
@@ -159,7 +159,7 @@ TREE * create_opcode_token(CSOUND *csound, char* op)
     return ans;
 }
 
-TREE * create_ans_token(CSOUND *csound, char* var)
+static TREE * create_ans_token(CSOUND *csound, char* var)
 {
     TREE *ans = create_empty_token(csound);
 
@@ -171,7 +171,7 @@ TREE * create_ans_token(CSOUND *csound, char* var)
 
 }
 
-TREE * create_goto_token(CSOUND *csound, char * booleanVar,
+static TREE * create_goto_token(CSOUND *csound, char * booleanVar,
                          TREE * gotoNode, int type)
 {
     /*     TREE *ans = create_empty_token(csound); */
@@ -186,9 +186,12 @@ TREE * create_goto_token(CSOUND *csound, char * booleanVar,
       strncpy(op, "cigoto", 8);
       break;
     case ITHEN_TOKEN:
+    icase:
       strncpy(op, "cingoto", 8);
       break;
     case THEN_TOKEN:
+      if (csound->inZero) goto icase;
+      /* fall through */
     case KTHEN_TOKEN:
       strncpy(op, "cngoto", 8);
       break;
@@ -197,7 +200,8 @@ TREE * create_goto_token(CSOUND *csound, char * booleanVar,
       case 1: strncpy(op, "ckgoto", 8); break;
       case 0x8001: strncpy(op, "cnkgoto", 8); break;
       case 0: strncpy(op, "cggoto", 8); break;
-      case 0x8000: strncpy(op, "cngoto", 8); break;
+      case 0x8000:
+        strncpy(op,csound->inZero?"cingoto":"cngoto", 8); break;
       default: printf("Whooops %d\n", type);
       }
     }
@@ -217,11 +221,12 @@ TREE * create_goto_token(CSOUND *csound, char * booleanVar,
 
 /* THIS PROBABLY NEEDS TO CHANGE TO RETURN DIFFERENT GOTO
    TYPES LIKE IGOTO, ETC */
-TREE *create_simple_goto_token(CSOUND *csound, TREE *label, int type)
+static TREE *create_simple_goto_token(CSOUND *csound, TREE *label, int type)
 {
     char* op = (char *)csound->Calloc(csound, 6);
     TREE * opTree;
     char *gt[3] = {"kgoto", "igoto", "goto"};
+    if (csound->inZero && type==2) type = 1;
     strncpy(op, gt[type],6);       /* kgoto, igoto, goto ?? */
     opTree = create_opcode_token(csound, op);
     opTree->left = NULL;
@@ -275,6 +280,7 @@ int is_boolean_expression_node(TREE *node)
     case S_LT:
     case S_AND:
     case S_OR:
+    case S_UNOT:
       return 1;
     }
     return 0;
@@ -349,8 +355,8 @@ static TREE *create_cond_expression(CSOUND *csound,
     return anchor;
 }
 
-char* create_out_arg_for_expression(CSOUND* csound, char* op, TREE* left,
-                                    TREE* right, TYPE_TABLE* typeTable) {
+static char* create_out_arg_for_expression(CSOUND* csound, char* op, TREE* left,
+                                           TREE* right, TYPE_TABLE* typeTable) {
     char* outType;
 
     OENTRIES* opentries = find_opcode2(csound, op);
@@ -368,7 +374,7 @@ char* create_out_arg_for_expression(CSOUND* csound, char* op, TREE* left,
     csound->Free(csound, rightArgType);
     csound->Free(csound, opentries);
 
-    if(outType == NULL) return NULL;
+    if (outType == NULL) return NULL;
 
     outType = convert_external_to_internal(csound, outType);
     return create_out_arg(csound, outType,
@@ -379,8 +385,8 @@ char* create_out_arg_for_expression(CSOUND* csound, char* op, TREE* left,
  * Create a chain of Opcode (OPTXT) text from the AST node given. Called from
  * create_opcode when an expression node has been found as an argument
  */
-TREE * create_expression(CSOUND *csound, TREE *root, int line, int locn,
-                         TYPE_TABLE* typeTable)
+static TREE *create_expression(CSOUND *csound, TREE *root, int line, int locn,
+                               TYPE_TABLE* typeTable)
 {
     char op[80], *outarg = NULL;
     TREE *anchor = NULL, *last;
@@ -480,7 +486,7 @@ TREE * create_expression(CSOUND *csound, TREE *root, int line, int locn,
           csound->Message(csound, "Found OP: %s\n", op);
 
         opentries = find_opcode2(csound, root->value->lexeme);
-        if (opentries->count == 0) {
+        if (UNLIKELY(opentries->count == 0)) {
           csound->Warning(csound,
                           Str("error: function %s not found, "
                               "line %d \n"),
@@ -501,7 +507,7 @@ TREE * create_expression(CSOUND *csound, TREE *root, int line, int locn,
 
         csound->Free(csound, opentries);
 
-        if (outtype == NULL) {
+        if (UNLIKELY(outtype == NULL)) {
           csound->Warning(csound,
                           Str("error: opcode %s with output type %s not found, "
                               "line %d"),
@@ -600,6 +606,9 @@ TREE * create_expression(CSOUND *csound, TREE *root, int line, int locn,
           char* rightArgType = get_arg_string_from_tree(csound, root->right,
                                                         typeTable);
 
+          leftArgType =csound->ReAlloc(csound, leftArgType, strlen(leftArgType) +
+                                       strlen(rightArgType) + 1);
+
           char* argString = strcat(leftArgType, rightArgType);
 
           char* outype = resolve_opcode_get_outarg(csound, opentries,
@@ -656,8 +665,8 @@ TREE * create_expression(CSOUND *csound, TREE *root, int line, int locn,
  * Create a chain of Opcode (OPTXT) text from the AST node given. Called from
  * create_opcode when an expression node has been found as an argument
  */
-TREE * create_boolean_expression(CSOUND *csound, TREE *root, int line, int locn,
-                                 TYPE_TABLE* typeTable)
+static TREE *create_boolean_expression(CSOUND *csound, TREE *root,
+                                       int line, int locn, TYPE_TABLE* typeTable)
 {
     char *op, *outarg;
     TREE *anchor = NULL, *last;
@@ -741,6 +750,9 @@ TREE * create_boolean_expression(CSOUND *csound, TREE *root, int line, int locn,
 
     op = csound->Calloc(csound, 80);
     switch(root->type) {
+    case S_UNOT:
+      strncpy(op, "!", 80);
+      break;
     case S_EQ:
       strncpy(op, "==", 80);
       break;
@@ -767,18 +779,28 @@ TREE * create_boolean_expression(CSOUND *csound, TREE *root, int line, int locn,
       break;
     }
 
-    if (UNLIKELY(PARSER_DEBUG))
-      csound->Message(csound, "Operator Found: %s (%c %c)\n", op,
-                      argtyp2( root->left->value->lexeme),
-                      argtyp2( root->right->value->lexeme));
-
-    outarg = get_boolean_arg(
-                 csound,
-                 typeTable,
-                 argtyp2( root->left->value->lexeme) =='k' ||
-                 argtyp2( root->right->value->lexeme)=='k' ||
-                 argtyp2( root->left->value->lexeme) =='B' ||
-                 argtyp2( root->right->value->lexeme)=='B');
+    if (UNLIKELY(PARSER_DEBUG)) {
+      if (root->type == S_UNOT)
+        csound->Message(csound, "Operator Found: %s (%c)\n", op,
+                        argtyp2( root->left->value->lexeme));
+      else
+        csound->Message(csound, "Operator Found: %s (%c %c)\n", op,
+                        argtyp2( root->left->value->lexeme),
+                        argtyp2( root->right->value->lexeme));
+    }
+    if (root->type == S_UNOT) {
+      outarg = get_boolean_arg(csound,
+                               typeTable,
+                               argtyp2( root->left->value->lexeme) =='k' ||
+                               argtyp2( root->left->value->lexeme) =='B');
+    }
+    else
+      outarg = get_boolean_arg(csound,
+                               typeTable,
+                               argtyp2( root->left->value->lexeme) =='k' ||
+                               argtyp2( root->right->value->lexeme)=='k' ||
+                               argtyp2( root->left->value->lexeme) =='B' ||
+                               argtyp2( root->right->value->lexeme)=='B');
 
     add_arg(csound, outarg, typeTable);
     opTree = create_opcode_token(csound, op);
@@ -815,7 +837,7 @@ static TREE *create_synthetic_ident(CSOUND *csound, int32 count)
     return make_leaf(csound, -1, 0, T_IDENT, token);
 }
 
-TREE *create_synthetic_label(CSOUND *csound, int32 count)
+static TREE *create_synthetic_label(CSOUND *csound, int32 count)
 {
     char *label = (char *)csound->Calloc(csound, 20);
     ORCTOKEN *token;
@@ -827,7 +849,8 @@ TREE *create_synthetic_label(CSOUND *csound, int32 count)
     return make_leaf(csound, -1, 0, LABEL_TOKEN, token);
 }
 
-void handle_negative_number(CSOUND* csound, TREE* root) {
+void handle_negative_number(CSOUND* csound, TREE* root)
+{
   if (root->type == S_UMINUS &&
       (root->right->type == INTEGER_TOKEN || root->right->type == NUMBER_TOKEN)) {
     int len = strlen(root->right->value->lexeme);
@@ -843,7 +866,9 @@ void handle_negative_number(CSOUND* csound, TREE* root) {
 }
 
 
-void collapse_last_assigment(CSOUND* csound, TREE* anchor, TYPE_TABLE* typeTable) {
+static void collapse_last_assigment(CSOUND* csound, TREE* anchor,
+                                    TYPE_TABLE* typeTable)
+{
     TREE *a, *b, *temp;
     temp = anchor;
 
@@ -878,7 +903,8 @@ void collapse_last_assigment(CSOUND* csound, TREE* anchor, TYPE_TABLE* typeTable
    expressions into statements prior to the original statement line,
    and LHS expressions (array sets) after the original statement
    line */
-TREE* expand_statement(CSOUND* csound, TREE* current, TYPE_TABLE* typeTable) {
+TREE* expand_statement(CSOUND* csound, TREE* current, TYPE_TABLE* typeTable)
+{
      /* This is WRONG in optional argsq */
     TREE* anchor = NULL;
     TREE* originalNext = current->next;
@@ -889,16 +915,16 @@ TREE* expand_statement(CSOUND* csound, TREE* current, TYPE_TABLE* typeTable) {
     current->next = NULL;
 
     if (UNLIKELY(PARSER_DEBUG))
-        csound->Message(csound, "Found Statement.\n");
+      csound->Message(csound, "Found Statement.\n");
     while (currentArg != NULL) {
-        TREE* last;
-        TREE *nextArg;
-        TREE *newArgTree;
-        TREE *expressionNodes;
-        int is_bool = 0;
-        handle_negative_number(csound, currentArg);
-        if (is_expression_node(currentArg) ||
-            (is_bool = is_boolean_expression_node(currentArg))) {
+      TREE* last;
+      TREE *nextArg;
+      TREE *newArgTree;
+      TREE *expressionNodes;
+      int is_bool = 0;
+      handle_negative_number(csound, currentArg);
+      if (is_expression_node(currentArg) ||
+          (is_bool = is_boolean_expression_node(currentArg))) {
             char * newArg;
             if (UNLIKELY(PARSER_DEBUG))
               csound->Message(csound, "Found Expression.\n");
@@ -960,7 +986,7 @@ TREE* expand_statement(CSOUND* csound, TREE* current, TYPE_TABLE* typeTable) {
     if (strcmp("init", current->value->lexeme)==0) {
       //print_tree(csound, "init",current);
       init = 1;
-      }
+    }
     while (currentArg != NULL) {
       TREE* temp;
 
@@ -1085,9 +1111,9 @@ TREE* expand_if_statement(CSOUND* csound,
       last->next = gotoToken;
       gotoToken->next = current->next;
     }
-    else if (right->type == THEN_TOKEN ||
-             right->type == ITHEN_TOKEN ||
-             right->type == KTHEN_TOKEN) {
+    else if (LIKELY(right->type == THEN_TOKEN ||
+                    right->type == ITHEN_TOKEN ||
+                    right->type == KTHEN_TOKEN)) {
       int endLabelCounter = -1;
       TREE *tempLeft;
       TREE *tempRight;
@@ -1189,7 +1215,7 @@ TREE* expand_if_statement(CSOUND* csound,
     }
     else {
       csound->Message(csound,
-                      "ERROR: Neither if-goto or if-then found on line %d!!!",
+                      Str("ERROR: Neither if-goto or if-then found on line %d!!!"),
                       right->line);
     }
 
diff --git a/Engine/csound_orc_optimize.c b/Engine/csound_orc_optimize.c
index a373193..bff301b 100644
--- a/Engine/csound_orc_optimize.c
+++ b/Engine/csound_orc_optimize.c
@@ -1,5 +1,5 @@
  /*
-    csound_orc_optimizee.c:
+    csound_orc_optimize.c:
 
     Copyright (C) 2006
     Steven Yi
@@ -46,190 +46,214 @@ static TREE * optimize_ifun(CSOUND *csound, TREE *root)
 {
     /* print_tree(csound, "optimize_ifun: before", root); */
     switch(root->right->type) {
-        case INTEGER_TOKEN:
-        case NUMBER_TOKEN:       /* i(num)    -> num      */
-            // FIXME - reinstate optimization after implementing get_type(varname)
-            //    case T_IDENT_I:          /* i(ivar)   -> ivar     */
-            //    case T_IDENT_GI:         /* i(givar)  -> givar    */
-            //    case T_IDENT_P:          /* i(pN)     -> pN       */
-            root = root->right;
-            break;
-            //    case T_IDENT_K:          /* i(kvar)   -> i(kvar)  */
-            //    case T_IDENT_GK:         /* i(gkvar)  -> i(gkvar) */
-            //      break;
-        case T_FUNCTION:         /* i(fn(x))  -> fn(i(x)) */
-        {
-            TREE *funTree = root->right;
-            funTree->right = create_fun_token(csound, funTree->right, "i");
-            root = funTree;
-        }
-            break;
-        default:                 /* i(A op B) -> i(A) op i(B) */
-            if(root->right->left != NULL)
-                root->right->left = create_fun_token(csound,
-                                                     root->right->left, "i");
-            if(root->right->right != NULL)
-                root->right->right = create_fun_token(csound,
-                                                      root->right->right, "i");
-            root->right->next = root->next;
-            root = root->right;
-            break;
+    case INTEGER_TOKEN:
+    case NUMBER_TOKEN:               /* i(num)    -> num      */
+      // FIXME - reinstate optimization after implementing get_type(varname)
+      //    case T_IDENT_I:          /* i(ivar)   -> ivar     */
+      //    case T_IDENT_GI:         /* i(givar)  -> givar    */
+      //    case T_IDENT_P:          /* i(pN)     -> pN       */
+      root = root->right;
+      break;
+      //    case T_IDENT_K:          /* i(kvar)   -> i(kvar)  */
+      //    case T_IDENT_GK:         /* i(gkvar)  -> i(gkvar) */
+      //      break;
+    case T_FUNCTION:                 /* i(fn(x))  -> fn(i(x)) */
+      {
+        TREE *funTree = root->right;
+        funTree->right = create_fun_token(csound, funTree->right, "i");
+        root = funTree;
+      }
+      break;
+    default:                         /* i(A op B) -> i(A) op i(B) */
+      if (root->right->left != NULL)
+        root->right->left = create_fun_token(csound,
+                                             root->right->left, "i");
+      if (root->right->right != NULL)
+        root->right->right = create_fun_token(csound,
+                                              root->right->right, "i");
+      root->right->next = root->next;
+      root = root->right;
+      break;
     }
     /* print_tree(csound, "optimize_ifun: after", root); */
     return root;
 }
 
 /** Verifies and optimise; constant fold and opcodes and args are correct*/
+/* The wrong place to fold constants so done in parser -- JPff */
 static TREE * verify_tree1(CSOUND *csound, TREE *root)
 {
-    TREE *ans, *last;
-    double lval, rval;
-    //csound->Message(csound, "Verifying AST (NEED TO IMPLEMENT)\n");
+    TREE *last;
     //print_tree(csound, "Verify", root);
     if (root->right && root->right->type != T_INSTLIST) {
-        if (root->type == T_OPCODE || root->type == T_OPCODE0) {
-            last = root->right;
-            while (last->next) {
-                /* we optimize the i() functions in the opcode */
-                if (last->next->type == T_FUNCTION &&
-                    (strcmp(last->next->value->lexeme, "i") == 0)) {
-                    TREE *temp = optimize_ifun(csound, last->next);
-                    temp->next = last->next->next;
-                    last->next = temp;
-                }
-                last = last->next;
-            }
-        }
-        if (root->right->type == T_FUNCTION &&
-            (strcmp(root->right->value->lexeme, "i") == 0)) {  /* i() function */
-            root->right = optimize_ifun(csound, root->right);
-        }
+      if (root->type == T_OPCODE || root->type == T_OPCODE0) {
         last = root->right;
         while (last->next) {
-            last->next = verify_tree1(csound, last->next);
-            last = last->next;
+          /* we optimize the i() functions in the opcode */
+          if (last->next->type == T_FUNCTION &&
+              (strcmp(last->next->value->lexeme, "i") == 0)) {
+            TREE *temp = optimize_ifun(csound, last->next);
+            temp->next = last->next->next;
+            last->next = temp;
+          }
+          last = last->next;
         }
-        root->right = verify_tree1(csound, root->right);
-        if (root->left) {
-            if (root->left->type == T_FUNCTION &&
-                (strcmp(root->left->value->lexeme, "i") == 0)) {  /* i() function */
-                root->left = optimize_ifun(csound, root->left);
-            }
-            root->left= verify_tree1(csound, root->left);
-            if ((root->left->type  == INTEGER_TOKEN ||
-                 root->left->type  == NUMBER_TOKEN) &&
-                (root->right->type == INTEGER_TOKEN ||
-                 root->right->type == NUMBER_TOKEN)) {
-                    //print_tree(csound, "numerical case\n", root);
-                    lval = (root->left->type == INTEGER_TOKEN ?
-                            (double)root->left->value->value :
-                            root->left->value->fvalue);
-                    rval = (root->right->type == INTEGER_TOKEN ?
-                            (double)root->right->value->value :
-                            root->right->value->fvalue);
-                    ans = root->left;
-                    /* **** Something wrong here --
-                       subtraction confuses memory **** */
-                    switch (root->type) {
-                        case '+':
-                            ans->type = ans->value->type = NUMBER_TOKEN;
-                            ans->value->fvalue = lval+rval;
-                            ans->value->lexeme =
-                              (char*)csound->
-                              ReAlloc(csound, ans->value->lexeme, 24);
-                            CS_SPRINTF(ans->value->lexeme, "%f", ans->value->fvalue);
-                            ans->next = root->next;
-                            //Memory leak!!
-                            //csound->Free(csound, root); mfree(csound root->right);
-                            return ans;
-                        case '-':
-                            ans->type = ans->value->type = NUMBER_TOKEN;
-                            ans->value->fvalue = lval-rval;
-                            ans->value->lexeme =
-                              (char*)csound->
-                              ReAlloc(csound, ans->value->lexeme, 24);
-                            CS_SPRINTF(ans->value->lexeme, "%f", ans->value->fvalue);
-                            ans->next = root->next;
-                            //Memory leak!!
-                            //csound->Free(csound, root); mfree(csound, root->right);
-                            return ans;
-                        case '*':
-                            ans->type = ans->value->type = NUMBER_TOKEN;
-                            ans->value->fvalue = lval*rval;
-                            ans->value->lexeme =
-                            (char*)csound->ReAlloc(csound, ans->value->lexeme, 24);
-                            CS_SPRINTF(ans->value->lexeme, "%f", ans->value->fvalue);
-                            ans->next = root->next;
-                            //Memory leak!!
-                            //csound->Free(csound, root); mfree(csound, root->right);
-                            return ans;
-                        case '/':
-                            ans->type = ans->value->type = NUMBER_TOKEN;
-                            ans->value->fvalue = lval/rval;
-                            ans->value->lexeme =
-                            (char*)csound->ReAlloc(csound, ans->value->lexeme, 24);
-                            CS_SPRINTF(ans->value->lexeme, "%f", ans->value->fvalue);
-                            ans->next = root->next;
-                            //Memory leak!!
-                            //csound->Free(csound, root); mfree(csound, root->right);
-                            return ans;
-                            /* case S_NEQ: */
-                            /*   break; */
-                            /* case S_AND: */
-                            /*   break; */
-                            /* case S_OR: */
-                            /*   break; */
-                            /* case S_LT: */
-                            /*   break; */
-                            /* case S_LE: */
-                            /*   break; */
-                            /* case S_EQ: */
-                            /*   break; */
-                            /* case S_GT: */
-                            /*   break; */
-                            /* case S_GE: */
-                            /*   break; */
-                        default: break;
-                    }
-                }
+      }
+      if (root->right->type == T_FUNCTION &&
+          (strcmp(root->right->value->lexeme, "i") == 0)) {  /* i() function */
+        root->right = optimize_ifun(csound, root->right);
+      }
+      last = root->right;
+      while (last->next) {
+        last->next = verify_tree1(csound, last->next);
+        last = last->next;
+      }
+      root->right = verify_tree1(csound, root->right);
+      if (root->left) {
+        if (root->left->type == T_FUNCTION &&
+            (strcmp(root->left->value->lexeme, "i") == 0)) {  /* i() function */
+          root->left = optimize_ifun(csound, root->left);
         }
-        else if (root->right->type == INTEGER_TOKEN ||
-                 root->right->type == NUMBER_TOKEN) {
-            switch (root->type) {
-                case S_UMINUS:
-                    /*print_tree(csound, "root", root);*/
-                    ans = root->right;
-                    ans->value->fvalue =
-                    -(ans->type==INTEGER_TOKEN ? (double)ans->value->value
-                      : ans->value->fvalue);
-                    ans->value->lexeme =
-                    (char*)csound->ReAlloc(csound, ans->value->lexeme, 24);
-                    CS_SPRINTF(ans->value->lexeme, "%f", ans->value->fvalue);
-                    ans->type = ans->value->type = NUMBER_TOKEN;
-                    //print_tree(csound, "ans", ans);
-                    ans->next = root->next;
-                    return ans;
-                default:
-                    break;
-            }
+        root->left= verify_tree1(csound, root->left);
+      }
+    }
+    return root;
+}
+
+TREE* constant_fold(CSOUND *csound, TREE* root)
+{
+    extern MYFLT MOD(MYFLT, MYFLT);
+    TREE* current = root;
+    while (current) {
+      switch (current->type) {
+      case '+':
+      case '-':
+      case '*':
+      case '/':
+      case '^':
+      case '%':
+      case '|':
+      case '&':
+      case '#':
+      case S_BITSHIFT_LEFT:
+      case S_BITSHIFT_RIGHT:
+        current->left = constant_fold(csound, current->left);
+        current->right = constant_fold(csound, current->right);
+        //print_tree(csound, "Folding case??\n", current);
+        if ((current->left->type == INTEGER_TOKEN ||
+             current->left->type == NUMBER_TOKEN) &&
+            (current->right->type == INTEGER_TOKEN ||
+             current->right->type == NUMBER_TOKEN)) {
+          MYFLT lval, rval;
+          char buf[64];
+          lval = (current->left->type == INTEGER_TOKEN ?
+                  (double)current->left->value->value :
+                  current->left->value->fvalue);
+          rval = (current->right->type == INTEGER_TOKEN ?
+                  (double)current->right->value->value :
+                  current->right->value->fvalue);
+          //printf("lval = %g  rval = %g\n", lval, rval);
+          switch (current->type) {
+          case '+':
+            lval = lval + rval;
+            break;
+          case '-':
+            lval = lval - rval;
+            break;
+          case '*':
+            lval = lval * rval;
+            break;
+          case '/':
+            lval = lval / rval;
+            break;
+          case '^':
+            lval = POWER(lval,rval);
+            break;
+          case '%':
+            lval = MOD(lval,rval);
+            break;
+          case '|':
+            lval = (MYFLT)(((int)lval)|((int)rval));
+            break;
+          case '&':
+            lval = (MYFLT)(((int)lval)&((int)rval));
+            break;
+          case '#':
+            lval = (MYFLT)(((int)lval)^((int)rval));
+            break;
+          case S_BITSHIFT_LEFT:
+            lval = (MYFLT)(((int)lval)<<((int)rval));
+            break;
+          case S_BITSHIFT_RIGHT:
+            lval = (MYFLT)(((int)lval)>>((int)rval));
+            break;
+          }
+          //printf("ans = %g\n", lval);
+          current->value = current->left->value;
+          current->type = NUMBER_TOKEN;
+          current->value->fvalue = lval;
+          snprintf(buf, 60, "%.20g", lval);
+          csound->Free(csound, current->value->lexeme);
+          current->value->lexeme = cs_strdup(csound, buf);
+          csound->Free(csound, current->left);
+          csound->Free(csound, current->right->value);
+          csound->Free(csound, current->right);
+          current->right = current->left = NULL;
+        }
+        break;
+      case S_UMINUS:
+      case '~':
+        //print_tree(csound, "Folding case?\n", current);
+        current->right = constant_fold(csound, current->right);
+        //print_tree(csound, "Folding case??\n", current);
+        if (current->right->type == INTEGER_TOKEN ||
+             current->right->type == NUMBER_TOKEN) {
+          MYFLT lval;
+          char buf[64];
+          lval = (current->right->type == INTEGER_TOKEN ?
+                  (double)current->right->value->value :
+                  current->right->value->fvalue);
+          switch (current->type) {
+          case S_UMINUS:
+            lval = -lval;
+            break;
+          case '~':
+            lval = (MYFLT)(~(int)lval);
+            break;
+          }
+          current->value = current->right->value;
+          current->type = NUMBER_TOKEN;
+          current->value->fvalue = lval;
+          snprintf(buf, 60, "%.20g", lval);
+          csound->Free(csound, current->value->lexeme);
+          current->value->lexeme = cs_strdup(csound, buf);
+          csound->Free(csound, current->right);
+          current->right = NULL;
         }
+        break;
+      default:
+        current->left = constant_fold(csound, current->left);
+        current->right = constant_fold(csound, current->right);
+      }
+      current = current->next;
     }
     return root;
 }
 
+
 /* Optimizes tree (expressions, etc.) */
 TREE * csound_orc_optimize(CSOUND *csound, TREE *root)
 {
     TREE *original=root, *last = NULL;
     while (root) {
-        TREE *xx = verify_tree1(csound, root);
-        if (xx != root) {
-            xx->next = root->next;
-            if (last) last->next = xx;
-            else original = xx;
-        }
-        last = root;
-        root = root->next;
+      TREE *xx = verify_tree1(csound, root);
+      if (xx != root) {
+        xx->next = root->next;
+        if (last) last->next = xx;
+        else original = xx;
+      }
+      last = root;
+      root = root->next;
     }
     return original;
 }
diff --git a/Engine/csound_orc_semantics.c b/Engine/csound_orc_semantics.c
index b3901a7..9626470 100644
--- a/Engine/csound_orc_semantics.c
+++ b/Engine/csound_orc_semantics.c
@@ -1,4 +1,4 @@
- /*
+/*
     csound_orc_semantics.c:
 
     Copyright (C) 2006
@@ -35,8 +35,8 @@
 #include "csound_orc_expressions.h"
 #include "csound_orc_semantics.h"
 
-char *csound_orcget_text ( void *scanner );
-int is_label(char* ident, CONS_CELL* labelList);
+extern char *csound_orcget_text ( void *scanner );
+static int is_label(char* ident, CONS_CELL* labelList);
 
 extern uint64_t csound_orcget_locn(void *);
 extern  char argtyp2(char*);
@@ -149,6 +149,8 @@ char* get_boolean_expression_opcode_type(CSOUND* csound, TREE* tree) {
       return "&&";
     case S_OR:
       return "||";
+    case S_UNOT:
+      return "!";
     }
     csound->Warning(csound,
                     Str("Unknown boolean expression type found: %d\n"),
@@ -252,6 +254,10 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
         else {
           char* rightArgType = get_arg_string_from_tree(csound, tree->right,
                                                         typeTable);
+
+          leftArgType =
+            csound->ReAlloc(csound, leftArgType,
+                            strlen(leftArgType) + strlen(rightArgType) + 1);
           char* argString = strcat(leftArgType, rightArgType);
 
           OENTRIES* opentries = find_opcode2(csound, "##array_get");
@@ -336,7 +342,7 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
         OENTRIES* entries = find_opcode2(csound, opname);
         char * out;
 
-        if(tree->value->optype != NULL) /* if there is type annotation */
+        if (tree->value->optype != NULL) /* if there is type annotation */
           out = check_annotated_type(csound, entries, tree->value->optype);
         else  out = resolve_opcode_get_outarg(csound, entries, argTypeRight);
 
@@ -413,6 +419,10 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
     }
 
     if (is_boolean_expression_node(tree)) {
+      if (tree->type == S_UNOT) {
+        return get_arg_type2(csound, tree->left, typeTable);
+      }
+      else {
       char* argTypeLeft = get_arg_type2(csound, tree->left, typeTable);
       char* argTypeRight = get_arg_type2(csound, tree->right, typeTable);
 
@@ -460,6 +470,7 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
       return cs_strdup(csound, out);
 
     }
+    }
 
     switch(tree->type) {
     case NUMBER_TOKEN:
@@ -576,7 +587,7 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
 char* get_opcode_short_name(CSOUND* csound, char* opname) {
 
     char* dot = strchr(opname, '.');
-    if(dot != NULL) {
+    if (dot != NULL) {
       int opLen = dot - opname;
       return cs_strndup(csound, opname, opLen);
     }
@@ -593,7 +604,7 @@ OENTRY* find_opcode(CSOUND *csound, char *opname)
     OENTRY* retVal;
 
     if (opname[0] == '\0' || isdigit(opname[0]))
-        return 0;
+      return 0;
 
     shortName = get_opcode_short_name(csound, opname);
 
@@ -605,12 +616,18 @@ OENTRY* find_opcode(CSOUND *csound, char *opname)
     return retVal;
 }
 
+static OENTRIES* get_entries(CSOUND* csound, int count)
+{
+    OENTRIES* x = csound->Calloc(csound, sizeof(OENTRIES*)+sizeof(OENTRY*)*count);
+    x->count = count;
+    return x;
+}
 
 /* Finds OENTRIES that match the given opcode name.  May return multiple
  * OENTRY*'s for each entry in a polyMorphic opcode.
  */
-OENTRIES* find_opcode2(CSOUND* csound, char* opname) {
-
+OENTRIES* find_opcode2(CSOUND* csound, char* opname)
+{
     int i = 0;
     char *shortName;
     CONS_CELL *head;
@@ -620,20 +637,16 @@ OENTRIES* find_opcode2(CSOUND* csound, char* opname) {
       return NULL;
     }
 
-    retVal = csound->Calloc(csound, sizeof(OENTRIES));
-
     shortName = get_opcode_short_name(csound, opname);
-
     head = cs_hash_table_get(csound, csound->opcodes, shortName);
-
-    retVal->count = cs_cons_length(head);
+    retVal = get_entries(csound, cs_cons_length(head));
     while (head != NULL) {
-        retVal->entries[i++] = head->value;
-        head = head->next;
+      retVal->entries[i++] = head->value;
+      head = head->next;
     }
 
     if (shortName != opname) {
-        csound->Free(csound, shortName);
+      csound->Free(csound, shortName);
     }
 
     return retVal;
@@ -675,7 +688,7 @@ int check_in_arg(char* found, char* required) {
     }
 
     if (*required == '.' || *required == '?' || *required == '*') {
-        return 1;
+      return 1;
     }
 
     if (*found == '[' || *required == '[') {
@@ -719,8 +732,8 @@ int check_in_arg(char* found, char* required) {
 }
 
 int check_in_args(CSOUND* csound, char* inArgsFound, char* opInArgs) {
-    if((inArgsFound == NULL || strlen(inArgsFound) == 0) &&
-       (opInArgs == NULL || strlen(opInArgs) == 0)) {
+    if ((inArgsFound == NULL || strlen(inArgsFound) == 0) &&
+        (opInArgs == NULL || strlen(opInArgs) == 0)) {
       return 1;
     }
 
@@ -788,17 +801,17 @@ int check_in_args(CSOUND* csound, char* inArgsFound, char* opInArgs) {
 
       }
       //printf("delete %p \n", argsFound);
-       int n;
-        for(n=0; argsFound[n] != NULL; n++) {
-          // printf("delete %p \n", argsFound[n]);
-          csound->Free(csound, argsFound[n]);
-        }
+      int n;
+      for (n=0; argsFound[n] != NULL; n++) {
+        // printf("delete %p \n", argsFound[n]);
+        csound->Free(csound, argsFound[n]);
+      }
       csound->Free(csound, argsFound);
       //printf("delete %p \n", argsRequired);
-                for(n=0; argsRequired[n] != NULL; n++) {
-                  //printf("delete %p \n", argsRequired[n]);
-          csound->Free(csound, argsRequired[n]);
-        }
+      for (n=0; argsRequired[n] != NULL; n++) {
+        //printf("delete %p \n", argsRequired[n]);
+        csound->Free(csound, argsRequired[n]);
+      }
       csound->Free(csound, argsRequired);
 
       return returnVal;
@@ -827,19 +840,19 @@ int check_out_arg(char* found, char* required) {
     }
 
     if (*found == '[' || *required == '[') {
-      if(*found != *required) {
+      if (*found != *required) {
         return 0;
       }
       return check_array_arg(found, required);
     }
 
-    if(strcmp(found, required) == 0) {
+    if (strcmp(found, required) == 0) {
       return 1;
     }
 
     t = (char*)POLY_OUT_TYPES[0];
-    for(i = 0; t != NULL; i += 2) {
-      if(strcmp(required, t) == 0) {
+    for (i = 0; t != NULL; i += 2) {
+      if (strcmp(required, t) == 0) {
         return (strchr(POLY_OUT_TYPES[i + 1], *found) != NULL);
       }
       t = (char*)POLY_OUT_TYPES[i + 2];
@@ -850,8 +863,8 @@ int check_out_arg(char* found, char* required) {
     }
 
     t = (char*)VAR_ARG_OUT_TYPES[0];
-    for(i = 0; t != NULL; i += 2) {
-      if(strcmp(required, t) == 0) {
+    for (i = 0; t != NULL; i += 2) {
+      if (strcmp(required, t) == 0) {
         return (strchr(VAR_ARG_OUT_TYPES[i + 1], *found) != NULL);
       }
       t = (char*)VAR_ARG_OUT_TYPES[i + 2];
@@ -862,8 +875,8 @@ int check_out_arg(char* found, char* required) {
 int check_out_args(CSOUND* csound, char* outArgsFound, char* opOutArgs)
 {
 
-    if((outArgsFound == NULL || strlen(outArgsFound) == 0) &&
-       (opOutArgs == NULL || strlen(opOutArgs) == 0)) {
+    if ((outArgsFound == NULL || strlen(outArgsFound) == 0) &&
+        (opOutArgs == NULL || strlen(opOutArgs) == 0)) {
       return 1;
     }
 
@@ -915,17 +928,17 @@ int check_out_args(CSOUND* csound, char* outArgsFound, char* opOutArgs)
         }
       }
       //printf("delete %p \n", argsFound);
-       int n;
-        for(n=0; argsFound[n] != NULL; n++) {
-          // printf("delete %p \n", argsFound[n]);
-          csound->Free(csound, argsFound[n]);
-        }
+      int n;
+      for (n=0; argsFound[n] != NULL; n++) {
+        // printf("delete %p \n", argsFound[n]);
+        csound->Free(csound, argsFound[n]);
+      }
       csound->Free(csound, argsFound);
       //printf("delete %p \n", argsRequired);
-                for(n=0; argsRequired[n] != NULL; n++) {
-                  //printf("delete %p \n", argsRequired[n]);
-          csound->Free(csound, argsRequired[n]);
-        }
+      for (n=0; argsRequired[n] != NULL; n++) {
+        //printf("delete %p \n", argsRequired[n]);
+        csound->Free(csound, argsRequired[n]);
+      }
       csound->Free(csound, argsRequired);
 
       return returnVal;
@@ -940,7 +953,7 @@ int check_out_args(CSOUND* csound, char* outArgsFound, char* opOutArgs)
  * override previous definitions.
  */
 OENTRY* resolve_opcode(CSOUND* csound, OENTRIES* entries,
-                              char* outArgTypes, char* inArgTypes) {
+                       char* outArgTypes, char* inArgTypes) {
 
 //    OENTRY* retVal = NULL;
     int i;
@@ -1012,8 +1025,8 @@ char* resolve_opcode_get_outarg(CSOUND* csound, OENTRIES* entries,
 //        if (temp->intypes == NULL && temp->outypes == NULL) {
 //            continue;
 //        }
-//        if(check_in_args(csound, inArgTypes, temp->intypes) &&
-//           check_out_args(csound, outArgTypes, temp->outypes)) {
+//        if (check_in_args(csound, inArgTypes, temp->intypes) &&
+//            check_out_args(csound, outArgTypes, temp->outypes)) {
 ////            if (retVal >= 0) {
 ////                return 0;
 ////            }
@@ -1101,7 +1114,7 @@ char* get_arg_string_from_tree(CSOUND* csound, TREE* tree,
         char* argType = get_arg_type2(csound, current, typeTable);
 
         //FIXME - fix if argType is NULL and remove the below hack
-        if(argType == NULL) {
+        if (argType == NULL) {
             argsLen += 1;
             argTypes[index++] = cs_strdup(csound, "@");
         } else {
@@ -1204,7 +1217,7 @@ int check_args_exist(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable) {
           }
 
           argType = get_arg_type2(csound, current, typeTable);
-          if(argType==NULL) {
+          if (UNLIKELY(argType==NULL)) {
             synterr(csound,
               Str("Variable type for %s could not be determined.\n"), varName);
             do_baktrace(csound, tree->locn);
@@ -1226,7 +1239,7 @@ int check_args_exist(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable) {
             if (*varName == 'g')
               var = csoundFindVariableWithName(csound, csound->engineState.varPool,
                                                varName);
-            if(var == NULL) {
+            if (UNLIKELY(var == NULL)) {
               synterr(csound,
                       Str("Variable '%s' used before defined\nline %d"),
                       varName, tree->line);
@@ -1249,7 +1262,7 @@ int check_args_exist(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable) {
             if (var == NULL && *varName == 'g')
               var = csoundFindVariableWithName(csound, csound->engineState.varPool,
                                                varName);
-            if (var == NULL) {
+            if (UNLIKELY(var == NULL)) {
               synterr(csound,
                       Str("Variable '%s' used before defined\nLine %d\n"),
                       varName, current->left->line);
@@ -1391,7 +1404,7 @@ int add_args(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
       case T_IDENT:
         varName = current->value->lexeme;
 
-        if (*varName == 't') { /* Support legacy t-vars */
+        if (UNLIKELY(*varName == 't')) { /* Support legacy t-vars */
           add_array_arg(csound, varName, 1, typeTable);
         } else {
           add_arg(csound, varName, typeTable);
@@ -1433,7 +1446,7 @@ int verify_opcode(CSOUND* csound, TREE* root, TYPE_TABLE* typeTable) {
     char* rightArgString;
     char* opcodeName;
 
-    if(root->value == NULL) return 0;
+    if (root->value == NULL) return 0;
 
     if (!check_args_exist(csound, root->right, typeTable)) {
       return 0;
@@ -1465,7 +1478,7 @@ int verify_opcode(CSOUND* csound, TREE* root, TYPE_TABLE* typeTable) {
     }
 
     OENTRY* oentry;
-    if(root->value->optype == NULL)
+    if (root->value->optype == NULL)
       oentry = resolve_opcode(csound, entries,
                               leftArgString, rightArgString);
     /* if there is type annotation, try to resolve it */
@@ -1492,7 +1505,7 @@ int verify_opcode(CSOUND* csound, TREE* root, TYPE_TABLE* typeTable) {
     else {
       if (csound->oparms->sampleAccurate &&
           (strcmp(oentry->opname, "=.a")==0) &&
-          left->value->lexeme[0]=='a') { /* Deal with sampe accurate assigns */
+          left->value->lexeme[0]=='a') { /* Deal with sample accurate assigns */
         int i = 0;
         while (strcmp(entries->entries[i]->opname, "=.l")) {
           printf("not %d %s\n",i, entries->entries[i]->opname);
@@ -1551,7 +1564,7 @@ CONS_CELL* get_label_list(CSOUND* csound, TREE* root) {
     return head;
 }
 
-int is_label(char* ident, CONS_CELL* labelList) {
+static int is_label(char* ident, CONS_CELL* labelList) {
     CONS_CELL* current;
 
     if (labelList == NULL) return 0;
@@ -1648,7 +1661,7 @@ int verify_until_statement(CSOUND* csound, TREE* root, TYPE_TABLE* typeTable) {
      xin/xout number of args matches UDO input/output arg specifications
      xin/xout statements exist if UDO in and out args are not 0 */
 int verify_xin_xout(CSOUND *csound, TREE *udoTree, TYPE_TABLE *typeTable) {
-    if(udoTree->right == NULL) {
+    if (udoTree->right == NULL) {
       return 1;
     }
     TREE* outArgsTree = udoTree->left->left;
@@ -1675,7 +1688,7 @@ int verify_xin_xout(CSOUND *csound, TREE *udoTree, TYPE_TABLE *typeTable) {
     while (current != NULL) {
       if (current->value != NULL) {
         if (strcmp("xin", current->value->lexeme) == 0) {
-          if(xinArgs != NULL) {
+          if (UNLIKELY(xinArgs != NULL)) {
             synterr(csound,
                     Str("Multiple xin statements found. "
                         "Only one is allowed."));
@@ -1684,7 +1697,7 @@ int verify_xin_xout(CSOUND *csound, TREE *udoTree, TYPE_TABLE *typeTable) {
           xinArgs = current->left;
         }
         if (strcmp("xout", current->value->lexeme) == 0) {
-          if(xoutArgs != NULL) {
+          if (UNLIKELY(xoutArgs != NULL)) {
             synterr(csound,
                     Str("Multiple xout statements found. "
                         "Only one is allowed."));
@@ -1701,7 +1714,7 @@ int verify_xin_xout(CSOUND *csound, TREE *udoTree, TYPE_TABLE *typeTable) {
 
 
     if (!check_in_args(csound, inArgsFound, inArgs)) {
-      if (!(strcmp("0", inArgs) == 0 && xinArgs == NULL)) {
+      if (UNLIKELY(!(strcmp("0", inArgs) == 0 && xinArgs == NULL))) {
         synterr(csound,
                 Str("invalid xin statement for UDO: defined '%s', found '%s'\n"),
                 inArgs, inArgsFound);
@@ -1710,7 +1723,7 @@ int verify_xin_xout(CSOUND *csound, TREE *udoTree, TYPE_TABLE *typeTable) {
     }
 
     if (!check_in_args(csound, outArgsFound, outArgs)) {
-      if (!(strcmp("0", outArgs) == 0 && xoutArgs == NULL)) {
+      if (UNLIKELY(!(strcmp("0", outArgs) == 0 && xoutArgs == NULL))) {
         synterr(csound,
                 Str("invalid xout statement for UDO: defined '%s', found '%s'\n"),
                 outArgs, outArgsFound);
@@ -1732,15 +1745,16 @@ TREE* verify_tree(CSOUND * csound, TREE *root, TYPE_TABLE* typeTable)
     CONS_CELL* parentLabelList = typeTable->labelList;
     typeTable->labelList = get_label_list(csound, root);
 
-    //if(root->value)
+    //if (root->value)
     //printf("###verify %p %p (%s) \n", root, root->value, root->value->lexeme);
 
-    if (PARSER_DEBUG) csound->Message(csound, "Verifying AST\n");
+    if (UNLIKELY(PARSER_DEBUG)) csound->Message(csound, "Verifying AST\n");
 
     while (current != NULL) {
       switch(current->type) {
       case INSTR_TOKEN:
-        if (PARSER_DEBUG) csound->Message(csound, "Instrument found\n");
+        csound->inZero = 0;
+        if (UNLIKELY(PARSER_DEBUG)) csound->Message(csound, "Instrument found\n");
         typeTable->localPool = csoundCreateVarPool(csound);
         current->markup = typeTable->localPool;
 
@@ -1762,7 +1776,8 @@ TREE* verify_tree(CSOUND * csound, TREE *root, TYPE_TABLE* typeTable)
 
         break;
       case UDO_TOKEN:
-        if (PARSER_DEBUG) csound->Message(csound, "UDO found\n");
+        csound->inZero = 0;
+        if (UNLIKELY(PARSER_DEBUG)) csound->Message(csound, "UDO found\n");
 
         typeTable->localPool = csoundCreateVarPool(csound);
         current->markup = typeTable->localPool;
@@ -1779,7 +1794,7 @@ TREE* verify_tree(CSOUND * csound, TREE *root, TYPE_TABLE* typeTable)
 
             current->right = newRight;
 
-            if(!verify_xin_xout(csound, current, typeTable)) {
+            if (!verify_xin_xout(csound, current, typeTable)) {
               return 0;
             }
 
@@ -1821,8 +1836,49 @@ TREE* verify_tree(CSOUND * csound, TREE *root, TYPE_TABLE* typeTable)
       case LABEL_TOKEN:
         break;
 
+      case '+':
+      case '-':
+      case '*':
+      case '/':
+        //printf("Folding case?\n");
+        current->left = verify_tree(csound, current->left, typeTable);
+        current->right = verify_tree(csound, current->right, typeTable);
+        if ((current->left->type == INTEGER_TOKEN ||
+             current->left->type == NUMBER_TOKEN) &&
+            (current->right->type == INTEGER_TOKEN ||
+             current->right->type == NUMBER_TOKEN)) {
+          MYFLT lval, rval;
+          lval = (current->left->type == INTEGER_TOKEN ?
+                  (double)current->left->value->value :
+                  current->left->value->fvalue);
+          rval = (current->right->type == INTEGER_TOKEN ?
+                  (double)current->right->value->value :
+                  current->right->value->fvalue);
+          switch (current->type) {
+          case '+':
+            lval = lval + rval;
+            break;
+          case '-':
+            lval = lval - rval;
+            break;
+          case '*':
+            lval = lval * rval;
+            break;
+          case '/':
+            lval = lval / rval;
+            break;
+          }
+          current->type = NUMBER_TOKEN;
+          current->value->fvalue = lval;
+          csound->Free(csound, current->left); csound->Free(csound, current->right);
+        }
+        break;
+      case ENDIN_TOKEN:
+      case UDOEND_TOKEN:
+        csound->inZero = 1;
+        /* fall through */
       default:
-        if(!verify_opcode(csound, current, typeTable)) {
+        if (!verify_opcode(csound, current, typeTable)) {
           return 0;
         }
         //print_tree(csound, "verify_tree", current);
@@ -1988,7 +2044,7 @@ TREE* make_leaf(CSOUND *csound, int line, int locn, int type, ORCTOKEN *v)
     ans->line = line;
     ans->locn  = locn;
     ans->markup = NULL;
-    //if(ans->value)
+    //if (ans->value)
     // printf("make leaf %p %p (%s) \n", ans, ans->value, ans->value->lexeme);
     csound->DebugMsg(csound, "csound_orc_semantics(%d) line = %d\n",
                      __LINE__, line);
@@ -2082,6 +2138,9 @@ void print_tree_i(CSOUND *csound, TREE *l, int n)
     case S_EQ:
       csound->Message(csound,"S_EQ:(%d:%s)\n",
                       l->line, csound->filedir[(l->locn)&0xff]); break;
+    case S_UNOT:
+      csound->Message(csound,"S_UNOT:(%d:%s)\n",
+                      l->line, csound->filedir[(l->locn)&0xff]); break;
     case S_GT:
       csound->Message(csound,"S_GT:(%d:%s)\n",
                       l->line, csound->filedir[(l->locn)&0xff]); break;
@@ -2247,12 +2306,8 @@ static void print_tree_xml(CSOUND *csound, TREE *l, int n, int which)
       csound->Message(csound,"name=\"S_LE\""); break;
     case S_EQ:
       csound->Message(csound,"name=\"S_EQ\""); break;
-//    case S_TASSIGN:
-//      csound->Message(csound,"name=\"S_TASSIGN\""); break;
-//    case S_TABRANGE:
-//      csound->Message(csound,"name=\"S_TABRANGE\""); break;
-//    case S_TABREF:
-//      csound->Message(csound,"name=\"S_TABREF\""); break;
+    case S_UNOT:
+      csound->Message(csound,"name=\"S_UNOT\""); break;
     case S_GT:
       csound->Message(csound,"name=\"S_GT\""); break;
     case S_GE:
@@ -2421,7 +2476,7 @@ void handle_optional_args(CSOUND *csound, TREE *l)
         inArgParts = splitArgs(csound, ep->intypes);
       }
 
-      if (PARSER_DEBUG) {
+      if (UNLIKELY(PARSER_DEBUG)) {
         csound->Message(csound, "Handling Optional Args for opcode %s, %d, %d",
                         ep->opname, incnt, nreqd);
         csound->Message(csound, "ep->intypes = >%s<\n", ep->intypes);
@@ -2495,7 +2550,7 @@ void handle_optional_args(CSOUND *csound, TREE *l)
       //      printf("delete %p \n", inArgParts);
       if (inArgParts != NULL) {
         int n;
-        for(n=0; inArgParts[n] != NULL; n++) {
+        for (n=0; inArgParts[n] != NULL; n++) {
           //printf("delete %p \n", inArgParts[n]);
           csound->Free(csound, inArgParts[n]);
         }
diff --git a/Engine/csound_pre.lex b/Engine/csound_pre.lex
index 80cb38a..0f677da 100644
--- a/Engine/csound_pre.lex
+++ b/Engine/csound_pre.lex
@@ -38,9 +38,9 @@ static void do_macro(CSOUND *, char *, yyscan_t);
 static void do_umacro(CSOUND *, char *, yyscan_t);
 static void do_ifdef(CSOUND *, char *, yyscan_t);
 static void do_ifdef_skip_code(CSOUND *, yyscan_t);
-static void do_function(char *, CORFIL*);
+static void do_function(CSOUND*, char *, CORFIL*);
 //static void print_csound_predata(CSOUND *,char *,yyscan_t);
-static void csound_pre_line(CORFIL*, yyscan_t);
+ static void csound_pre_line(CSOUND *, CORFIL*, yyscan_t);
  static void delete_macros(CSOUND*, yyscan_t);
 #include "parse_param.h"
 
@@ -169,33 +169,33 @@ QNAN            "qnan"[ \t]*\(
                                        yyscanner);
                   if (PARM->isString==0) {
                     sprintf(bb, "#sline %d ", csound_preget_lineno(yyscanner));
-                    corfile_puts(bb, csound->expanded_orc);
+                    corfile_puts(csound, bb, csound->expanded_orc);
                   }
                 }
 {NEWLINE}       {
-                  corfile_putc('\n', csound->expanded_orc);
+                  corfile_putc(csound, '\n', csound->expanded_orc);
                   csound_preset_lineno(1+csound_preget_lineno(yyscanner),
                                        yyscanner);
-                  csound_pre_line(csound->expanded_orc, yyscanner);
+                  csound_pre_line(csound, csound->expanded_orc, yyscanner);
                 }
 "//"            {
                   if (PARM->isString != 1) {
                     comment(yyscanner);
-                    corfile_putc('\n', csound->expanded_orc);
-                    csound_pre_line(csound->expanded_orc, yyscanner);
+                    corfile_putc(csound, '\n', csound->expanded_orc);
+                    csound_pre_line(csound, csound->expanded_orc, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                   }
                 }
 ";"             {
                   if (PARM->isString != 1) {
                     comment(yyscanner);
-                    corfile_putc('\n', csound->expanded_orc);
-                    csound_pre_line(csound->expanded_orc, yyscanner);
+                    corfile_putc(csound, '\n', csound->expanded_orc);
+                    csound_pre_line(csound, csound->expanded_orc, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                   }
                   //corfile_putline(csound_preget_lineno(yyscanner),
                   //                csound->expanded_orc);
@@ -204,11 +204,11 @@ QNAN            "qnan"[ \t]*\(
                   if (PARM->isString != 1)
                     do_comment(yyscanner);
                   else
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                 }
-{ESCAPE}        { corfile_puts(yytext, csound->expanded_orc); }
+{ESCAPE}        { corfile_puts(csound, yytext, csound->expanded_orc); }
 {STSTR}         {
-                  corfile_putc('"', csound->expanded_orc);
+                  corfile_putc(csound, '"', csound->expanded_orc);
                   PARM->isString = !PARM->isString;
                 }
 {XSTR}          {
@@ -225,85 +225,51 @@ QNAN            "qnan"[ \t]*\(
                     default: break;
                     }
                   }
-                  corfile_puts(yytext, csound->expanded_orc);
+                  corfile_puts(csound, yytext, csound->expanded_orc);
                 }
-{MACRONAME}     {
+{MACRONAME}|{MACRONAMED}     {
                    MACRO     *mm = PARM->macros;
+                   //printf("macro name >>%s<<\n", yytext);
                    mm = find_definition(mm, yytext+1);
                    if (UNLIKELY(mm == NULL)) {
                      csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
+                     //csound->LongJmp(csound, 1);
+                     corfile_puts(csound, "$error", csound->expanded_orc);
                    }
-                   /* Need to read from macro definition */
-                   /* ??fiddle with buffers I guess */
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
+                   else {
+                     /* Need to read from macro definition */
+                     if (UNLIKELY(PARM->macro_stack_ptr >=
+                                  PARM->macro_stack_size )) {
+                       PARM->alt_stack =
+                         (MACRON*)
+                         csound->ReAlloc(csound, PARM->alt_stack,
+                                         sizeof(MACRON)*
+                                               (PARM->macro_stack_size+=10));
+                       if (UNLIKELY(PARM->alt_stack == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
+                       }
                      }
-                     /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                     /*                  PARM->macro_stack_size); */
-                   }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_preget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   csound_preset_lineno(1, yyscanner);
-                   if (PARM->depth>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
-                   }
-                   PARM->lstack[++PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
-                   yy_scan_string(mm->body, yyscanner);
-                   /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
-                }
-{MACRONAMED}    {
-                   MACRO     *mm = PARM->macros;
-                   yytext[yyleng-1] = '\0';
-                   mm = find_definition(mm, yytext+1);
-                   if (UNLIKELY(mm == NULL)) {
-                     csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
-                   }
-                   /* Need to read from macro definition */
-                   /* ??fiddle with buffers I guess */
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
+                     PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
+                     PARM->alt_stack[PARM->macro_stack_ptr].line =
+                       csound_preget_lineno(yyscanner);
+                     PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
+                     yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
+                     csound_preset_lineno(1, yyscanner);
+                     if (UNLIKELY(PARM->depth>1022)) {
+                       csound->Message(csound,
+                                       Str("macros/include nested too deep: "));
                        csound->LongJmp(csound, 1);
                      }
-                     /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                     /*                  PARM->macro_stack_size); */
-                   }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_preget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   csound_preset_lineno(1, yyscanner);
-                   if (PARM->depth>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
+                     PARM->lstack[++PARM->depth] =
+                       (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
+                     yy_scan_string(mm->body, yyscanner);
+                     /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
                    }
-                   PARM->lstack[++PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
-                   yy_scan_string(mm->body, yyscanner);
-                   /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
-                 }
-{MACRONAMEA}    {
+                }
+{MACRONAMEA}|{MACRONAMEDA}    {
                    MACRO     *mm = PARM->macros;
+                   int err = 0;
                    char      *mname;
                    int c, i, j, cnt=0;
                    //csound->DebugMsg(csound,"Macro with arguments call %s\n",
@@ -312,221 +278,138 @@ QNAN            "qnan"[ \t]*\(
                    mm = find_definition(PARM->macros, yytext+1);
                    if (UNLIKELY(mm == NULL)) {
                      csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
+                     corfile_puts(csound, "$error", csound->expanded_orc);
                    }
-                   mname = yytext;
-                   /* Need to read from macro definition */
-                   csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
-                   for (j = 0; j < mm->acnt; j++) {
-                     char  term = (j == mm->acnt - 1 ? ')' : '\'');
- /* Compatability */
-                     char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
-                     MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
-                     int   size = 100;
-                     if (UNLIKELY(nn == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
-                     if (UNLIKELY(nn->name == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
-                     strcpy(nn->name, mm->arg[j]);
-                     csound->Message(csound, "defining argument %s ",
-                                        nn->name);
-                     i = 0;
-                     nn->body = (char*) csound->Malloc(csound, 100);
-                     if (UNLIKELY(nn->body == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     while (1) {
-                       c = input(yyscanner);
-                       if (cnt==0 && ( c==term || c==trm1)) break;
-                       if (cnt==0 && c == ')') {
-                         csound->Die(csound, Str("Too few arguments to macro\n"));
+                   else {
+                     mname = yytext;
+                     /* Need to read from macro definition */
+                     csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
+                     for (j = 0; j < mm->acnt; j++) {
+                       char  term = (j == mm->acnt - 1 ? ')' : '\'');
+                       /* Compatability */
+                       char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
+                       MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
+                       int   size = 100;
+                       if (UNLIKELY(nn == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       if (c=='(') cnt++;
-                       if (c==')') cnt--;
-                       if (c == '\\') {
-                         int newc = input(yyscanner);
-                         if (newc == ')')
-                           nn->body[i++] = c;
-                         c = newc;
+                       nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
+                       if (UNLIKELY(nn->name == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       if (UNLIKELY(i > 98)) {
-                         csound->Die(csound,
-                                     Str("Missing argument terminator\n%.98s"),
-                                     nn->body);
+                       csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
+                       strcpy(nn->name, mm->arg[j]);
+                       csound->Message(csound, "defining argument %s ",
+                                       nn->name);
+                       i = 0;
+                       nn->body = (char*) csound->Malloc(csound, 100);
+                       if (UNLIKELY(nn->body == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       nn->body[i++] = c;
-                       if (UNLIKELY(i >= size)) {
-                         nn->body = csound->ReAlloc(csound, nn->body, size += 100);
-                         if (UNLIKELY(nn->body == NULL)) {
-                           csound->Message(csound, Str("Memory exhausted"));
-                           csound->LongJmp(csound, 1);
+                       while (1) {
+                         c = input(yyscanner);
+                         if (cnt==0 && ( c==term || c==trm1)) break;
+                         if (UNLIKELY(cnt==0 && c == ')')) {
+                           csound->Message(csound,
+                                           Str("Too few arguments to macro\n"));
+                           corfile_puts(csound, "$error", csound->expanded_orc);
+                           err = 1; break;
+                         }
+                         if (c=='(') cnt++;
+                         if (c==')') cnt--;
+                         if (c == '\\') {
+                           int newc = input(yyscanner);
+                           if (newc == ')')
+                             nn->body[i++] = c;
+                           c = newc;
+                         }
+                         if (UNLIKELY(i > 98)) {
+                           csound->Message(csound,
+                                           Str("Missing argument "
+                                               "terminator\n%.98s"),
+                                           nn->body);
+                           corfile_puts(csound, "$error", csound->expanded_orc);
+                           err = 1; break;
+                         }
+                         nn->body[i++] = c;
+                         if (UNLIKELY(i >= size)) {
+                           nn->body = csound->ReAlloc(csound, nn->body,
+                                                      size += 100);
+                           if (UNLIKELY(nn->body == NULL)) {
+                             csound->Message(csound, Str("Memory exhausted"));
+                             csound->LongJmp(csound, 1);
+                           }
                          }
                        }
+                       nn->body[i] = '\0';
+                       csound->Message(csound, "as...#%s#\n", nn->body);
+                       nn->acnt = 0;       /* No arguments for arguments */
+                       nn->next = PARM->macros;
+                       PARM->macros = nn;
                      }
-                     nn->body[i] = '\0';
-                     csound->Message(csound, "as...#%s#\n", nn->body);
-                     nn->acnt = 0;       /* No arguments for arguments */
-                     nn->next = PARM->macros;
-                     PARM->macros = nn;
-                   }
-                   //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     /* csound->DebugMsg(csound, */
-                     /*        "macro_stack extends alt_stack to %d long\n", */
-                     /*                  PARM->macro_stack_size); */
-                   }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = PARM->macros->acnt;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_preget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_preget_lineno(yyscanner);
-                   /* printf("stacked line = %llu at %d\n", */
-                   /*  csound_preget_lineno(yyscanner), PARM->macro_stack_ptr-1); */
-                   PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
-                   //csound->DebugMsg(csound,"Push %p macro stack\n",PARM->macros);
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   csound_preset_lineno(1, yyscanner);
-                   if (PARM->depth>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
-                   }
-                   PARM->lstack[++PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
-                   yy_scan_string(mm->body, yyscanner);
-                 }
-{MACRONAMEDA}    {
-                   MACRO     *mm = PARM->macros;
-                   char      *mname;
-                   int c, i, j, cnt=0;
-                   //csound->DebugMsg(csound,"Macro with arguments call %s\n",
-                   //                    yytext);
-                   yytext[yyleng-2] = '\0';
-                   mm = find_definition(PARM->macros, yytext+1);
-                   if (UNLIKELY(mm == NULL)) {
-                     csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
-                   }
-                   mname = yytext;
-                   /* Need to read from macro definition */
-                   //csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
-                   for (j = 0; j < mm->acnt; j++) {
-                     char  term = (j == mm->acnt - 1 ? ')' : '\'');
- /* Compatability */
-                     char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
-                     MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
-                     int   size = 100;
-                     if (UNLIKELY(nn == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
-                     if (UNLIKELY(mm->name == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     //csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
-                     strcpy(nn->name, mm->arg[j]);
-                     csound->Message(csound, "defining argument %s ",
-                                        nn->name);
-                     i = 0;
-                     nn->body = (char*) csound->Malloc(csound, 100);
-                     if (UNLIKELY(nn->body == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     while (1) {
-                       c = input(yyscanner);
-                       if (cnt==0 && ( c==term || c==trm1)) break;
-                       if (cnt==0 && c == ')') {
-                         csound->Die(csound, Str("Too few arguments to macro\n"));
-                       }
-                       if (c=='(') cnt++;
-                       if (c==')') cnt--;
-                       if (c == '\\') {
-                         int newc = input(yyscanner);
-                         if (newc != ')') nn->body[i++] = c;
-                         c = newc;
-                       }
-                       if (UNLIKELY(i > 98)) {
-                         csound->Die(csound,
-                                     Str("Missing argument terminator\n%.98s"),
-                                     nn->body);
-                       }
-                       nn->body[i++] = c;
-                       if (UNLIKELY(i >= size)) {
-                         nn->body = csound->ReAlloc(csound, nn->body, size += 100);
-                         if (UNLIKELY(nn->body == NULL)) {
+                     if (!err) {
+                       //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
+                       if (UNLIKELY(PARM->macro_stack_ptr >=
+                                    PARM->macro_stack_size )) {
+                         PARM->alt_stack =
+                           (MACRON*)
+                           csound->ReAlloc(csound, PARM->alt_stack,
+                                           sizeof(MACRON)*
+                                                 (PARM->macro_stack_size+=10));
+                         if (UNLIKELY(PARM->alt_stack == NULL)) {
                            csound->Message(csound, Str("Memory exhausted"));
                            csound->LongJmp(csound, 1);
                          }
+                         /* csound->DebugMsg(csound, */
+                         /*        "macro_stack extends alt_stack to %d long\n", */
+                         /*                  PARM->macro_stack_size); */
+                       }
+                       PARM->alt_stack[PARM->macro_stack_ptr].n =
+                         PARM->macros->acnt;
+                       PARM->alt_stack[PARM->macro_stack_ptr].line =
+                         csound_preget_lineno(yyscanner);
+                       PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
+                       PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
+                       PARM->alt_stack[PARM->macro_stack_ptr].line =
+                         csound_preget_lineno(yyscanner);
+                       /* printf("stacked line = %llu at %d\n", */
+                       /*  csound_preget_lineno(yyscanner), */
+                       /* PARM->macro_stack_ptr-1); */
+                       PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
+                       //csound->DebugMsg(csound,"Push %p macro stack\n",
+                       //                 PARM->macros);
+                       yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
+                       csound_preset_lineno(1, yyscanner);
+                       if (UNLIKELY(PARM->depth>1022)) {
+                         csound->Message(csound,
+                                         Str("macros/include nested too deep: "));
+                         corfile_puts(csound, "$error", csound->expanded_orc);
+                         err = 1;
                        }
                      }
-                     nn->body[i] = '\0';
-                     csound->Message(csound, "as...#%s#\n", nn->body);
-                     nn->acnt = 0;       /* No arguments for arguments */
-                     nn->next = PARM->macros;
-                     PARM->macros = nn;
-                   }
-                   //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
+                     if (!err) {
+                       PARM->lstack[++PARM->depth] =
+                         (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
+                       yy_scan_string(mm->body, yyscanner);
                      }
-                     /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                     /*                  PARM->macro_stack_size); */
                    }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = PARM->macros->acnt;
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_preget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   if (PARM->depth++>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
-                   }
-                   PARM->lstack[PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
-                   yy_scan_string(mm->body, yyscanner);
                  }
 {INCLUDE}       {
                   if (PARM->isString != 1)
                     BEGIN(incl);
                   else
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                 }
 <incl>[ \t]*     /* eat the whitespace */
 <incl>.         { /* got the include file name */
                   do_include(csound, yytext[0], yyscanner);
                   BEGIN(INITIAL);
                 }
-#exit           { corfile_putc('\0', csound->expanded_orc);
-                  corfile_putc('\0', csound->expanded_orc);
+#exit           { corfile_putc(csound, '\0', csound->expanded_orc);
+                  corfile_putc(csound, '\0', csound->expanded_orc);
                   delete_macros(csound, yyscanner);
                   return 0;}
 <<EOF>>         {
@@ -545,7 +428,7 @@ QNAN            "qnan"[ \t]*\(
                   if ( !YY_CURRENT_BUFFER ) yyterminate();
                   csound->DebugMsg(csound,"End of input; popping to %p\n",
                           YY_CURRENT_BUFFER);
-                  csound_pre_line(csound->expanded_orc, yyscanner);
+                  csound_pre_line(csound, csound->expanded_orc, yyscanner);
                   n = PARM->alt_stack[--PARM->macro_stack_ptr].n;
                   /* printf("lineno on stack is %llu\n", */
                   /*        PARM->alt_stack[PARM->macro_stack_ptr].line); */
@@ -584,14 +467,14 @@ QNAN            "qnan"[ \t]*\(
                   csound_preset_lineno(PARM->alt_stack[PARM->macro_stack_ptr].line,
                                        yyscanner);
                   //print_csound_predata(csound,"Before pre_line", yyscanner);
-                  csound_pre_line(csound->orchstr, yyscanner);
+                  csound_pre_line(csound, csound->orchstr, yyscanner);
                   //print_csound_predata(csound,"After pre_line", yyscanner);
                 }
 {DEFINE}        {
                   if (PARM->isString != 1)
                     BEGIN(macro);
                   else
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                 }
 <macro>[ \t]*    /* eat the whitespace */
 <macro>{MACROB} {
@@ -621,7 +504,7 @@ QNAN            "qnan"[ \t]*\(
                   if (PARM->isString != 1)
                     BEGIN(umacro);
                   else
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                 }
 <umacro>[ \t]*    /* eat the whitespace */
 <umacro>{MACRO}  {
@@ -635,12 +518,12 @@ QNAN            "qnan"[ \t]*\(
                     PARM->isIfndef = (yytext[3] == 'n');  /* #ifdef or #ifndef */
                     csound_preset_lineno(1+csound_preget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', csound->expanded_orc);
-                    csound_pre_line(csound->expanded_orc, yyscanner);
+                    corfile_putc(csound, '\n', csound->expanded_orc);
+                    csound_pre_line(csound, csound->expanded_orc, yyscanner);
                     BEGIN(ifdef);
                   }
                   else {
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                   }
                 }
 <ifdef>[ \t]*     /* eat the whitespace */
@@ -661,12 +544,12 @@ QNAN            "qnan"[ \t]*\(
                     PARM->ifdefStack->isElse = 1;
                     csound_preset_lineno(1+csound_preget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', csound->expanded_orc);
-                    csound_pre_line(csound->expanded_orc, yyscanner);
+                    corfile_putc(csound, '\n', csound->expanded_orc);
+                    csound_pre_line(csound, csound->expanded_orc, yyscanner);
                     do_ifdef_skip_code(csound, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                   }
                 }
 {END}           {
@@ -679,87 +562,87 @@ QNAN            "qnan"[ \t]*\(
                     PARM->ifdefStack = pp->prv;
                     csound_preset_lineno(1+csound_preget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', csound->expanded_orc);
-                    csound_pre_line(csound->expanded_orc, yyscanner);
+                    corfile_putc(csound, '\n', csound->expanded_orc);
+                    csound_pre_line(csound, csound->expanded_orc, yyscanner);
                     mfree(csound, pp);
                   }
                   else {
-                    corfile_puts(yytext, csound->expanded_orc);
+                    corfile_puts(csound, yytext, csound->expanded_orc);
                   }
 }
-{IDENT}         { corfile_puts(yytext,csound->expanded_orc); }
-{INT}           { do_function(yytext,csound->expanded_orc); }
-{FRAC}          { do_function(yytext,csound->expanded_orc); }
-{ROUND}         { do_function(yytext,csound->expanded_orc); }
-{FLOOR}         { do_function(yytext,csound->expanded_orc); }
-{CEIL}          { do_function(yytext,csound->expanded_orc); }
-{RND}           { do_function(yytext,csound->expanded_orc); }
-{BIRND}         { do_function(yytext,csound->expanded_orc); }
-{ABS}           { do_function(yytext,csound->expanded_orc); }
-{EXP}           { do_function(yytext,csound->expanded_orc); }
-{LOG}           { do_function(yytext,csound->expanded_orc); }
-{SQRT}          { do_function(yytext,csound->expanded_orc); }
-{SIN}           { do_function(yytext,csound->expanded_orc); }
-{COS}           { do_function(yytext,csound->expanded_orc); }
-{TAN}           { do_function(yytext,csound->expanded_orc); }
-{SININV}        { do_function(yytext,csound->expanded_orc); }
-{COSINV}        { do_function(yytext,csound->expanded_orc); }
-{TANINV}        { do_function(yytext,csound->expanded_orc); }
-{LOG10}         { do_function(yytext,csound->expanded_orc); }
-{LOG2}          { do_function(yytext,csound->expanded_orc); }
-{SINH}          { do_function(yytext,csound->expanded_orc); }
-{COSH}          { do_function(yytext,csound->expanded_orc); }
-{TANH}          { do_function(yytext,csound->expanded_orc); }
-{AMPDB}         { do_function(yytext,csound->expanded_orc); }
-{AMPDBFS}       { do_function(yytext,csound->expanded_orc); }
-{DBAMP}         { do_function(yytext,csound->expanded_orc); }
-{DBFSAMP}       { do_function(yytext,csound->expanded_orc); }
-{FTCPS}         { do_function(yytext,csound->expanded_orc); }
-{FTLEN}         { do_function(yytext,csound->expanded_orc); }
-{FTSR}          { do_function(yytext,csound->expanded_orc); }
-{FTLPTIM}       { do_function(yytext,csound->expanded_orc); }
-{FTCHNLS}       { do_function(yytext,csound->expanded_orc); }
-{I}             { do_function(yytext,csound->expanded_orc); }
-{K}             { do_function(yytext,csound->expanded_orc); }
-{CPSOCT}        { do_function(yytext,csound->expanded_orc); }
-{OCTPCH}        { do_function(yytext,csound->expanded_orc); }
-{CPSPCH}        { do_function(yytext,csound->expanded_orc); }
-{PCHOCT}        { do_function(yytext,csound->expanded_orc); }
-{OCTCPS}        { do_function(yytext,csound->expanded_orc); }
-{NSAMP}         { do_function(yytext,csound->expanded_orc); }
-{POWOFTWO}      { do_function(yytext,csound->expanded_orc); }
-{LOGBTWO}       { do_function(yytext,csound->expanded_orc); }
-{A}             { do_function(yytext,csound->expanded_orc); }
-{TB0}           { do_function(yytext,csound->expanded_orc); }
-{TB1}           { do_function(yytext,csound->expanded_orc); }
-{TB2}           { do_function(yytext,csound->expanded_orc); }
-{TB3}           { do_function(yytext,csound->expanded_orc); }
-{TB4}           { do_function(yytext,csound->expanded_orc); }
-{TB5}           { do_function(yytext,csound->expanded_orc); }
-{TB6}           { do_function(yytext,csound->expanded_orc); }
-{TB7}           { do_function(yytext,csound->expanded_orc); }
-{TB8}           { do_function(yytext,csound->expanded_orc); }
-{TB9}           { do_function(yytext,csound->expanded_orc); }
-{TB10}          { do_function(yytext,csound->expanded_orc); }
-{TB11}          { do_function(yytext,csound->expanded_orc); }
-{TB12}          { do_function(yytext,csound->expanded_orc); }
-{TB13}          { do_function(yytext,csound->expanded_orc); }
-{TB14}          { do_function(yytext,csound->expanded_orc); }
-{TB15}          { do_function(yytext,csound->expanded_orc); }
-{URD}           { do_function(yytext,csound->expanded_orc); }
-{NOT}           { do_function(yytext,csound->expanded_orc); }
-{CENT}          { do_function(yytext,csound->expanded_orc); }
-{OCTAVE}        { do_function(yytext,csound->expanded_orc); }
-{SEMITONE}      { do_function(yytext,csound->expanded_orc); }
-{CPSMIDIN}      { do_function(yytext,csound->expanded_orc); }
-{OCTMIDIN}      { do_function(yytext,csound->expanded_orc); }
-{PCHMIDIN}      { do_function(yytext,csound->expanded_orc); }
-{DB}            { do_function(yytext,csound->expanded_orc); }
-{P}             { do_function(yytext,csound->expanded_orc); }
-{QINF}          { do_function(yytext,csound->expanded_orc); }
-{QNAN}          { do_function(yytext,csound->expanded_orc); }
+{IDENT}         { corfile_puts(csound, yytext,csound->expanded_orc); }
+{INT}           { do_function(csound, yytext,csound->expanded_orc); }
+{FRAC}          { do_function(csound, yytext,csound->expanded_orc); }
+{ROUND}         { do_function(csound, yytext,csound->expanded_orc); }
+{FLOOR}         { do_function(csound, yytext,csound->expanded_orc); }
+{CEIL}          { do_function(csound, yytext,csound->expanded_orc); }
+{RND}           { do_function(csound, yytext,csound->expanded_orc); }
+{BIRND}         { do_function(csound, yytext,csound->expanded_orc); }
+{ABS}           { do_function(csound, yytext,csound->expanded_orc); }
+{EXP}           { do_function(csound, yytext,csound->expanded_orc); }
+{LOG}           { do_function(csound, yytext,csound->expanded_orc); }
+{SQRT}          { do_function(csound, yytext,csound->expanded_orc); }
+{SIN}           { do_function(csound, yytext,csound->expanded_orc); }
+{COS}           { do_function(csound, yytext,csound->expanded_orc); }
+{TAN}           { do_function(csound, yytext,csound->expanded_orc); }
+{SININV}        { do_function(csound, yytext,csound->expanded_orc); }
+{COSINV}        { do_function(csound, yytext,csound->expanded_orc); }
+{TANINV}        { do_function(csound, yytext,csound->expanded_orc); }
+{LOG10}         { do_function(csound, yytext,csound->expanded_orc); }
+{LOG2}          { do_function(csound, yytext,csound->expanded_orc); }
+{SINH}          { do_function(csound, yytext,csound->expanded_orc); }
+{COSH}          { do_function(csound, yytext,csound->expanded_orc); }
+{TANH}          { do_function(csound, yytext,csound->expanded_orc); }
+{AMPDB}         { do_function(csound, yytext,csound->expanded_orc); }
+{AMPDBFS}       { do_function(csound, yytext,csound->expanded_orc); }
+{DBAMP}         { do_function(csound, yytext,csound->expanded_orc); }
+{DBFSAMP}       { do_function(csound, yytext,csound->expanded_orc); }
+{FTCPS}         { do_function(csound, yytext,csound->expanded_orc); }
+{FTLEN}         { do_function(csound, yytext,csound->expanded_orc); }
+{FTSR}          { do_function(csound, yytext,csound->expanded_orc); }
+{FTLPTIM}       { do_function(csound, yytext,csound->expanded_orc); }
+{FTCHNLS}       { do_function(csound, yytext,csound->expanded_orc); }
+{I}             { do_function(csound, yytext,csound->expanded_orc); }
+{K}             { do_function(csound, yytext,csound->expanded_orc); }
+{CPSOCT}        { do_function(csound, yytext,csound->expanded_orc); }
+{OCTPCH}        { do_function(csound, yytext,csound->expanded_orc); }
+{CPSPCH}        { do_function(csound, yytext,csound->expanded_orc); }
+{PCHOCT}        { do_function(csound, yytext,csound->expanded_orc); }
+{OCTCPS}        { do_function(csound, yytext,csound->expanded_orc); }
+{NSAMP}         { do_function(csound, yytext,csound->expanded_orc); }
+{POWOFTWO}      { do_function(csound, yytext,csound->expanded_orc); }
+{LOGBTWO}       { do_function(csound, yytext,csound->expanded_orc); }
+{A}             { do_function(csound, yytext,csound->expanded_orc); }
+{TB0}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB1}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB2}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB3}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB4}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB5}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB6}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB7}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB8}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB9}           { do_function(csound, yytext,csound->expanded_orc); }
+{TB10}          { do_function(csound, yytext,csound->expanded_orc); }
+{TB11}          { do_function(csound, yytext,csound->expanded_orc); }
+{TB12}          { do_function(csound, yytext,csound->expanded_orc); }
+{TB13}          { do_function(csound, yytext,csound->expanded_orc); }
+{TB14}          { do_function(csound, yytext,csound->expanded_orc); }
+{TB15}          { do_function(csound, yytext,csound->expanded_orc); }
+{URD}           { do_function(csound, yytext,csound->expanded_orc); }
+{NOT}           { do_function(csound, yytext,csound->expanded_orc); }
+{CENT}          { do_function(csound, yytext,csound->expanded_orc); }
+{OCTAVE}        { do_function(csound, yytext,csound->expanded_orc); }
+{SEMITONE}      { do_function(csound, yytext,csound->expanded_orc); }
+{CPSMIDIN}      { do_function(csound, yytext,csound->expanded_orc); }
+{OCTMIDIN}      { do_function(csound, yytext,csound->expanded_orc); }
+{PCHMIDIN}      { do_function(csound, yytext,csound->expanded_orc); }
+{DB}            { do_function(csound, yytext,csound->expanded_orc); }
+{P}             { do_function(csound, yytext,csound->expanded_orc); }
+{QINF}          { do_function(csound, yytext,csound->expanded_orc); }
+{QNAN}          { do_function(csound, yytext,csound->expanded_orc); }
 
-.               { corfile_putc(yytext[0], csound->expanded_orc); }
+.               { corfile_putc(csound, yytext[0], csound->expanded_orc); }
 
 %%
 void comment(yyscan_t yyscanner)              /* Skip until nextline */
@@ -767,14 +650,14 @@ void comment(yyscan_t yyscanner)              /* Skip until nextline */
     char c;
     struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
     while ((c = input(yyscanner)) != '\n' && c != '\r') { /* skip */
-      if ((int)c == EOF) {
+      if (UNLIKELY((int)c == EOF)) {
         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
           YY_BUFFER_EOF_PENDING;
         return;
       }
     }
     if (c == '\r' && (c = input(yyscanner)) != '\n') {
-      if ((int)c != EOF)
+      if (LIKELY((int)c != EOF))
         unput(c);
       else
         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
@@ -837,12 +720,16 @@ void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
     CORFIL *cf;
     struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
     while ((c=input(yyscanner))!=term) {
+      if (c=='\n' || c==EOF) {
+        csound->Warning(csound, Str("Ill formed #include ignored"));
+        return;
+      }
       buffer[p] = c;
       p++;
     }
     buffer[p] = '\0';
     while ((c=input(yyscanner))!='\n');
-    if (PARM->depth++>=1024) {
+    if (UNLIKELY(PARM->depth++>=1024)) {
       csound->Die(csound, Str("Includes nested too deeply"));
     }
     csound_preset_lineno(1+csound_preget_lineno(yyscanner), yyscanner);
@@ -854,13 +741,13 @@ void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
       PARM->lstack[PARM->depth] = n;
       sprintf(bb, "#source %llu\n", PARM->locn = make_location(PARM));
       PARM->llocn = PARM->locn;
-      corfile_puts(bb, csound->expanded_orc);
+      corfile_puts(csound, bb, csound->expanded_orc);
     }
     csound->DebugMsg(csound,"reading included file \"%s\"\n", buffer);
     if (UNLIKELY(isDir(buffer)))
       csound->Warning(csound, Str("%s is a directory; not including"), buffer);
     cf = copy_to_corefile(csound, buffer, "INCDIR", 0);
-    if (cf == NULL)
+    if (UNLIKELY(cf == NULL))
       csound->Die(csound,
                   Str("Cannot open #include'd file %s\n"), buffer);
     if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
@@ -881,7 +768,7 @@ void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
     PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
     csound_prepush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
     csound_pre_scan_string(cf->body, yyscanner);
-    corfile_rm(&cf);
+    corfile_rm(csound, &cf);
     csound->DebugMsg(csound,"Set line number to 1\n");
     csound_preset_lineno(1, yyscanner);
 }
@@ -979,28 +866,29 @@ static void do_macro_arg(CSOUND *csound, char *name0, yyscan_t yyscanner)
     free(mname);
     c = input(yyscanner);
     while (c!='#') {
-      if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+      if (UNLIKELY(c==EOF)) csound->Die(csound, Str("define macro runaway\n"));
       else if (c==';') {
         while ((c=input(yyscanner))!= '\n')
-          if (c==EOF) {
+          if (UNLIKELY(c==EOF)) {
             csound->Die(csound, Str("define macro runaway\n"));
           }
       }
       else if (c=='/') {
         if ((c=input(yyscanner))=='/') {
           while ((c=input(yyscanner))!= '\n')
-            if (c==EOF)
+            if (UNLIKELY(c==EOF))
               csound->Die(csound, Str("define macro runaway\n"));
         }
         else if (c=='*') {
           while ((c=input(yyscanner))!='*') {
           again:
-            if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+            if (UNLIKELY(c==EOF))
+              csound->Die(csound, Str("define macro runaway\n"));
           }
           if ((c=input(yyscanner))!='/') goto again;
         }
       }
-      else if (!isspace(c))
+      else if (UNLIKELY(!isspace(c)))
         csound->Die(csound,
                Str("define macro unexpected character %c(0x%.2x) awaiting #\n"),
                     c, c);
@@ -1052,8 +940,8 @@ static void do_macro_arg(CSOUND *csound, char *name0, yyscan_t yyscanner)
       }
       if (UNLIKELY(c == '\n' || c == '\r')) {
         csound_preset_lineno(1+csound_preget_lineno(yyscanner),yyscanner);
-        corfile_putc('\n', csound->expanded_orc);
-        csound_pre_line(csound->expanded_orc, yyscanner);
+        corfile_putc(csound, '\n', csound->expanded_orc);
+        csound_pre_line(csound, csound->expanded_orc, yyscanner);
       }
     }
     mm->body[i] = '\0';
@@ -1082,30 +970,32 @@ static void do_macro(CSOUND *csound, char *name0, yyscan_t yyscanner)
     mm->acnt = 0;
     i = 0;
     while ((c = input(yyscanner)) != '#') {
-      if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+      if (UNLIKELY(c==EOF)) csound->Die(csound, Str("define macro runaway\n"));
       else if (c==';') {
         while ((c=input(yyscanner))!= '\n')
-          if (c==EOF) {
+          if (UNLIKELY(c==EOF)) {
             csound->Die(csound, Str("define macro runaway\n"));
           }
       }
       else if (c=='/') {
         if ((c=input(yyscanner))=='/') {
           while ((c=input(yyscanner))!= '\n')
-            if (c==EOF)
+            if (UNLIKELY(c==EOF))
               csound->Die(csound, Str("define macro runaway\n"));
         }
         else if (c=='*') {
           while ((c=input(yyscanner))!='*') {
           again:
-            if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+            if (UNLIKELY(c==EOF))
+              csound->Die(csound, Str("define macro runaway\n"));
           }
           if ((c=input(yyscanner))!='/') goto again;
         }
       }
-      else if (!isspace(c))
+      else if (UNLIKELY(!isspace(c)))
         csound->Die(csound,
-                    Str("define macro unexpected character %c(0x%.2x) awaiting #\n"),
+                    Str("define macro unexpected character %c(0x%.2x)"
+                        " awaiting #\n"),
                     c, c);
     }
     mm->body = (char*) csound->Malloc(csound, 100);
@@ -1136,8 +1026,8 @@ static void do_macro(CSOUND *csound, char *name0, yyscan_t yyscanner)
       }
       if (UNLIKELY(c == '\n' || c == '\r')) {
         csound_preset_lineno(1+csound_preget_lineno(yyscanner),yyscanner);
-        corfile_putc('\n', csound->expanded_orc);
-        csound_pre_line(csound->expanded_orc, yyscanner);
+        corfile_putc(csound, '\n', csound->expanded_orc);
+        csound_pre_line(csound, csound->expanded_orc, yyscanner);
       }
     }
     mm->body[i] = '\0';
@@ -1225,11 +1115,11 @@ static void do_ifdef_skip_code(CSOUND *csound, yyscan_t yyscanner)
           csound->LongJmp(csound, 1);
         }
         c = input(yyscanner);
-    }
+      }
       csound_preset_lineno(1+csound_preget_lineno(yyscanner),
                            yyscanner);
-      corfile_putc('\n', csound->expanded_orc);
-      csound_pre_line(csound->expanded_orc, yyscanner);
+      corfile_putc(csound, '\n', csound->expanded_orc);
+      csound_pre_line(csound, csound->expanded_orc, yyscanner);
       while (isblank(c = input(yyscanner)));  /* eat the whitespace */
       if (c == '#') {
         for (i=0; islower(c = input(yyscanner)) && i < 7; i++)
@@ -1246,7 +1136,7 @@ static void do_ifdef_skip_code(CSOUND *csound, yyscan_t yyscanner)
           nested_ifdef++;
         }
         else if (strcmp("else", buf) == 0 && nested_ifdef == 0) {
-          if (pp->isElse) {
+          if (UNLIKELY(pp->isElse)) {
             csound->Message(csound, Str("#else after #else\n"));
             csound->LongJmp(csound, 1);
           }
@@ -1295,20 +1185,20 @@ static void add_math_const_macro(CSOUND *csound, PRE_PARM* qq,
 void cs_init_math_constants_macros(CSOUND *csound, PRE_PARM* qq)
 {
     qq->macros = NULL;
-     add_math_const_macro(csound, qq, "E",     "2.71828182845904523536");
-     add_math_const_macro(csound, qq, "LOG2E", "1.44269504088896340736");
-     add_math_const_macro(csound, qq, "LOG10E","0.43429448190325182765");
-     add_math_const_macro(csound, qq, "LN2",   "0.69314718055994530942");
-     add_math_const_macro(csound, qq, "LN10",  "2.30258509299404568402");
-     add_math_const_macro(csound, qq, "PI",    "3.14159265358979323846");
-     add_math_const_macro(csound, qq, "PI_2",  "1.57079632679489661923");
-     add_math_const_macro(csound, qq, "PI_4",  "0.78539816339744830962");
-     add_math_const_macro(csound, qq, "1_PI",  "0.31830988618379067154");
-     add_math_const_macro(csound, qq, "2_PI",  "0.63661977236758134308");
-     add_math_const_macro(csound, qq,"2_SQRTPI", "1.12837916709551257390");
-     add_math_const_macro(csound, qq, "SQRT2", "1.41421356237309504880");
-     add_math_const_macro(csound, qq,"SQRT1_2","0.70710678118654752440");
-     add_math_const_macro(csound, qq, "INF",   "800000000000.0");/* ~25367 years */
+    add_math_const_macro(csound, qq, "E",     "2.71828182845904523536");
+    add_math_const_macro(csound, qq, "LOG2E", "1.44269504088896340736");
+    add_math_const_macro(csound, qq, "LOG10E","0.43429448190325182765");
+    add_math_const_macro(csound, qq, "LN2",   "0.69314718055994530942");
+    add_math_const_macro(csound, qq, "LN10",  "2.30258509299404568402");
+    add_math_const_macro(csound, qq, "PI",    "3.14159265358979323846");
+    add_math_const_macro(csound, qq, "PI_2",  "1.57079632679489661923");
+    add_math_const_macro(csound, qq, "PI_4",  "0.78539816339744830962");
+    add_math_const_macro(csound, qq, "1_PI",  "0.31830988618379067154");
+    add_math_const_macro(csound, qq, "2_PI",  "0.63661977236758134308");
+    add_math_const_macro(csound, qq,"2_SQRTPI", "1.12837916709551257390");
+    add_math_const_macro(csound, qq, "SQRT2", "1.41421356237309504880");
+    add_math_const_macro(csound, qq,"SQRT1_2","0.70710678118654752440");
+    add_math_const_macro(csound, qq, "INF",   "800000000000.0");/* ~25367 years */
 }
 
 void cs_init_omacros(CSOUND *csound, PRE_PARM *qq, NAMES *nn)
@@ -1322,7 +1212,7 @@ void cs_init_omacros(CSOUND *csound, PRE_PARM *qq, NAMES *nn)
       if (p == NULL)
         p = s + strlen(s);
       if (csound->oparms->msglevel & 7)
-        csound->Message(csound, Str("Macro definition for %*s\n"), p - s, s);
+        csound->Message(csound, Str("Macro definition for %*s\n"), (int) (p - s), s);
       s = strchr(s, ':') + 1;                   /* skip arg bit */
       if (UNLIKELY(s == NULL || s >= p)) {
         csound->Die(csound, Str("Invalid macro name for --omacro"));
@@ -1370,7 +1260,7 @@ void cs_init_omacros(CSOUND *csound, PRE_PARM *qq, NAMES *nn)
 /*     return 1; */
 /* } */
 
-void csound_pre_line(CORFIL* cf, void *yyscanner)
+void csound_pre_line(CSOUND *csound, CORFIL* cf, void *yyscanner)
 {
     int n = csound_preget_lineno(yyscanner);
     //printf("line number %d\n", n);
@@ -1378,28 +1268,27 @@ void csound_pre_line(CORFIL* cf, void *yyscanner)
     if (cf->p>0 && cf->body[cf->p-1]=='\n') {
       uint64_t locn = PARM->locn;
       uint64_t llocn = PARM->llocn;
-      if (locn != llocn) {
+      if (UNLIKELY(locn != llocn)) {
         char bb[80];
         sprintf(bb, "#source %llu\n", locn);
-        corfile_puts(bb, cf);
+        corfile_puts(csound, bb, cf);
       }
       PARM->llocn = locn;
-      if (n!=PARM->line+1) {
+      if (UNLIKELY(n!=PARM->line+1)) {
         char bb[80];
         sprintf(bb, "#line   %d\n", n);
-        //printf("#line %d\n", n);
-        corfile_puts(bb, cf);
+        corfile_puts(csound, bb, cf);
       }
     }
     PARM->line = n;
 }
 
-void do_function(char *text, CORFIL *cf)
+void do_function(CSOUND *csound, char *text, CORFIL *cf)
 {
     char *p = text;
     //printf("do_function on >>%s<<\n", text);
     while (*p != '\0') {
-      if (!isspace(*p)) corfile_putc(*p, cf);
+      if (!isspace(*p)) corfile_putc(csound, *p, cf);
       p++;
     }
     return;
@@ -1408,7 +1297,10 @@ void do_function(char *text, CORFIL *cf)
 static MACRO *find_definition(MACRO *mmo, char *s)
 {
     MACRO *mm = mmo;
-    //printf("****Looking for %s\n", s);
+    if (s[strlen(s)-1]=='.') s[strlen(s)-1]='\0';
+    else if (s[strlen(s)-2]=='.' && s[strlen(s)-1]=='(') {
+      s[strlen(s)-2] = '('; s[strlen(s)-1] = '\0'; }
+    // printf("****Looking for %s strlen=%d\n", s, strlen(s), s[strlen(s)-1]);
     while (mm != NULL) {  /* Find the definition */
       //printf("looking at %p(%s) body #%s#\n", mm, mm->name, mm->body);
       if (!(strcmp(s, mm->name))) break;
diff --git a/Engine/csound_prs.lex b/Engine/csound_prs.lex
index e2f8146..688c73f 100644
--- a/Engine/csound_prs.lex
+++ b/Engine/csound_prs.lex
@@ -91,7 +91,9 @@ END             #end(if)?[ \t]*(;.*)?(\n|\r\n?)
 LOOP            #loop
 EXIT            #exit
 CONT            \\[ \t]*(;.*)?(\n|\r\n?)
-SEND            [es]
+SEND            ^[ \t]*[es]
+ROP             ^[ \t]*r
+
 NM              [nm]
 
 %X incl
@@ -111,12 +113,12 @@ NM              [nm]
 #ifdef SCORE_PARSER
                   if (PARM->isString==0) {
                     sprintf(bb, "#sline %d ", csound_prsget_lineno(yyscanner));
-                    corfile_puts(bb, PARM->cf);
+                    corfile_puts(csound, bb, PARM->cf);
                   }
 #endif
                 }
 {NEWLINE}       {
-                  corfile_putc('\n', PARM->cf);
+                  corfile_putc(csound, '\n', PARM->cf);
                   csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),
                                        yyscanner);
                   csound_prs_line(PARM->cf, yyscanner);
@@ -124,21 +126,21 @@ NM              [nm]
 "//"            {
                   if (PARM->isString != 1) {
                     comment(yyscanner);
-                    corfile_putc('\n', PARM->cf);
+                    corfile_putc(csound, '\n', PARM->cf);
                     csound_prs_line(PARM->cf, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                   }
                 }
 ";"             {
                   if (PARM->isString != 1) {
                     comment(yyscanner);
-                    corfile_putc('\n', PARM->cf);
+                    corfile_putc(csound, '\n', PARM->cf);
                     csound_prs_line(PARM->cf, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                   }
                   //corfile_putline(csound_prsget_lineno(yyscanner),
                   //                PARM->cf);
@@ -147,106 +149,61 @@ NM              [nm]
                   if (PARM->isString != 1)
                     do_comment(yyscanner);
                   else
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                 }
-{ESCAPE}        { corfile_puts(yytext, PARM->cf); }
+{ESCAPE}        { corfile_puts(csound, yytext, PARM->cf); }
 {STSTR}         {
-                  corfile_putc('"', PARM->cf);
+                  corfile_putc(csound, '"', PARM->cf);
                   PARM->isString = !PARM->isString;
                 }
-{MACRONAME}     {
+{MACRONAME}|{MACRONAMED}     {
                    MACRO     *mm = PARM->macros;
                    mm = find_definition(mm, yytext+1);
                    if (UNLIKELY(mm == NULL)) {
                      csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
-                   }
-                   /* Need to read from macro definition */
-                   /* ??fiddle with buffers I guess */
-                   if (mm->acnt<0) { /* Macro inhibitted */
-                     corfile_puts(yytext, PARM->cf);
-                   }
-                   else {
-                     if (UNLIKELY(PARM->macro_stack_ptr>=PARM->macro_stack_size)) {
-                       PARM->alt_stack =
-                         (MACRON*)
-                         csound->ReAlloc(csound, PARM->alt_stack,
-                                     sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                       if (UNLIKELY(PARM->alt_stack == NULL)) {
-                         csound->Message(csound, Str("Memory exhausted"));
-                         csound->LongJmp(csound, 1);
-                       }
-                       /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                       /*                  PARM->macro_stack_size); */
-                     }
-                     PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                     PARM->alt_stack[PARM->macro_stack_ptr].line =
-                       csound_prsget_lineno(yyscanner);
-                     PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
-                     yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                     csound_prsset_lineno(1, yyscanner);
-                     if (PARM->depth>1022) {
-                       csound->Message(csound,
-                                       Str("macros/include nested too deep: "));
-                       csound->LongJmp(csound, 1);
-                     }
-                     if (PARM->depth>1022) {
-                       csound->Message(csound,
-                                       Str("macros/include nested too deep: "));
-                       csound->LongJmp(csound, 1);
-                     }
-                     PARM->lstack[++PARM->depth] =
-                       (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
-                     yy_scan_string(mm->body, yyscanner);
-                     /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
-                   }
-                }
-{MACRONAMED}    {
-                     MACRO     *mm = PARM->macros;
-                     yytext[yyleng-1] = '\0';
-                     mm = find_definition(mm, yytext+1);
-                     if (UNLIKELY(mm == NULL)) {
-                       csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                       csound->LongJmp(csound, 1);
-                     }
-                   if (mm->acnt<0) { /* macro inhibitted */
-                     yytext[yyleng-1] = '.';
-                     corfile_puts(yytext, PARM->cf);
+                     //csound->LongJmp(csound, 1);
+                     corfile_puts(csound, "$error", PARM->cf);
                    }
                    else {
                      /* Need to read from macro definition */
-                     /* ??fiddle with buffers I guess */
-                     if (UNLIKELY(PARM->macro_stack_ptr>=PARM->macro_stack_size)) {
-                       PARM->alt_stack =
-                         (MACRON*)
-                         csound->ReAlloc(csound, PARM->alt_stack,
-                                 sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                       if (UNLIKELY(PARM->alt_stack == NULL)) {
-                         csound->Message(csound, Str("Memory exhausted"));
+                     if (mm->acnt<0) { /* Macro inhibitted */
+                       corfile_puts(csound, yytext, PARM->cf);
+                     }
+                     else {
+                       if (UNLIKELY(PARM->macro_stack_ptr>=
+                                    PARM->macro_stack_size)) {
+                         PARM->alt_stack =
+                           (MACRON*)
+                           csound->ReAlloc(csound, PARM->alt_stack,
+                                   sizeof(MACRON)*(PARM->macro_stack_size+=10));
+                         if (UNLIKELY(PARM->alt_stack == NULL)) {
+                           csound->Message(csound, Str("Memory exhausted"));
+                           csound->LongJmp(csound, 1);
+                         }
+                         /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
+                         /*                  PARM->macro_stack_size); */
+                       }
+                       PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
+                       PARM->alt_stack[PARM->macro_stack_ptr].line =
+                         csound_prsget_lineno(yyscanner);
+                       PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
+                       yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
+                       csound_prsset_lineno(1, yyscanner);
+                       if (UNLIKELY(PARM->depth>1022)) {
+                         csound->Message(csound,
+                                         Str("macros/include nested too deep: "));
                          csound->LongJmp(csound, 1);
                        }
-                       /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                       /*                  PARM->macro_stack_size); */
-                     }
-                     PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                     PARM->alt_stack[PARM->macro_stack_ptr].line =
-                       csound_prsget_lineno(yyscanner);
-                     PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
-                     yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                     csound_prsset_lineno(1, yyscanner);
-                     if (PARM->depth>1022) {
-                       csound->Message(csound,
-                                       Str("macros/include nested too deep: "));
-                       csound->LongJmp(csound, 1);
-                     }
-                     PARM->lstack[++PARM->depth] =
-                       (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
-                     yy_scan_string(mm->body, yyscanner);
-                     /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
+                       PARM->lstack[++PARM->depth] =
+                         (strchr(mm->body,'\n') ?file_to_int(csound, yytext) : 63);
+                       yy_scan_string(mm->body, yyscanner);
+                       /* csound->DebugMsg(csound,"%p\n", YY_CURRENT_BUFFER); */
                    }
-                 }
-{MACRONAMEA}    {
+                   }
+                }
+{MACRONAMEA}|{MACRONAMEDA}    {
                    MACRO     *mm = PARM->macros;
+                   int err =0;
                    char      *mname;
                    int c, i, j, cnt=0;
                    //csound->DebugMsg(csound,"Macro with arguments call %s\n",
@@ -255,216 +212,129 @@ NM              [nm]
                    mm = find_definition(PARM->macros, yytext+1);
                    if (UNLIKELY(mm == NULL)) {
                      csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
+                     corfile_puts(csound, "$error", PARM->cf);
+                     //csound->LongJmp(csound, 1);
                    }
-                   mname = yytext;
-                   /* Need to read from macro definition */
-                   //csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
-                   for (j = 0; j < mm->acnt; j++) {
-                     char  term = (j == mm->acnt - 1 ? ')' : '\'');
- /* Compatability */
-                     char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
-                     MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
-                     int   size = 100;
-                     if (UNLIKELY(nn == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
-                     if (UNLIKELY(nn->name == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     //csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
-                     strcpy(nn->name, mm->arg[j]);
-                     csound->Message(csound, "defining argument %s ",
-                                        nn->name);
-                     i = 0;
-                     nn->body = (char*) csound->Malloc(csound, 100);
-                     if (UNLIKELY(nn->body == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                      while (1) {
-                       c = input(yyscanner);
-                       if (cnt==0 && ( c==term || c==trm1)) break;
-                       if (cnt==0 && c == ')') {
-                         csound->Die(csound, Str("Too few arguments to macro\n"));
+                   else {
+                     mname = yytext;
+                     /* Need to read from macro definition */
+                     //csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
+                     for (j = 0; j < mm->acnt; j++) {
+                       char  term = (j == mm->acnt - 1 ? ')' : '\'');
+                       /* Compatability */
+                       char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
+                       MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
+                       //int   size = 100;
+                       if (UNLIKELY(nn == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       if (c=='(') cnt++;
-                       if (c==')') cnt--;
-                       if (c == '\\') {
-                         int newc = input(yyscanner);
-                         if (newc != ')') nn ->body[i++] = c;
-                         c = newc;
+                       nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
+                       if (UNLIKELY(nn->name == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       if (UNLIKELY(i > 98)) {
-                         csound->Die(csound,
-                                     Str("Missing argument terminator\n%.98s"),
-                                     nn->body);
+                       //csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
+                       strcpy(nn->name, mm->arg[j]);
+                       csound->Message(csound, "defining argument %s ",
+                                        nn->name);
+                       i = 0;
+                       nn->body = (char*) csound->Malloc(csound, 100);
+                       if (UNLIKELY(nn->body == NULL)) {
+                         csound->Message(csound, Str("Memory exhausted"));
+                         csound->LongJmp(csound, 1);
                        }
-                       nn->body[i++] = c;
-                       if (UNLIKELY(i >= size)) {
-                         nn->body = csound->ReAlloc(csound, nn->body, size += 100);
-                         if (UNLIKELY(nn->body == NULL)) {
-                           csound->Message(csound, Str("Memory exhausted"));
-                           csound->LongJmp(csound, 1);
+                       while (1) {
+                         c = input(yyscanner);
+                         if (cnt==0 && ( c==term || c==trm1)) break;
+                         if (UNLIKELY(cnt==0 && c == ')')) {
+                           csound->Message(csound,
+                                           Str("Too few arguments to macro\n"));
+                           corfile_puts(csound, "$error", PARM->cf);
+                           err = 1; break;
+                         }
+                         if (c=='(') cnt++;
+                         if (c==')') cnt--;
+                         if (c == '\\') {
+                           int newc = input(yyscanner);
+                           if (newc != ')') nn ->body[i++] = c;
+                           c = newc;
+                         }
+                         if (UNLIKELY(i > 98)) {
+                           csound->Message(csound,
+                                           Str("Missing argument terminator\n%.98s"),
+                                           nn->body);
+                           corfile_puts(csound, "$error", PARM->cf);
+                           err = 1; break;
                          }
+                         nn->body[i++] = c;
+                         /* if (UNLIKELY(i >= size)) { */
+                         /*   nn->body = csound->ReAlloc(csound, nn->body, */
+                         /*   size += 100); */
+                         /*   if (UNLIKELY(nn->body == NULL)) { */
+                         /*     csound->Message(csound, Str("Memory exhausted")); */
+                         /*     csound->LongJmp(csound, 1); */
+                         /*   } */
+                         /* } */
                        }
+                       nn->body[i] = '\0';
+                       csound->Message(csound, "as...#%s#\n", nn->body);
+                       nn->acnt = 0;       /* No arguments for arguments */
+                       nn->next = PARM->macros;
+                       PARM->macros = nn;
                      }
-                     nn->body[i] = '\0';
-                     csound->Message(csound, "as...#%s#\n", nn->body);
-                     nn->acnt = 0;       /* No arguments for arguments */
-                     nn->next = PARM->macros;
-                     PARM->macros = nn;
-                   }
-                   //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     /* csound->DebugMsg(csound, */
-                     /*        "macro_stack extends alt_stack to %d long\n", */
-                     /*                  PARM->macro_stack_size); */
-                   }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = PARM->macros->acnt;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_prsget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_prsget_lineno(yyscanner);
-                   /* printf("stacked line = %llu at %d\n", */
-                   /*  csound_prsget_lineno(yyscanner), PARM->macro_stack_ptr-1); */
-                   PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
-                   //csound->DebugMsg(csound,"Push %p macro stack\n",PARM->macros);
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   csound_prsset_lineno(1, yyscanner);
-                   if (PARM->depth>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
-                   }
-                   PARM->lstack[++PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
-                   yy_scan_string(mm->body, yyscanner);
-                 }
-{MACRONAMEDA}    {
-                   MACRO     *mm = PARM->macros;
-                   char      *mname;
-                   int c, i, j, cnt=0;
-                   //csound->DebugMsg(csound,"Macro with arguments call %s\n",
-                   //                    yytext);
-                   yytext[yyleng-2] = '\0';
-                   mm = find_definition(PARM->macros, yytext+1);
-                   if (UNLIKELY(mm == NULL)) {
-                     csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
-                     csound->LongJmp(csound, 1);
-                   }
-                   mname = yytext;
-                   /* Need to read from macro definition */
-                   //csound->DebugMsg(csound,"Looking for %d args\n", mm->acnt);
-                   for (j = 0; j < mm->acnt; j++) {
-                     char  term = (j == mm->acnt - 1 ? ')' : '\'');
- /* Compatability */
-                     char  trm1 = (j == mm->acnt - 1 ? ')' : '#');
-                     MACRO *nn = (MACRO*) csound->Malloc(csound, sizeof(MACRO));
-                     int   size = 100;
-                     if (UNLIKELY(nn == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     nn->name = csound->Malloc(csound, strlen(mm->arg[j]) + 1);
-                     if (UNLIKELY(nn->name == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                     //csound->DebugMsg(csound,"Arg %d: %s\n", j+1, mm->arg[j]);
-                     strcpy(nn->name, mm->arg[j]);
-                     csound->Message(csound, "defining argument %s ",
-                                        nn->name);
-                     i = 0;
-                     nn->body = (char*) csound->Malloc(csound, 100);
-                     if (UNLIKELY(nn->body == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
-                     }
-                      while (1) {
-                       c = input(yyscanner);
-                       if (c=='(') cnt++;
-                       if (c==')') cnt--;
-                       if (cnt==0 && ( c==term || c==trm1)) break;
-                       if (cnt==0 && c == ')') {
-                         csound->Die(csound, Str("Too few arguments to macro\n"));
-                       }
-                       if (c == '\\') {
-                         int newc = input(yyscanner);
-                         if (newc != ')') nn->body[i++] = c;
-                          c = newc;
-                       }
-                       if (UNLIKELY(i > 98)) {
-                         csound->Die(csound,
-                                     Str("Missing argument terminator\n%.98s"),
-                                     nn->body);
-                       }
-                       nn->body[i++] = c;
-                       if (UNLIKELY(i >= size)) {
-                         nn->body = csound->ReAlloc(csound, nn->body, size += 100);
-                         if (UNLIKELY(nn->body == NULL)) {
+                     if (!err) {
+                       //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
+                       if (UNLIKELY(PARM->macro_stack_ptr >=
+                                    PARM->macro_stack_size )) {
+                         PARM->alt_stack =
+                           (MACRON*)
+                           csound->ReAlloc(csound, PARM->alt_stack,
+                                   sizeof(MACRON)*(PARM->macro_stack_size+=10));
+                         if (UNLIKELY(PARM->alt_stack == NULL)) {
                            csound->Message(csound, Str("Memory exhausted"));
                            csound->LongJmp(csound, 1);
                          }
+                         /* csound->DebugMsg(csound, */
+                         /*        "macro_stack extends alt_stack to %d long\n", */
+                         /*                  PARM->macro_stack_size); */
+                       }
+                       PARM->alt_stack[PARM->macro_stack_ptr].n =
+                         PARM->macros->acnt;
+                       PARM->alt_stack[PARM->macro_stack_ptr].line =
+                         csound_prsget_lineno(yyscanner);
+                       PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
+                       PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
+                       PARM->alt_stack[PARM->macro_stack_ptr].line =
+                         csound_prsget_lineno(yyscanner);
+                       /* printf("stacked line = %llu at %d\n", */
+                       /*  csound_prsget_lineno(yyscanner), */
+                       /*                       PARM->macro_stack_ptr-1); */
+                       PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
+                       //csound->DebugMsg(csound,"Push %p macro stack\n",
+                       //                 PARM->macros);
+                       yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
+                       csound_prsset_lineno(1, yyscanner);
+                       if (UNLIKELY(PARM->depth>1022)) {
+                         csound->Message(csound,
+                                         Str("macros/include nested too deep: "));
+                         //csound->LongJmp(csound, 1);
+                         corfile_puts(csound, "$error", PARM->cf);
+                         err = 1;
                        }
                      }
-                     nn->body[i] = '\0';
-                     csound->Message(csound, "as...#%s#\n", nn->body);
-                     nn->acnt = 0;       /* No arguments for arguments */
-                     nn->next = PARM->macros;
-                     PARM->macros = nn;
-                   }
-                   //csound->DebugMsg(csound,"New body: ...#%s#\n", mm->body);
-                   if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
-                     PARM->alt_stack =
-                       (MACRON*)
-                       csound->ReAlloc(csound, PARM->alt_stack,
-                                       sizeof(MACRON)*(PARM->macro_stack_size+=10));
-                     if (UNLIKELY(PARM->alt_stack == NULL)) {
-                       csound->Message(csound, Str("Memory exhausted"));
-                       csound->LongJmp(csound, 1);
+                     if (!err) {
+                       PARM->lstack[++PARM->depth] =
+                         (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
+                       yy_scan_string(mm->body, yyscanner);
                      }
-                     /* csound->DebugMsg(csound, "alt_stack now %d long\n", */
-                     /*                  PARM->macro_stack_size); */
-                   }
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = PARM->macros->acnt;
-                   PARM->alt_stack[PARM->macro_stack_ptr++].s = PARM->macros;
-                   PARM->alt_stack[PARM->macro_stack_ptr].n = 0;
-                   PARM->alt_stack[PARM->macro_stack_ptr].line =
-                     csound_prsget_lineno(yyscanner);
-                   PARM->alt_stack[PARM->macro_stack_ptr].s = NULL;
-                   yypush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
-                   if (PARM->depth++>1024) {
-                     csound->Die(csound, Str("Includes nested too deeply"));
                    }
-                   csound_prsset_lineno(1, yyscanner);
-                   if (PARM->depth>1022) {
-                     csound->Message(csound,
-                                     Str("macros/include nested too deep: "));
-                     csound->LongJmp(csound, 1);
-                   }
-                   PARM->lstack[PARM->depth] =
-                     (strchr(mm->body,'\n') ?file_to_int(csound, mname) : 63);
-                   yy_scan_string(mm->body, yyscanner);
                  }
 {INCLUDE}       {
                   if (PARM->isString != 1)
                     BEGIN(incl);
                   else
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                 }
 <incl>[ \t]*     /* eat the whitespace */
 <incl>.         { /* got the include file name */
@@ -473,8 +343,8 @@ NM              [nm]
                 }
 {EXIT}          {
                   //printf("exit found: >>>%s<<<\n", PARM->cf->body);
-                  corfile_putc('\0', PARM->cf);
-                  corfile_putc('\0', PARM->cf);
+                  corfile_putc(csound, '\0', PARM->cf);
+                  corfile_putc(csound, '\0', PARM->cf);
                   delete_macros(csound, yyscanner);
                   return 0;
                 }
@@ -542,7 +412,7 @@ NM              [nm]
                   if (PARM->isString != 1)
                     BEGIN(macro);
                   else
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                 }
 <macro>[ \t]*    /* eat the whitespace */
 <macro>{MACROB} {
@@ -572,7 +442,7 @@ NM              [nm]
                   if (PARM->isString != 1)
                     BEGIN(umacro);
                   else
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                 }
 <umacro>[ \t]*    /* eat the whitespace */
 <umacro>{MACRO}  {
@@ -586,12 +456,12 @@ NM              [nm]
                     PARM->isIfndef = (yytext[3] == 'n');  /* #ifdef or #ifndef */
                     csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', PARM->cf);
+                    corfile_putc(csound, '\n', PARM->cf);
                     csound_prs_line(PARM->cf, yyscanner);
                     BEGIN(ifdef);
                   }
                   else {
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                   }
                 }
 <ifdef>[ \t]*     /* eat the whitespace */
@@ -601,23 +471,23 @@ NM              [nm]
                 }
 {ELSE}          {
                   if (PARM->isString != 1) {
-                    if (PARM->ifdefStack == NULL) {
+                    if (UNLIKELY(PARM->ifdefStack == NULL)) {
                       csound->Message(csound, Str("#else without #if\n"));
                       csound->LongJmp(csound, 1);
                     }
-                    else if (PARM->ifdefStack->isElse) {
+                    else if (UNLIKELY(PARM->ifdefStack->isElse)) {
                       csound->Message(csound, Str("#else after #else\n"));
                       csound->LongJmp(csound, 1);
                     }
                     PARM->ifdefStack->isElse = 1;
                     csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', PARM->cf);
+                    corfile_putc(csound, '\n', PARM->cf);
                     csound_prs_line(PARM->cf, yyscanner);
                     do_ifdef_skip_code(csound, yyscanner);
                   }
                   else {
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                   }
                 }
 {END}           {
@@ -630,22 +500,22 @@ NM              [nm]
                     PARM->ifdefStack = pp->prv;
                     csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),
                                          yyscanner);
-                    corfile_putc('\n', PARM->cf);
+                    corfile_putc(csound, '\n', PARM->cf);
                     csound_prs_line(PARM->cf, yyscanner);
                     mfree(csound, pp);
                   }
                   else {
-                    corfile_puts(yytext, PARM->cf);
+                    corfile_puts(csound, yytext, PARM->cf);
                   }
                 }
 {NM}            {
-                  corfile_putc(yytext[0], PARM->cf);
+                  corfile_putc(csound, yytext[0], PARM->cf);
                   if (!PARM->isString) BEGIN(lname);
                 }
 <lname>[ \t]*     /* eat the whitespace */
 <lname>{IDENT}   {
-                  corfile_putc(' ', PARM->cf);
-                  corfile_puts(yytext, PARM->cf);
+                  corfile_putc(csound, ' ', PARM->cf);
+                  corfile_puts(csound, yytext, PARM->cf);
                   BEGIN(INITIAL);
                 }
 
@@ -664,10 +534,33 @@ NM              [nm]
                   do {
                     c = input(yyscanner);
                   } while (isblank(c));
-                  while (isdigit(c)) {
+                  if (c=='$') { // macro to yield count
+                    char buf[256];
+                    int i=0;
+                    MACRO* mm;
+                    //printf("*** macro count\n");
+                    while (!isblank(c=input(yyscanner)) && c!='.') {
+                      buf[i++] = c;
+                    }
+                    if (c=='.') c = input(yyscanner);
+                    buf[i] = '\0';
+                    //printf("*** lookup macro %s\n", buf);
+                    if ((mm = find_definition(PARM->macros, buf))==NULL) {
+                      csound->Message(csound,Str("Undefined macro: '%s'"), yytext);
+                     //csound->LongJmp(csound, 1);
+                     corfile_puts(csound, "$error", PARM->cf);
+                     PARM->repeat_cnt_n[PARM->repeat_index] = 0;
+                    }
+                   else
                     PARM->repeat_cnt_n[PARM->repeat_index] =
+                      atoi(mm->body);
+                  }
+                  else {
+                    while (isdigit(c)) {
+                      PARM->repeat_cnt_n[PARM->repeat_index] =
                       10 * PARM->repeat_cnt_n[PARM->repeat_index] + c - '0';
-                    c = input(yyscanner);
+                      c = input(yyscanner);
+                    }
                   }
                   if (UNLIKELY(PARM->repeat_cnt_n[PARM->repeat_index] <= 0
                                || !isspace(c)))
@@ -679,13 +572,13 @@ NM              [nm]
                       st[j] = ' ';
                       st[j+1] = '\0';
                     }
-                    if (csound->oparms->odebug)
+                    if (UNLIKELY(csound->oparms->odebug))
                       csound->Message(csound, Str("%s Nested LOOP=%d Level:%d\n"),
                                       st, PARM->repeat_cnt_n[PARM->repeat_index],
                               PARM->repeat_index);
                   }
                   else {
-                    if (csound->oparms->odebug)
+                    if (UNLIKELY(csound->oparms->odebug))
                       csound->Message(csound, Str("External LOOP=%d Level:%d\n"),
                               PARM->repeat_cnt_n[PARM->repeat_index],
                               PARM->repeat_index);
@@ -722,18 +615,18 @@ NM              [nm]
                   PARM->macros = PARM->repeat_mm_n[PARM->repeat_index];
                   while (input(yyscanner)!='\n') {}
                   PARM->cf_stack[PARM->repeat_index] = PARM->cf;
-                  PARM->cf = corfile_create_w();
+                  PARM->cf = corfile_create_w(csound);
         }
 "}"     {
           int temp;
           CORFIL *bdy = PARM->cf;
-          if ((temp=PARM->repeat_cnt_n[PARM->repeat_index])==0) {
+          if (UNLIKELY((temp=PARM->repeat_cnt_n[PARM->repeat_index])==0)) {
             csound->Message(csound, Str("unmatched } in score\n"));
             csound->LongJmp(csound, 1);
           }
-          corfile_puts("#loop", PARM->cf);
-          corfile_putc('\0', PARM->cf);
-          corfile_putc('\0', PARM->cf);
+          corfile_puts(csound, "#loop", PARM->cf);
+          corfile_putc(csound, '\0', PARM->cf);
+          corfile_putc(csound, '\0', PARM->cf);
           PARM->cf = PARM->cf_stack[PARM->repeat_index];
           //printf("****Repeat body\n>>>%s<<<\n", bdy->body);
           PARM->repeat_mm_n[PARM->repeat_index]->acnt = 0; /* uninhibit */
@@ -781,18 +674,19 @@ NM              [nm]
           else {
             //printf("*** end loop\n");
             //printf(">>%s<<\n", PARM->cf->body);
-            corfile_rm(&PARM->cf_stack[PARM->repeat_index]);
+            corfile_rm(csound, &PARM->cf_stack[PARM->repeat_index]);
             PARM->repeat_index--;
           }
        }
-"r"    {
-         if (PARM->isString) corfile_putc('r', PARM->cf);
+{ROP}  {
+         if (PARM->isString) corfile_puts(csound, yytext, PARM->cf);
          else {
            int c, i;
            char buff[120];
-           corfile_putc('s', PARM->cf);
+           corfile_putc(csound, 's', PARM->cf);
+           corfile_putc(csound, '\n', PARM->cf);
            //printf("r detected\n");
-           if (PARM->in_repeat_sect)
+           if (UNLIKELY(PARM->in_repeat_sect))
              csound->Die(csound, Str("Section loops cannot be nested"));
            PARM->repeat_sect_cnt = 0;
            PARM->in_repeat_sect = 1; /* Mark as recording */
@@ -805,9 +699,11 @@ NM              [nm]
              c = input(yyscanner);
            }
            if (UNLIKELY(PARM->repeat_sect_cnt <= 0
-                        || !isspace(c)))
-             csound->Die(csound, Str("r: invalid repeat count"));
-           if (csound->oparms->odebug)
+                        || !isspace(c))) {
+             csound->Message(csound, Str("r: invalid repeat count"));
+             csound->LongJmp(csound, 1);
+           }
+           if (UNLIKELY(csound->oparms->odebug))
              csound->Message(csound, Str("r LOOP=%d\n"), PARM->repeat_sect_cnt);
            while (isblank(c)) {
              c = input(yyscanner);
@@ -844,16 +740,24 @@ NM              [nm]
            PARM->repeat_sect_index = 0;
            while (input(yyscanner)!='\n') {}
            PARM->repeat_sect_cf = PARM->cf;
-           PARM->cf = corfile_create_w();
+           PARM->cf = corfile_create_w(csound);
          }
         }
 {SEND}  {
           if (!PARM->isString) {
+            int op = yytext[strlen(yytext)-1];
             //printf("section end %d %c\n%s\n",
-            //       PARM->in_repeat_sect,yytext[0], PARM->cf->body);
+            //       PARM->in_repeat_sect, op, PARM->cf->body);
             if (PARM->in_repeat_sect==1) {
-              corfile_putc(yytext[0], PARM->cf);
-              corfile_putc('\n', PARM->cf);
+              corfile_putc(csound, 's', PARM->cf);
+              while (1) {
+                int c = input(yyscanner);
+                if (c=='\n') break;
+                if (!isspace(c)&&!isdigit(c)) { unput(c); break;}
+                corfile_putc(csound, c, PARM->cf);
+              }
+              corfile_putc(csound, '\n', PARM->cf);
+              unput(op);
               PARM->in_repeat_sect=2;
               //printf("****Repeat body\n>>>%s<<<\n", PARM->cf->body);
               if (PARM->repeat_sect_mm)
@@ -865,14 +769,19 @@ NM              [nm]
               PARM->line = PARM->repeat_sect_line;
             }
             else if (PARM->in_repeat_sect==2) {
+              corfile_putc(csound, 's', PARM->cf);
+              while (1) {
+                int c = input(yyscanner);
+                if (c=='\n') break;
+                corfile_putc(csound, c, PARM->cf);
+              }
+              corfile_putc(csound, '\n', PARM->cf);
               yypop_buffer_state(yyscanner);
               PARM->llocn = PARM->locn; PARM->locn = make_location(PARM);
               //printf("repeat section %d %d\n",
               //       PARM->repeat_sect_index,PARM->repeat_sect_cnt);
               PARM->repeat_sect_index++;
               if (PARM->repeat_sect_index<PARM->repeat_sect_cnt) {
-                corfile_putc('s', PARM->cf);
-                corfile_putc('\n', PARM->cf);
                 if (PARM->repeat_sect_mm) {
                   snprintf(PARM->repeat_sect_mm->body, 16, "%d",
                            PARM->repeat_sect_index);
@@ -884,21 +793,29 @@ NM              [nm]
                 PARM->line = PARM->repeat_sect_line;
               }
               else {
-                corfile_putc(yytext[0], PARM->cf);
-                corfile_putc('\n', PARM->cf);
+                /* corfile_putc(csound, op, PARM->cf); */
+                /* corfile_putc(csound, '\n', PARM->cf); */
                 //printf("end of loop\n");
                 PARM->in_repeat_sect=0;
-                corfile_rm(&PARM->repeat_sect_cf);
+                corfile_rm(csound, &PARM->repeat_sect_cf);
                 //csound->Free(csound, PARM->repeat_sect_mm->body);
                 //PARM->repeat_sect_mm->body = NULL;
               }
             }
-            else
-              corfile_putc(yytext[0], PARM->cf);
+            else {
+              corfile_putc(csound, op, PARM->cf);
+                /* while (1) { */
+                /*   int c = input(yyscanner); */
+                /*   printf("**copy %.2x(%c)\n", c, c); */
+                /*   corfile_putc(csound, c, PARM->cf); */
+                /*   if (c=='\n') break; */
+                /*   if (c=='\0') break; */
+                /* } */
+            }
           }
-          else corfile_putc(yytext[0], PARM->cf);
+          else corfile_puts(csound, yytext, PARM->cf);
         }
-.       { corfile_putc(yytext[0], PARM->cf); }
+.       { corfile_putc(csound, yytext[0], PARM->cf); }
 
 %%
 static void comment(yyscan_t yyscanner)              /* Skip until nextline */
@@ -906,14 +823,14 @@ static void comment(yyscan_t yyscanner)              /* Skip until nextline */
     char c;
     struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
     while ((c = input(yyscanner)) != '\n' && c != '\r') { /* skip */
-      if ((int)c == EOF) {
+      if (UNLIKELY((int)c == EOF)) {
         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
           YY_BUFFER_EOF_PENDING;
         return;
       }
     }
     if (c == '\r' && (c = input(yyscanner)) != '\n') {
-      if ((int)c != EOF)
+      if (LIKELY((int)c != EOF))
         unput(c);
       else
         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
@@ -966,12 +883,16 @@ static void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
     CORFIL *cf;
     struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
     while ((c=input(yyscanner))!=term) {
+      if (c=='\n' || c==EOF) {
+        csound->Warning(csound, Str("Ill formed #include ignored"));
+        return;
+      }
       buffer[p] = c;
       p++;
     }
     buffer[p] = '\0';
     while ((c=input(yyscanner))!='\n');
-    if (PARM->depth++>=1024) {
+    if (UNLIKELY(PARM->depth++>=1024)) {
       csound->Die(csound, Str("Includes nested too deeply"));
     }
     csound_prsset_lineno(1+csound_prsget_lineno(yyscanner), yyscanner);
@@ -984,14 +905,14 @@ static void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
       //sprintf(bb, "#source %llu\n", PARM->locn = make_location(PARM));
       PARM->llocn = PARM->locn;
 #ifdef SCORE_PARSER
-      //corfile_puts(bb, PARM->cf);
+      //corfile_puts(csound, bb, PARM->cf);
 #endif
     }
     csound->DebugMsg(csound,"reading included file \"%s\"\n", buffer);
-    if (isDir(buffer))
+    if (UNLIKELY(isDir(buffer)))
       csound->Warning(csound, Str("%s is a directory; not including"), buffer);
     cf = copy_to_corefile(csound, buffer, "INCDIR", 0);
-    if (cf == NULL)
+    if (UNLIKELY(cf == NULL))
       csound->Die(csound,
                   Str("Cannot open #include'd file %s\n"), buffer);
     if (UNLIKELY(PARM->macro_stack_ptr >= PARM->macro_stack_size )) {
@@ -1012,7 +933,7 @@ static void do_include(CSOUND *csound, int term, yyscan_t yyscanner)
     PARM->alt_stack[PARM->macro_stack_ptr++].s = NULL;
     csound_prspush_buffer_state(YY_CURRENT_BUFFER, yyscanner);
     csound_prs_scan_string(cf->body, yyscanner);
-    corfile_rm(&cf);
+    corfile_rm(csound, &cf);
     csound->DebugMsg(csound,"Set line number to 1\n");
     csound_prsset_lineno(1, yyscanner);
 }
@@ -1104,28 +1025,29 @@ static void do_macro_arg(CSOUND *csound, char *name0, yyscan_t yyscanner)
     free(mname);
     c = input(yyscanner);
     while (c!='#') {
-      if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+      if (UNLIKELY(c==EOF)) csound->Die(csound, Str("define macro runaway\n"));
       else if (c==';') {
         while ((c=input(yyscanner))!= '\n')
-          if (c==EOF) {
+          if (UNLIKELY(c==EOF)) {
             csound->Die(csound, Str("define macro runaway\n"));
           }
       }
       else if (c=='/') {
         if ((c=input(yyscanner))=='/') {
           while ((c=input(yyscanner))!= '\n')
-            if (c==EOF)
+            if (UNLIKELY(c==EOF))
               csound->Die(csound, Str("define macro runaway\n"));
         }
         else if (c=='*') {
           while ((c=input(yyscanner))!='*') {
           again:
-            if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+            if (UNLIKELY(c==EOF))
+              csound->Die(csound, Str("define macro runaway\n"));
           }
           if ((c=input(yyscanner))!='/') goto again;
         }
       }
-      else if (!isspace(c))
+      else if (UNLIKELY(!isspace(c)))
         csound->Die(csound,
                Str("define macro unexpected character %c(0x%.2x) awaiting #\n"),
                     c, c);
@@ -1177,7 +1099,7 @@ static void do_macro_arg(CSOUND *csound, char *name0, yyscan_t yyscanner)
       }
       if (UNLIKELY(c == '\n' || c == '\r')) {
         csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),yyscanner);
-        corfile_putc('\n', PARM->cf);
+        corfile_putc(csound, '\n', PARM->cf);
         csound_prs_line(PARM->cf, yyscanner);
       }
     }
@@ -1207,28 +1129,29 @@ static void do_macro(CSOUND *csound, char *name0, yyscan_t yyscanner)
     mm->acnt = 0;
     i = 0;
     while ((c = input(yyscanner)) != '#') {
-      if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+      if (UNLIKELY(c==EOF)) csound->Die(csound, Str("define macro runaway\n"));
       else if (c==';') {
         while ((c=input(yyscanner))!= '\n')
-          if (c==EOF) {
+          if (UNLIKELY(c==EOF)) {
             csound->Die(csound, Str("define macro runaway\n"));
           }
       }
       else if (c=='/') {
         if ((c=input(yyscanner))=='/') {
           while ((c=input(yyscanner))!= '\n')
-            if (c==EOF)
+            if (UNLIKELY(c==EOF))
               csound->Die(csound, Str("define macro runaway\n"));
         }
         else if (c=='*') {
           while ((c=input(yyscanner))!='*') {
           again:
-            if (c==EOF) csound->Die(csound, Str("define macro runaway\n"));
+            if (UNLIKELY(c==EOF))
+              csound->Die(csound, Str("define macro runaway\n"));
           }
           if ((c=input(yyscanner))!='/') goto again;
         }
       }
-      else if (!isspace(c))
+      else if (UNLIKELY(!isspace(c)))
         csound->Die(csound,
                     Str("define macro unexpected character %c(0x%.2x)"
                         "awaiting #\n"),
@@ -1262,7 +1185,7 @@ static void do_macro(CSOUND *csound, char *name0, yyscan_t yyscanner)
       }
       if (UNLIKELY(c == '\n' || c == '\r')) {
         csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),yyscanner);
-        corfile_putc('\n', PARM->cf);
+        corfile_putc(csound, '\n', PARM->cf);
         csound_prs_line(PARM->cf, yyscanner);
       }
     }
@@ -1354,7 +1277,7 @@ static void do_ifdef_skip_code(CSOUND *csound, yyscan_t yyscanner)
     }
       csound_prsset_lineno(1+csound_prsget_lineno(yyscanner),
                            yyscanner);
-      corfile_putc('\n', PARM->cf);
+      corfile_putc(csound, '\n', PARM->cf);
       csound_prs_line(PARM->cf, yyscanner);
       while (isblank(c = input(yyscanner)));  /* eat the whitespace */
       if (c == '#') {
@@ -1372,7 +1295,7 @@ static void do_ifdef_skip_code(CSOUND *csound, yyscan_t yyscanner)
           nested_ifdef++;
         }
         else if (strcmp("else", buf) == 0 && nested_ifdef == 0) {
-          if (pp->isElse) {
+          if (UNLIKELY(pp->isElse)) {
             csound->Message(csound, Str("#else after #else\n"));
             csound->LongJmp(csound, 1);
           }
@@ -1410,8 +1333,8 @@ void cs_init_smacros(CSOUND *csound, PRS_PARM *qq, NAMES *nn)
 
       if (p == NULL)
         p = s + strlen(s);
-      if (csound->oparms->msglevel & 7)
-        csound->Message(csound, Str("Macro definition for %*s\n"), p - s, s);
+      if (UNLIKELY(csound->oparms->msglevel & 7))
+        csound->Message(csound, Str("Macro definition for %*s\n"), (int) (p - s), s);
       s = strchr(s, ':') + 1;                   /* skip arg bit */
       if (UNLIKELY(s == NULL || s >= p)) {
         csound->Die(csound, Str("Invalid macro name for --smacro"));
@@ -1485,6 +1408,9 @@ static void csound_prs_line(CORFIL* cf, void *yyscanner)
 static MACRO *find_definition(MACRO *mmo, char *s)
 {
     MACRO *mm = mmo;
+    if (s[strlen(s)-1]=='.') s[strlen(s)-1]='\0';
+    else if (s[strlen(s)-2]=='.' && s[strlen(s)-1]=='(') {
+      s[strlen(s)-2] = '('; s[strlen(s)-1] = '\0'; }
     //printf("****Looking for %s\n", s);
     while (mm != NULL) {  /* Find the definition */
       //printf("looking at %p(%s) body #%s#\n", mm, mm->name, mm->body);
diff --git a/Engine/csound_sco.lex b/Engine/csound_sco.lex
index b5226ba..175a2d7 100644
--- a/Engine/csound_sco.lex
+++ b/Engine/csound_sco.lex
@@ -168,7 +168,7 @@ ${CPPX}         { return T_CPP; }
                   yyterminate();
                 }
 
-.               { fprintf(stderr, "unknown character %c(%.2x)\n", 
+.               { fprintf(stderr, "unknown character %c(%.2x)\n",
                           yytext[0], yytext[0]);
                 }
 
diff --git a/Engine/csound_standard_types.c b/Engine/csound_standard_types.c
index 6edcc92..1f3c9b3 100644
--- a/Engine/csound_standard_types.c
+++ b/Engine/csound_standard_types.c
@@ -30,16 +30,19 @@
 /* MEMORY COPYING FUNCTIONS */
 
 void myflt_copy_value(void* csound, void* dest, void* src) {
+  IGN(csound);
     MYFLT* f1 = (MYFLT*)dest;
     MYFLT* f2 = (MYFLT*)src;
     *f1 = *f2;
 }
 
 void asig_copy_value(void* csound, void* dest, void* src) {
+    IGN(csound);
     memcpy(dest, src, sizeof(MYFLT) * ((CSOUND*)csound)->ksmps);
 }
 
 void wsig_copy_value(void* csound, void* dest, void* src) {
+    IGN(csound);
     memcpy(dest, src, sizeof(SPECDAT));
     //TODO - check if this needs to copy SPECDAT's DOWNDAT member and AUXCH
 }
@@ -166,6 +169,7 @@ void arrayInitMemory(void *csound, CS_VARIABLE* var, MYFLT* memblock) {
 }
 
 void varInitMemoryString(void *csound, CS_VARIABLE* var, MYFLT* memblock) {
+    IGN(var);
     STRINGDAT *str = (STRINGDAT *)memblock;
     CSOUND* cs = (CSOUND*)csound;
     str->data = (char *) cs->Calloc(csound, 8);
@@ -174,6 +178,7 @@ void varInitMemoryString(void *csound, CS_VARIABLE* var, MYFLT* memblock) {
 }
 
 void varInitMemoryFsig(void *csound, CS_VARIABLE* var, MYFLT* memblock) {
+    IGN(var);
     PVSDAT *fsig = (PVSDAT *)memblock;
     IGN(csound);
     memset(fsig, 0, sizeof(PVSDAT));  /* VL: clear memory for now */
@@ -291,7 +296,7 @@ void array_free_var_mem(void* csnd, void* p) {
             for (i = 1; i < dat->dimensions; i++) {
                 size *= dat->sizes[i];
             }
-            size = MYFLT2LRND(size);
+            //size = MYFLT2LRND(size); // size is not a float  but int
             for (i = 0; i < size; i++) {
                 arrayType->freeVariableMemory(csound,
                                               mem+ (i * memMyfltSize));
@@ -301,7 +306,7 @@ void array_free_var_mem(void* csnd, void* p) {
         csound->Free(csound, dat->data);
     }
 
-    if(dat->sizes != NULL) {
+    if (dat->sizes != NULL) {
         csound->Free(csound, dat->sizes);
     }
 }
diff --git a/Engine/csound_type_system.c b/Engine/csound_type_system.c
index 60683ba..8b6a423 100644
--- a/Engine/csound_type_system.c
+++ b/Engine/csound_type_system.c
@@ -151,24 +151,22 @@ CS_VARIABLE* csoundCreateVariable(void* csound, TYPE_POOL* pool,
                                   CS_TYPE* type, char* name, void* typeArg)
 {
     CS_TYPE_ITEM* current = pool->head;
-    if(type != NULL)
-    while (current != NULL) {
-      if (strcmp(type->varTypeName, current->cstype->varTypeName) == 0) {
-        CS_VARIABLE* var = current->cstype->createVariable(csound, typeArg);
-        var->varType = type;
-        var->varName = cs_strdup(csound, name);
-        return var;
+    if (LIKELY(type != NULL))
+      while (current != NULL) {
+        if (strcmp(type->varTypeName, current->cstype->varTypeName) == 0) {
+          CS_VARIABLE* var = current->cstype->createVariable(csound, typeArg);
+          var->varType = type;
+          var->varName = cs_strdup(csound, name);
+          return var;
+        }
+        current = current->next;
       }
-      current = current->next;
-    }
     else ((CSOUND *)csound)->ErrorMsg(csound,
                                       Str("cannot create variable %s: NULL type"),
                                       name);
     return NULL;
 }
 
-//CS_VARIABLE* csoundFindVariableWithName(CSOUND* csound, CS_VAR_POOL* pool,
-//                                        const char* name) {
 CS_VARIABLE* csoundFindVariableWithName(CSOUND* csound, CS_VAR_POOL* pool,
                                         const char* name)
 {
diff --git a/Engine/entry1.c b/Engine/entry1.c
index c4a8d62..54a69e5 100644
--- a/Engine/entry1.c
+++ b/Engine/entry1.c
@@ -94,9 +94,9 @@ OENTRY opcodlst_1[] = {
 
   /* IV - Sep 8 2002 - added entries for user defined opcodes, xin, xout */
   /* and setksmps */
-  { "##userOpcode", S(UOPCODE),0, 7, "", "", useropcdset, useropcd, useropcd },
+  { "##userOpcode", S(UOPCODE),0, 7, "", "", useropcdset, useropcd, useropcd, NULL },
   /* IV - Sep 10 2002: removed perf time routines of xin and xout */
-  { "xin",  S(XIN_MAX),0,   1,  "****************", "",  xinset,  NULL, NULL },
+  { "xin",  S(XIN_MAX),0,   1,  "****************", "",  xinset,  NULL, NULL, NULL },
   /* { "xin.64",   S(XIN_HIGH),0,  1,
     "****************************************************************", "",
     xinset,  NULL, NULL },
@@ -106,7 +106,7 @@ OENTRY opcodlst_1[] = {
     "****************************************************************"
     "****************************************************************", "",
     xinset,  NULL, NULL },*/
-  { "xout", S(XOUT_MAX),0,  1,  "",         "*", xoutset, NULL, NULL },
+  { "xout", S(XOUT_MAX),0,  1,  "",         "*", xoutset, NULL, NULL, NULL },
   { "setksmps", S(SETKSMPS),0,  1,  "",   "i", setksmpsset, NULL, NULL },
   { "ctrlinit",S(CTLINIT),0,1,      "",  "im", ctrlinit, NULL, NULL, NULL},
   { "massign",S(MASSIGN), 0,1,      "",  "iip",massign_p, NULL, NULL, NULL},
@@ -152,6 +152,8 @@ OENTRY opcodlst_1[] = {
   { "==.0",     S(RELAT),0,   0,      "B",    "kk",   eq,     eq              },
   { "!=",     S(RELAT),0,   0,      "b",    "ii",   ne,     ne              },
   { "!=.0",     S(RELAT),0,   0,      "B",    "kk",   ne,     ne              },
+  { "!",      S(LOGCL),0,   0,      "b",    "b",    b_not,    b_not         },
+  { "!.0",      S(LOGCL),0, 0,      "B",    "B",    b_not,    b_not         },
   { "&&",     S(LOGCL),0,   0,      "b",    "bb",   and,    and             },
   { "&&.0",     S(LOGCL),0,   0,      "B",    "BB",   and,    and             },
   { "||",     S(LOGCL),0,   0,      "b",    "bb",   or,     or              },
@@ -638,6 +640,7 @@ OENTRY opcodlst_1[] = {
   { "mclock", S(MCLOCK),0,  3,      "",     "i",    mclock_set, mclock,   NULL },
   { "mrtmsg", S(XTRADUR),0, 1,      "",     "i",    mrtmsg,     NULL,     NULL },
   { "midiout",S(MIDIOUT),0,  2,     "",     "kkkk", NULL, midiout,   NULL      },
+  { "midiout_i",S(MIDIOUT), 0,  1,     "",     "iiii", midiout,   NULL, NULL     },
   { "midion2", S(KON2),0,    3,     "",     "kkkk", kon2_set, kon2,   NULL     },
   { "nrpn",   S(NRPN),0,     2,     "",     "kkk",  NULL,  nrpn ,NULL          },
   { "mdelay", S(MDELAY),0,   3,     "",     "kkkkk",mdelay_set, mdelay,   NULL },
@@ -1067,6 +1070,8 @@ OENTRY opcodlst_1[] = {
     (SUBR) chnget_opcode_init_a, (SUBR) NULL, (SUBR) notinit_opcode_stub },
   { "chnget.S",    S(CHNGET),0,           3,      "S",            "S",
     (SUBR) chnget_opcode_init_S, (SUBR) chnget_opcode_perf_S, (SUBR) NULL},
+  { "chngetks",    S(CHNGET),0,           2,      "S",            "S",
+    (SUBR) NULL, (SUBR) chnget_opcode_perf_S, (SUBR) NULL},
   { "chnset",      0xFFFB,              _CW                               },
   { "chnset.i",    S(CHNGET),_CW,          1,      "",             "iS",
     (SUBR) chnset_opcode_init_i, (SUBR) NULL, (SUBR) NULL               },
@@ -1080,6 +1085,8 @@ OENTRY opcodlst_1[] = {
     (SUBR) chnset_opcode_init_a, (SUBR) NULL, (SUBR) notinit_opcode_stub },
   { "chnset.S",    S(CHNGET),_CW,           3,      "",             "SS",
     (SUBR) chnset_opcode_init_S, (SUBR) chnset_opcode_perf_S, (SUBR) NULL },
+  { "chnsetks",    S(CHNGET),_CW,           2,      "",             "SS",
+    (SUBR) NULL, (SUBR) chnset_opcode_perf_S, (SUBR) NULL },
   { "chnmix",      S(CHNGET),           _CB, 5,      "",             "aS",
     (SUBR) chnmix_opcode_init, (SUBR) NULL, (SUBR) notinit_opcode_stub  },
   { "chnclear",    S(CHNCLEAR),        _CW, 5,      "",             "S",
diff --git a/Engine/envvar.c b/Engine/envvar.c
index b4df695..a8d899f 100644
--- a/Engine/envvar.c
+++ b/Engine/envvar.c
@@ -158,20 +158,20 @@ PUBLIC int csoundSetGlobalEnv(const char *name, const char *value)
 {
     int   i;
 
-    if (name == NULL || name[0] == '\0' || (int) strlen(name) >= 32)
+    if (UNLIKELY(name == NULL || name[0] == '\0' || (int) strlen(name) >= 32))
       return -1;                        /* invalid name             */
     for (i = 0; i < 16; i++) {
       if ((value != NULL && globalEnvVarName(i)[0] == '\0') ||
           strcmp(name, globalEnvVarName(i)) == 0)
         break;
     }
-    if (i >= 16)                        /* not found / no free slot */
+    if (UNLIKELY(i >= 16))              /* not found / no free slot */
       return -1;
     if (value == NULL) {
       globalEnvVarName(i)[0] = '\0';    /* delete existing variable */
       return 0;
     }
-    if (strlen(value) >= 480)
+    if (UNLIKELY(strlen(value) >= 480))
       return -1;                        /* string value is too long */
     strcpy(globalEnvVarName(i), name);
     strcpy(globalEnvVarValue(i), value);
@@ -205,14 +205,14 @@ int csoundSetEnv(CSOUND *csound, const char *name, const char *value)
 
     oldValue = cs_hash_table_get(csound, csound->envVarDB, (char*)name);
     if (oldValue != NULL) {
-        csound->Free(csound, oldValue);
+      csound->Free(csound, oldValue);
     }
 
     cs_hash_table_put(csound, csound->envVarDB,
                       (char*)name, cs_strdup(csound, (char*)value));
 
     /* print debugging info if requested */
-    if (csound->oparms->odebug) {
+    if (UNLIKELY(csound->oparms->odebug)) {
       csoundMessage(csound, Str("Environment variable '%s' has been set to "),
                               name);
       if (value == NULL)
@@ -494,7 +494,7 @@ char **csoundGetSearchPathFromEnv(CSOUND *csound, const char *envList)
     strcpy(p->name, envList);
     s += ((int) strlen(envList) + 1);
     p->nxt = (searchPathCacheEntry_t*) csound->searchPathCache;
-    if (csound->oparms->odebug)
+    if (UNLIKELY(csound->oparms->odebug))
       csound->DebugMsg(csound, Str("Creating search path cache for '%s':"),
                                p->name);
     for (i = 0; (i < pathCnt) && (path_lst != NULL); i++) {
@@ -504,7 +504,7 @@ char **csoundGetSearchPathFromEnv(CSOUND *csound, const char *envList)
       nxt = path_lst->nxt;
       csound->Free(csound, path_lst);
       path_lst = nxt;
-      if (csound->oparms->odebug)
+      if (UNLIKELY(csound->oparms->odebug))
         csound->DebugMsg(csound, "%5d: \"%s\"", (i + 1), p->lst[i]);
     }
     p->lst[i] = NULL;
@@ -666,7 +666,7 @@ char *csoundSplitFilenameFromPath(CSOUND* csound, const char * path)
     int  len;
 
     if ((convPath = csoundConvertPathname(csound, path)) == NULL)
-        return NULL;
+      return NULL;
     lastIndex = strrchr(convPath, DIRSEP);
     len = strlen(lastIndex);
     filename = (char*) csound->Malloc(csound, len+1);
@@ -735,7 +735,7 @@ char *csoundGetDirectoryForPath(CSOUND* csound, const char * path) {
       // Should check ERANGE==errno
       //csoundDie(csound, Str("Current directory path name too long\n"));
       len =len+len; cwd = csound->ReAlloc(csound, cwd, len);
-      if (len>1024*1024)
+      if (UNLIKELY(len>1024*1024))
         csoundDie(csound, Str("Current directory path name too long\n"));
       goto again;
     }
@@ -793,7 +793,7 @@ static FILE *csoundFindFile_Std(CSOUND *csound, char **fullName,
     /* search paths defined by environment variable list */
     if (envList != NULL && envList[0] != '\0' &&
         (searchPath = csoundGetSearchPathFromEnv((CSOUND*) csound, envList))
-          != NULL) {
+        != NULL) {
       //len = (int) strlen(name) + 1;
       while (*searchPath != NULL) {
         name2 = csoundConcatenatePaths(csound, *searchPath, name);
@@ -855,7 +855,7 @@ static int csoundFindFile_Fd(CSOUND *csound, char **fullName,
     /* search paths defined by environment variable list */
     if (envList != NULL && envList[0] != '\0' &&
         (searchPath = csoundGetSearchPathFromEnv((CSOUND*) csound, envList))
-          != NULL) {
+        != NULL) {
       //len = (int) strlen(name) + 1;
       while (*searchPath != NULL) {
         name2 = csoundConcatenatePaths(csound, *searchPath, name);
@@ -998,8 +998,8 @@ char *csoundFindOutputFile(CSOUND *csound,
  */
 
 void *csoundFileOpenWithType(CSOUND *csound, void *fd, int type,
-                     const char *name, void *param, const char *env,
-                     int csFileType, int isTemporary)
+                             const char *name, void *param, const char *env,
+                             int csFileType, int isTemporary)
 {
     CSFILE  *p = NULL;
     char    *fullName = NULL;
@@ -1028,7 +1028,7 @@ void *csoundFileOpenWithType(CSOUND *csound, void *fd, int type,
       MultiByteToWideChar(CP_UTF8, 0, param, -1, wmode, sz);
       if (type == CSFILE_STD) {
         tmp_f = _wfopen(wfname, wmode);
-        if (tmp_f == NULL) {
+        if (UNLIKELY(tmp_f == NULL)) {
           /* csoundErrorMsg(csound, Str("csound->FileOpen2(\"%s\") failed: %s."), */
           /*                name, strerror(errno)); */
           goto err_return;
@@ -1039,7 +1039,7 @@ void *csoundFileOpenWithType(CSOUND *csound, void *fd, int type,
       if (type == CSFILE_STD) {
         fullName = (char*) name;
         tmp_f = fopen(fullName, (char*) param);
-        if (tmp_f == NULL) {
+        if (UNLIKELY(tmp_f == NULL)) {
           /* csoundErrorMsg(csound, Str("csound->FileOpen2(\"%s\") failed: %s."), */
           /*                name, strerror(errno)); */
           goto err_return;
@@ -1090,57 +1090,57 @@ void *csoundFileOpenWithType(CSOUND *csound, void *fd, int type,
 
     /* if sound file, re-open file descriptor with libsndfile */
     switch (type) {
-      case CSFILE_STD:                          /* stdio */
-        *((FILE**) fd) = tmp_f;
-        break;
-      case CSFILE_SND_R:                        /* sound file read */
-        memset(&sfinfo, 0, sizeof(SF_INFO));
-        p->sf = sf_open_fd(tmp_fd, SFM_READ, &sfinfo, 0);
-        if (p->sf == (SNDFILE*) NULL) {
-          int   extPos;
-          /* open failed: */
-          extPos = (nbytes - (int) sizeof(CSFILE)) - 4;
-          /* check for .sd2 file first */
-          if (extPos > 0 &&
-              p->fullName[extPos] == (char) '.' &&
-              (p->fullName[extPos + 1] | (char) 0x20) == (char) 's' &&
-              (p->fullName[extPos + 2] | (char) 0x20) == (char) 'd' &&
-              p->fullName[extPos + 3] == (char) '2') {
-            memset(&sfinfo, 0, sizeof(SF_INFO));
-            p->sf = sf_open(&(p->fullName[0]), SFM_READ, &sfinfo);
-            if (p->sf != (SNDFILE*) NULL) {
-              /* if successfully opened as .sd2, */
-              /* the integer file descriptor is no longer needed */
-              close(tmp_fd);
-              p->fd = tmp_fd = -1;
-              sf_command(p->sf, SFC_SET_VBR_ENCODING_QUALITY,
-                         &csound->oparms->quality, sizeof(double));
-             goto doneSFOpen;
-            }
+    case CSFILE_STD:                          /* stdio */
+      *((FILE**) fd) = tmp_f;
+      break;
+    case CSFILE_SND_R:                        /* sound file read */
+      memset(&sfinfo, 0, sizeof(SF_INFO));
+      p->sf = sf_open_fd(tmp_fd, SFM_READ, &sfinfo, 0);
+      if (p->sf == (SNDFILE*) NULL) {
+        int   extPos;
+        /* open failed: */
+        extPos = (nbytes - (int) sizeof(CSFILE)) - 4;
+        /* check for .sd2 file first */
+        if (extPos > 0 &&
+            p->fullName[extPos] == (char) '.' &&
+            (p->fullName[extPos + 1] | (char) 0x20) == (char) 's' &&
+            (p->fullName[extPos + 2] | (char) 0x20) == (char) 'd' &&
+            p->fullName[extPos + 3] == (char) '2') {
+          memset(&sfinfo, 0, sizeof(SF_INFO));
+          p->sf = sf_open(&(p->fullName[0]), SFM_READ, &sfinfo);
+          if (p->sf != (SNDFILE*) NULL) {
+            /* if successfully opened as .sd2, */
+            /* the integer file descriptor is no longer needed */
+            close(tmp_fd);
+            p->fd = tmp_fd = -1;
+            sf_command(p->sf, SFC_SET_VBR_ENCODING_QUALITY,
+                       &csound->oparms->quality, sizeof(double));
+            goto doneSFOpen;
           }
-          /* maybe raw file ? rewind and try again */
-          if (lseek(tmp_fd, (off_t) 0, SEEK_SET) == (off_t) 0)
-            p->sf = sf_open_fd(tmp_fd, SFM_READ, (SF_INFO*) param, 0);
-          if (UNLIKELY(p->sf == (SNDFILE*) NULL))
-            goto err_return;
         }
-        else {
- doneSFOpen:
-          memcpy((SF_INFO*) param, &sfinfo, sizeof(SF_INFO));
-        }
-        *((SNDFILE**) fd) = p->sf;
-        break;
-      case CSFILE_SND_W:                        /* sound file write */
-        p->sf = sf_open_fd(tmp_fd, SFM_WRITE, (SF_INFO*) param, 0);
+        /* maybe raw file ? rewind and try again */
+        if (lseek(tmp_fd, (off_t) 0, SEEK_SET) == (off_t) 0)
+          p->sf = sf_open_fd(tmp_fd, SFM_READ, (SF_INFO*) param, 0);
         if (UNLIKELY(p->sf == (SNDFILE*) NULL))
           goto err_return;
-        sf_command(p->sf, SFC_SET_CLIPPING, NULL, SF_TRUE);
-        sf_command(p->sf, SFC_SET_VBR_ENCODING_QUALITY,
-                   &csound->oparms->quality, sizeof(double));
-        *((SNDFILE**) fd) = p->sf;
-        break;
-      default:                                  /* low level I/O */
-        *((int*) fd) = tmp_fd;
+      }
+      else {
+      doneSFOpen:
+        memcpy((SF_INFO*) param, &sfinfo, sizeof(SF_INFO));
+      }
+      *((SNDFILE**) fd) = p->sf;
+      break;
+    case CSFILE_SND_W:                        /* sound file write */
+      p->sf = sf_open_fd(tmp_fd, SFM_WRITE, (SF_INFO*) param, 0);
+      if (UNLIKELY(p->sf == (SNDFILE*) NULL))
+        goto err_return;
+      sf_command(p->sf, SFC_SET_CLIPPING, NULL, SF_TRUE);
+      sf_command(p->sf, SFC_SET_VBR_ENCODING_QUALITY,
+                 &csound->oparms->quality, sizeof(double));
+      *((SNDFILE**) fd) = p->sf;
+      break;
+    default:                                  /* low level I/O */
+      *((int*) fd) = tmp_fd;
     }
     /* link into chain of open files */
     if (csound->open_files != NULL)
@@ -1149,7 +1149,7 @@ void *csoundFileOpenWithType(CSOUND *csound, void *fd, int type,
     /* notify the host if it asked */
     if (csound->FileOpenCallback_ != NULL) {
       int writing = (type == CSFILE_SND_W || type == CSFILE_FD_W ||
-                      (type == CSFILE_STD && ((char*)param)[0] == 'w'));
+                     (type == CSFILE_STD && ((char*)param)[0] == 'w'));
       if (csFileType == CSFTYPE_UNKNOWN_AUDIO && type == CSFILE_SND_R)
         csFileType = sftype2csfiletype(((SF_INFO*)param)->format);
       csound->FileOpenCallback_(csound, p->fullName, csFileType,
@@ -1217,22 +1217,22 @@ void *csoundCreateFileHandle(CSOUND *csound,
     strcpy(&(p->fullName[0]), fullName);
     /* open file */
     switch (type) {
-      case CSFILE_FD_R:
-      case CSFILE_FD_W:
-        p->fd = *((int*) fd);
-        break;
-      case CSFILE_STD:
-        p->f = *((FILE**) fd);
-        break;
-      case CSFILE_SND_R:
-      case CSFILE_SND_W:
-        p->sf = *((SNDFILE**) fd);
-        break;
-      default:
-        csoundErrorMsg(csound, Str("internal error: csoundCreateFileHandle(): "
-                                   "invalid type: %d"), type);
-        csound->Free(csound, p);
-        return NULL;
+    case CSFILE_FD_R:
+    case CSFILE_FD_W:
+      p->fd = *((int*) fd);
+      break;
+    case CSFILE_STD:
+      p->f = *((FILE**) fd);
+      break;
+    case CSFILE_SND_R:
+    case CSFILE_SND_W:
+      p->sf = *((SNDFILE**) fd);
+      break;
+    default:
+      csoundErrorMsg(csound, Str("internal error: csoundCreateFileHandle(): "
+                                 "invalid type: %d"), type);
+      csound->Free(csound, p);
+      return NULL;
     }
     /* link into chain of open files */
     if (csound->open_files != NULL)
@@ -1261,9 +1261,9 @@ int csoundFileClose(CSOUND *csound, void *fd)
     CSFILE  *p = (CSFILE*) fd;
     int     retval = -1;
     if (p->async_flag == ASYNC_GLOBAL) {
-     csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
-     /* close file */
-    switch (p->type) {
+      csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
+      /* close file */
+      switch (p->type) {
       case CSFILE_FD_R:
       case CSFILE_FD_W:
         retval = close(p->fd);
@@ -1273,27 +1273,27 @@ int csoundFileClose(CSOUND *csound, void *fd)
         break;
       case CSFILE_SND_R:
       case CSFILE_SND_W:
-        if(p->sf)
-        retval = sf_close(p->sf);
+        if (p->sf)
+          retval = sf_close(p->sf);
         p->sf = NULL;
         if (p->fd >= 0)
           retval |= close(p->fd);
         break;
-    }
-    /* unlink from chain of open files */
-    if (p->prv == NULL)
-      csound->open_files = (void*) p->nxt;
-    else
-      p->prv->nxt = p->nxt;
-    if (p->nxt != NULL)
-      p->nxt->prv = p->prv;
-    if(p->buf != NULL) csound->Free(csound, p->buf);
-    p->bufsize = 0;
-    csound->DestroyCircularBuffer(csound, p->cb);
-    csound->NotifyThreadLock(csound->file_io_threadlock);
-   } else {
-   /* close file */
-    switch (p->type) {
+      }
+      /* unlink from chain of open files */
+      if (p->prv == NULL)
+        csound->open_files = (void*) p->nxt;
+      else
+        p->prv->nxt = p->nxt;
+      if (p->nxt != NULL)
+        p->nxt->prv = p->prv;
+      if (p->buf != NULL) csound->Free(csound, p->buf);
+      p->bufsize = 0;
+      csound->DestroyCircularBuffer(csound, p->cb);
+      csound->NotifyThreadLock(csound->file_io_threadlock);
+    } else {
+      /* close file */
+      switch (p->type) {
       case CSFILE_FD_R:
       case CSFILE_FD_W:
         retval = close(p->fd);
@@ -1307,15 +1307,15 @@ int csoundFileClose(CSOUND *csound, void *fd)
         if (p->fd >= 0)
           retval |= close(p->fd);
         break;
+      }
+      /* unlink from chain of open files */
+      if (p->prv == NULL)
+        csound->open_files = (void*) p->nxt;
+      else
+        p->prv->nxt = p->nxt;
+      if (p->nxt != NULL)
+        p->nxt->prv = p->prv;
     }
-   /* unlink from chain of open files */
-    if (p->prv == NULL)
-      csound->open_files = (void*) p->nxt;
-    else
-      p->prv->nxt = p->nxt;
-    if (p->nxt != NULL)
-      p->nxt->prv = p->prv;
-   }
     /* free allocated memory */
     csound->Free(csound, fd);
 
@@ -1331,10 +1331,10 @@ void close_all_files(CSOUND *csound)
       csoundFileClose(csound, csound->open_files);
     if (csound->file_io_start) {
 #ifndef __EMSCRIPTEN__
-        csound->JoinThread(csound->file_io_thread);
+      csound->JoinThread(csound->file_io_thread);
 #endif
-        if (csound->file_io_threadlock != NULL)
-         csound->DestroyThreadLock(csound->file_io_threadlock);
+      if (csound->file_io_threadlock != NULL)
+        csound->DestroyThreadLock(csound->file_io_threadlock);
     }
 }
 
@@ -1343,37 +1343,37 @@ void close_all_files(CSOUND *csound)
 void *fopen_path(CSOUND *csound, FILE **fp, char *name, char *basename,
                  char *env, int fromScore)
 {
-  void *fd;
-  int  csftype = (fromScore ? CSFTYPE_SCO_INCLUDE : CSFTYPE_ORC_INCLUDE);
+    void *fd;
+    int  csftype = (fromScore ? CSFTYPE_SCO_INCLUDE : CSFTYPE_ORC_INCLUDE);
 
-  /* First try to open name given */
-  fd = csound->FileOpen2(csound, fp, CSFILE_STD, name, "r", NULL,
-                         csftype, 0);
-  if (fd != NULL)
-    return fd;
-  /* if that fails try in base directory */
-  if (basename != NULL) {
-    char *dir, *name_full;
-    if ((dir = csoundSplitDirectoryFromPath(csound, basename)) != NULL) {
-      name_full = csoundConcatenatePaths(csound, dir, name);
-      fd = csound->FileOpen2(csound, fp, CSFILE_STD, name_full, "r", NULL,
-                             csftype, 0);
-      csound->Free(csound, dir);
-      csound->Free(csound, name_full);
-      if (fd != NULL)
-        return fd;
+    /* First try to open name given */
+    fd = csound->FileOpen2(csound, fp, CSFILE_STD, name, "r", NULL,
+                           csftype, 0);
+    if (fd != NULL)
+      return fd;
+    /* if that fails try in base directory */
+    if (basename != NULL) {
+      char *dir, *name_full;
+      if ((dir = csoundSplitDirectoryFromPath(csound, basename)) != NULL) {
+        name_full = csoundConcatenatePaths(csound, dir, name);
+        fd = csound->FileOpen2(csound, fp, CSFILE_STD, name_full, "r", NULL,
+                               csftype, 0);
+        csound->Free(csound, dir);
+        csound->Free(csound, name_full);
+        if (fd != NULL)
+          return fd;
+      }
     }
-  }
-  /* or use env argument */
-  fd = csound->FileOpen2(csound, fp, CSFILE_STD, name, "r", env,
-                         csftype, 0);
-  return fd;
+    /* or use env argument */
+    fd = csound->FileOpen2(csound, fp, CSFILE_STD, name, "r", env,
+                           csftype, 0);
+    return fd;
 }
 
 void *file_iothread(void *p);
 
 void *csoundFileOpenWithType_Async(CSOUND *csound, void *fd, int type,
-                     const char *name, void *param, const char *env,
+                                   const char *name, void *param, const char *env,
                                    int csFileType, int buffsize, int isTemporary)
 {
 #ifndef __EMSCRIPTEN__
@@ -1414,8 +1414,8 @@ unsigned int csoundReadAsync(CSOUND *csound, void *handle,
                              MYFLT *buf, int items)
 {
     CSFILE *p = handle;
-    if(p != NULL &&  p->cb != NULL)
-    return csound->ReadCircularBuffer(csound, p->cb, buf, items);
+    if (p != NULL &&  p->cb != NULL)
+      return csound->ReadCircularBuffer(csound, p->cb, buf, items);
     else return 0;
 }
 
@@ -1423,28 +1423,28 @@ unsigned int csoundWriteAsync(CSOUND *csound, void *handle,
                               MYFLT *buf, int items)
 {
     CSFILE *p = handle;
-    if(p != NULL &&  p->cb != NULL)
-    return csound->WriteCircularBuffer(csound, p->cb, buf, items);
+    if (p != NULL &&  p->cb != NULL)
+      return csound->WriteCircularBuffer(csound, p->cb, buf, items);
     else return 0;
 }
 
 int csoundFSeekAsync(CSOUND *csound, void *handle, int pos, int whence){
-     CSFILE *p = handle;
-     int ret = 0;
-     csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
-     switch (p->type) {
-      case CSFILE_FD_R:
-        break;
-      case CSFILE_FD_W:
-        break;
-      case CSFILE_STD:
-        break;
-     case CSFILE_SND_R:
-     case CSFILE_SND_W:
-       ret = sf_seek(p->sf,pos,whence);
-       //csoundMessage(csound, "seek set %d \n", pos);
-       csound->FlushCircularBuffer(csound, p->cb);
-       p->items = 0;
+    CSFILE *p = handle;
+    int ret = 0;
+    csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
+    switch (p->type) {
+    case CSFILE_FD_R:
+      break;
+    case CSFILE_FD_W:
+      break;
+    case CSFILE_STD:
+      break;
+    case CSFILE_SND_R:
+    case CSFILE_SND_W:
+      ret = sf_seek(p->sf,pos,whence);
+      //csoundMessage(csound, "seek set %d \n", pos);
+      csound->FlushCircularBuffer(csound, p->cb);
+      p->items = 0;
       break;
     }
     csound->NotifyThreadLock(csound->file_io_threadlock);
@@ -1453,58 +1453,58 @@ int csoundFSeekAsync(CSOUND *csound, void *handle, int pos, int whence){
 
 
 static int read_files(CSOUND *csound){
-  CSFILE *current = (CSFILE *) csound->open_files;
-  if (current == NULL) return 0;
-  while (current) {
-    if(current->async_flag == ASYNC_GLOBAL) {
-    int m = current->pos, l, n = current->items;
-    int items = current->bufsize;
-    MYFLT *buf = current->buf;
-    switch (current->type) {
-      case CSFILE_FD_R:
-        break;
-      case CSFILE_FD_W:
-        break;
-      case CSFILE_STD:
-        break;
-      case CSFILE_SND_R:
-       if(n == 0) {
-           n = sf_read_MYFLT(current->sf, buf, items);
-           m = 0;
+    CSFILE *current = (CSFILE *) csound->open_files;
+    if (current == NULL) return 0;
+    while (current) {
+      if (current->async_flag == ASYNC_GLOBAL) {
+        int m = current->pos, l, n = current->items;
+        int items = current->bufsize;
+        MYFLT *buf = current->buf;
+        switch (current->type) {
+        case CSFILE_FD_R:
+          break;
+        case CSFILE_FD_W:
+          break;
+        case CSFILE_STD:
+          break;
+        case CSFILE_SND_R:
+          if (n == 0) {
+            n = sf_read_MYFLT(current->sf, buf, items);
+            m = 0;
+          }
+          l = csound->WriteCircularBuffer(csound,current->cb,&buf[m],n);
+          m += l;
+          n -= l;
+          current->items = n;
+          current->pos = m;
+          break;
+        case CSFILE_SND_W:
+          items = csound->ReadCircularBuffer(csound, current->cb, buf, items);
+          if (items == 0) { csoundSleep(10); break;}
+          sf_write_MYFLT(current->sf, buf, items);
+          break;
         }
-        l = csound->WriteCircularBuffer(csound,current->cb,&buf[m],n);
-        m += l;
-        n -= l;
-        current->items = n;
-        current->pos = m;
-        break;
-      case CSFILE_SND_W:
-        items = csound->ReadCircularBuffer(csound, current->cb, buf, items);
-        if(items == 0) { csoundSleep(10); break;}
-        sf_write_MYFLT(current->sf, buf, items);
-        break;
-    }
+      }
+      current = current->nxt;
     }
-    current = current->nxt;
-  }
-  return 1;
+    return 1;
 }
 
 
 
 
 void *file_iothread(void *p){
-  int res = 1;
-  CSOUND *csound = p;
-  int wakeup = (int) (1000*csound->ksmps/csound->esr);
-  _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
-  if(wakeup == 0) wakeup = 1;
-  while(res){
-    csoundSleep(wakeup);
-    csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
-    res = read_files(csound);
-    csound->NotifyThreadLock(csound->file_io_threadlock);
-  }
-  csound->file_io_start = 0;
-  return NULL;
+    int res = 1;
+    CSOUND *csound = p;
+    int wakeup = (int) (1000*csound->ksmps/csound->esr);
+    _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
+    if (wakeup == 0) wakeup = 1;
+    while (res){
+      csoundSleep(wakeup);
+      csound->WaitThreadLockNoTimeout(csound->file_io_threadlock);
+      res = read_files(csound);
+      csound->NotifyThreadLock(csound->file_io_threadlock);
+    }
+    csound->file_io_start = 0;
+    return NULL;
 }
diff --git a/Engine/extract.c b/Engine/extract.c
index 98defaa..5d2a233 100644
--- a/Engine/extract.c
+++ b/Engine/extract.c
@@ -52,14 +52,13 @@ static void alloc_globals(EXTRACT_STATICS* extractStatics)
     memcpy(&extractStatics->a0, &a0, sizeof(SRTBLK));
     memcpy(&extractStatics->f0, &f0, sizeof(SRTBLK));
     memcpy(&extractStatics->e, &e, sizeof(SRTBLK));
-    /* } */
 }
 
 void readxfil(CSOUND *csound, EXTRACT_STATICS* extractStatics,
               FILE *xfp)    /* read the extract control file */
 {
     int  flag, all;
-    char s[82];
+    char s[128];
 
     alloc_globals(extractStatics);
     all = 1;
@@ -68,10 +67,12 @@ void readxfil(CSOUND *csound, EXTRACT_STATICS* extractStatics,
     extractStatics->onbeat = FL(0.0);   /* other default vals   */
     extractStatics->offsect = 999;  extractStatics->offbeat = FL(0.0);
     //    while (fscanf(xfp, s) != EOF) {
-     while (fscanf(xfp, "%.81s", s) != EOF) {
-       //while (fgets(s, 82, xfp) != NULL) {
+    //  while (fscanf(xfp, "%.81s", s) != EOF) {
+    while (fscanf(xfp, "%100s", s) > 0) {
+    //  while (fgets(s, 82, xfp) > 0) {
       char *c = s;
       int i;
+      //printf("string: %s\n", s);
       switch (*c) {
       case 'i':
         all = 0;
@@ -84,12 +85,13 @@ void readxfil(CSOUND *csound, EXTRACT_STATICS* extractStatics,
         switch (flag) {
         case 'i':
           sscanf(s, "%d", &i);
-          //printf("%s %d\n", s, i);
-          if (i>=0 && i < INSMAX) extractStatics->inslst[i] = 1;
+          //printf("i: %d\n", i);
+          if (LIKELY(i>=0 && i < INSMAX)) extractStatics->inslst[i] = 1;
           else csound->Message(csound, Str("instrument number out of range"));
           all = 0;
           break;
         case 'f':
+          //printf("f: %s\n", s);
 #if defined(USE_DOUBLE)
           CS_SSCANF(s, "%d:%lf", &extractStatics->onsect, &extractStatics->onbeat);
 #else
@@ -97,6 +99,7 @@ void readxfil(CSOUND *csound, EXTRACT_STATICS* extractStatics,
 #endif
           break;
         case 't':
+          //printf("t: %s\n");
           extractStatics->offsect = extractStatics->onsect; /* default offsect */
 #if defined(USE_DOUBLE)
           CS_SSCANF(s, "%d:%lf", &extractStatics->offsect,&extractStatics->offbeat);
@@ -106,6 +109,7 @@ void readxfil(CSOUND *csound, EXTRACT_STATICS* extractStatics,
         }
       }
     }
+    //printf("extract read\n");
     if (all) {
       char *ip;
       for (ip = &extractStatics->inslst[0];
@@ -245,4 +249,3 @@ static void include(EXTRACT_STATICS* extractStatics, SRTBLK *bp)
     bp->prvblk = extractStatics->prvout;      /* maintain the backptr      */
     extractStatics->prvout = bp;              /* and get ready for next    */
 }
-
diff --git a/Engine/fgens.c b/Engine/fgens.c
index e36a614..35104e2 100644
--- a/Engine/fgens.c
+++ b/Engine/fgens.c
@@ -186,9 +186,9 @@ int hfgens(CSOUND *csound, FUNC **ftpp, const EVTBLK *evtblkp, int mode)
     if (UNLIKELY(ff.e.pcnt <= 4)) {             /*  chk minimum arg count   */
       return fterror(&ff, Str("insufficient gen arguments"));
     }
-    if (ff.e.pcnt>PMAX) {
+    if (UNLIKELY(ff.e.pcnt>PMAX)) {
       //#ifdef BETA
-      csound->DebugMsg(csound, "T%d/%d(%d): x=%p memcpy from %p to %p length %ld\n",
+      csound->DebugMsg(csound, "T%d/%d(%d): x=%p memcpy from %p to %p length %zu\n",
               (int)evtblkp->p[1], (int)evtblkp->p[4], ff.e.pcnt, evtblkp->c.extra,
               &(ff.e.p[2]), &(evtblkp->p[2]), sizeof(MYFLT) * PMAX);
       //#endif
@@ -230,7 +230,7 @@ int hfgens(CSOUND *csound, FUNC **ftpp, const EVTBLK *evtblkp, int mode)
       if (UNLIKELY(genum != 1 && genum != 23 && genum != 28 && genum != 49)) {
         return fterror(&ff, Str("deferred size for GENs 1, 23, 28 or 49 only"));
       }
-      if (msg_enabled)
+      if (UNLIKELY(msg_enabled))
         csoundMessage(csound, Str("ftable %d:\n"), ff.fno);
       i = (*csound->gensub[genum])(&ff, NULL);
       ftp = csound->flist[ff.fno];
@@ -283,7 +283,7 @@ int hfgens(CSOUND *csound, FUNC **ftpp, const EVTBLK *evtblkp, int mode)
     if (nonpowof2_flag)
       ftp->lenmask = 0xFFFFFFFF; /* gab: fixed for non-powoftwo function tables */
 
-    if (msg_enabled)
+    if (UNLIKELY(msg_enabled))
       csoundMessage(csound, Str("ftable %d:\n"), ff.fno);
     if ((*csound->gensub[genum])(&ff, ftp) != 0) {
       csound->flist[ff.fno] = NULL;
@@ -295,9 +295,9 @@ int hfgens(CSOUND *csound, FUNC **ftpp, const EVTBLK *evtblkp, int mode)
     *ftpp = ftp;
     /* keep original arguments, from GEN number  */
     ftp->argcnt = ff.e.pcnt - 3;
-    {  /* Note this does not handle extened args -- JPff */
+    {  /* Note this does not handle extended args -- JPff */
       int size=ftp->argcnt;
-      if (size>PMAX-4) size=PMAX-4;
+      if (UNLIKELY(size>PMAX-4)) size=PMAX-4;
       /* printf("size = %d -> %d ftp->args = %p\n", */
       /*        size, sizeof(MYFLT)*size, ftp->args); */
       memcpy(ftp->args, &(ff.e.p[4]), sizeof(MYFLT)*size); /* is this right? */
@@ -339,7 +339,7 @@ int csoundFTAlloc(CSOUND *csound, int tableNum, int len)
         (MYFLT*)csound->Malloc(csound, sizeof(MYFLT)*(len+1));
     }
     else if (len != (int) ftp->flen) {
-      if (csound->actanchor.nxtact != NULL) { /*   & chk for danger    */
+      if (UNLIKELY(csound->actanchor.nxtact != NULL)) { /*   & chk for danger    */
         /* return */  /* VL: changed this into a Warning */
           csound->Warning(csound, Str("ftable %d relocating due to size change"
                                         "\n         currently active instruments "
@@ -398,7 +398,7 @@ static int gen02(FGDATA *ff, FUNC *ftp)
     int nsw = 1;
     CSOUND  *csound = ff->csound;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if (nvals >= (int) ff->flen)
       nvals = (int) ff->flen + 1;               /* for all vals up to flen+1 */
@@ -519,7 +519,7 @@ static int gen05(FGDATA *ff, FUNC *ftp)
     int nsw = 1;
     CSOUND  *csound = ff->csound;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((nsegs = (ff->e.pcnt-5) >> 1) <= 0)    /* nsegs = nargs-1 /2 */
       return OK;
@@ -603,7 +603,7 @@ static int gen06(FGDATA *ff, FUNC *ftp)
     int nsw = 1;
     CSOUND  *csound = ff->csound;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if (UNLIKELY((nsegs = ((ff->e.pcnt - 5) >> 1)) < 1)) {
       return fterror(ff, Str("insufficient arguments"));
@@ -684,7 +684,7 @@ static int gen08(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if (UNLIKELY((nsegs = (ff->e.pcnt - 5) >> 1) <= 0)) {
       return fterror(ff, Str("insufficient arguments"));
@@ -705,7 +705,7 @@ static int gen08(FGDATA *ff, FUNC *ftp)
           return fterror(ff, Str("illegal x interval"));
         }
         f2 = *valp++;                       /*    and the value at x2    */
-        if (UNLIKELY(nsw && valp>&ff->e.p[PMAX])) {
+        if (UNLIKELY(UNLIKELY(nsw && valp>&ff->e.p[PMAX]))) {
 #ifdef BETA
           csound->DebugMsg(csound, "Switch to extra args\n");
 #endif
@@ -759,7 +759,7 @@ static int gen09(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((hcnt = (ff->e.pcnt - 4) / 3) <= 0)         /* hcnt = nargs / 3 */
       return OK;
@@ -792,7 +792,7 @@ static int gen09(FGDATA *ff, FUNC *ftp)
       }
       for (fp = ftp->ftable; fp <= finp; fp++) {
         *fp += (MYFLT) (sin(phs) * amp);
-        if ((phs += inc) >= TWOPI)
+        if (UNLIKELY((phs += inc) >= TWOPI))
           phs -= TWOPI;
       }
     } while (--hcnt);
@@ -808,7 +808,7 @@ static int gen10(FGDATA *ff, FUNC *ftp)
     double  tpdlen = TWOPI / (double) flen;
     CSOUND  *csound = ff->csound;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     hcnt = ff->e.pcnt - 4;                              /* hcnt is nargs    */
     finp = &ftp->ftable[flen];
@@ -1007,13 +1007,12 @@ static int gen15(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
-    hsin = (MYFLT*)csound->Malloc(csound,sizeof(MYFLT)*((1+ff->e.pcnt)/2));
     if (UNLIKELY(nargs & 01)) {
-      csound->Free(csound,hsin);
       return fterror(ff, Str("uneven number of args"));
     }
+    hsin = (MYFLT*)csound->Malloc(csound,sizeof(MYFLT)*((1+ff->e.pcnt)/2));
     nh = (nargs - 2) >>1;
     fp   = &ff->e.p[5];                         /* save p5, p6  */
     xint = *fp++;
@@ -1033,7 +1032,7 @@ static int gen15(FGDATA *ff, FUNC *ftp)
     }
     nargs -= nh;
     ff->e.pcnt = (int16)(nargs + 4);            /* added by F. Pinot 16-01-2012 */
-    if (gen13(ff, ftp) != OK) {                  /* call gen13   */
+    if (UNLIKELY(gen13(ff, ftp) != OK)) {       /* call gen13   */
       csound->Free(csound,hsin);
       return NOTOK;
     }
@@ -1110,7 +1109,7 @@ static int gen17(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((nsegs = nargs >> 1) <= 0)       /* nsegs = nargs /2 */
       goto gn17err;
@@ -1154,7 +1153,7 @@ static int gen18(FGDATA *ff, FUNC *ftp)
     int     nargs = ff->e.pcnt - 4;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if (UNLIKELY((cnt = nargs >> 2) <= 0)) {
       return fterror(ff, Str("wrong number of args"));
@@ -1205,7 +1204,7 @@ static int gen19(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((hcnt = nargs / 4) <= 0)                /* hcnt = nargs / 4 */
       return OK;
@@ -1348,7 +1347,7 @@ static MYFLT nextval(FILE *f)
  top:
     c = getc(f);
  top1:
-    if (feof(f)) return NAN; /* Hope value is ignored */
+    if (UNLIKELY(feof(f))) return NAN; /* Hope value is ignored */
     if (isdigit(c) || c=='e' || c=='E' || c=='+' || c=='-' || c=='.') {
       double d;                           /* A number starts */
       char buff[128];
@@ -1476,7 +1475,7 @@ static int gen25(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((nsegs = ((nargs / 2) - 1)) <= 0)
       return OK;
@@ -1538,7 +1537,7 @@ static int gen27(FGDATA *ff, FUNC *ftp)
     CSOUND  *csound = ff->csound;
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if ((nsegs = ((nargs / 2) - 1)) <= 0)
       return OK;
@@ -1624,13 +1623,13 @@ static int gen28(FGDATA *ff, FUNC *ftp)
 #endif
       {
         i++;
-        if (i>=arraysize) {
+        if (UNLIKELY(i>=arraysize)) {
           MYFLT* newx, *newy, *newz;
           arraysize += 1000;
           newx = (MYFLT*)realloc(x, arraysize*sizeof(MYFLT));
           newy = (MYFLT*)realloc(y, arraysize*sizeof(MYFLT));
           newz = (MYFLT*)realloc(z, arraysize*sizeof(MYFLT));
-          if (!newx || !newy || !newz) {
+          if (UNLIKELY(!newx || !newy || !newz)) {
             fprintf(stderr, Str("Out of Memory\n"));
             exit(7);
           }
@@ -1777,7 +1776,7 @@ static int gen31(FGDATA *ff, FUNC *ftp)
     MYFLT   *valp = &ff->e.p[6];
     int nsw = 1;
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     if (UNLIKELY(nargs < 4)) {
       return fterror(ff, Str("insufficient gen arguments"));
@@ -1813,7 +1812,7 @@ static int gen31(FGDATA *ff, FUNC *ftp)
       { MYFLT dummy = FL(0.0);
         p = MODF(p, &dummy);
       }
-      if (p < FL(0.0)) p += FL(1.0);
+      if (UNLIKELY(p < FL(0.0))) p += FL(1.0);
       p *= TWOPI_F;
       d_re = cos((double) p); d_im = sin((double) p);
       p_re = 1.0; p_im = 0.0;   /* init. phase */
@@ -1860,7 +1859,7 @@ static int gen32(FGDATA *ff, FUNC *ftp)
     int     i, j, k, n, l1, l2, ntabl, *pnum, ft;
     int     nargs = ff->e.pcnt - 4;
 
-    if (ff->e.pcnt>=PMAX) {
+    if (UNLIKELY(ff->e.pcnt>=PMAX)) {
       csound->Warning(csound, Str("using extended arguments\n"));
     }
     if (UNLIKELY(nargs < 4)) {
@@ -1996,8 +1995,8 @@ static int gen33(FGDATA *ff, FUNC *ftp)
     }
     /* number of partials */
     nh = (int) (ff->e.p[6] + FL(0.5));
-    if (nh > (srclen / 3)) nh = srclen / 3;
-    if (nh < 0) nh = 0;
+    if (UNLIKELY(nh > (srclen / 3))) nh = srclen / 3;
+    if (UNLIKELY(nh < 0)) nh = 0;
     /* amplitude scale */
     scl = FL(0.5) * (MYFLT) flen * ff->e.p[7];
     scl *= csound->GetInverseRealFFTScale(csound, flen);
@@ -2023,12 +2022,12 @@ static int gen33(FGDATA *ff, FUNC *ftp)
       /* partial number */
       pnum = (int) MYFLT2LRND(fmode * *srcft);
       srcft++;
-      if (pnum < (-maxp) || pnum > maxp) {
+      if (UNLIKELY(pnum < (-maxp) || pnum > maxp)) {
         srcft++; continue;      /* skip partial with too high frequency */
       }
       /* initial phase */
       phs = TWOPI_F * *(srcft++);
-      if (pnum < 0) {
+      if (UNLIKELY(pnum < 0)) {
         phs = PI_F - phs; pnum = -pnum;         /* negative frequency */
       }
       /* mix to FFT data */
@@ -2076,8 +2075,8 @@ static int gen34(FGDATA *ff, FUNC *ftp)
     srcft = src->ftable; srclen = (int32) src->flen;
     /* number of partials */
     nh = (int32) (ff->e.p[6] + FL(0.5));
-    if (nh > (srclen / 3L)) nh = srclen / 3L;
-    if (nh < 0L) nh = 0L;
+    if (UNLIKELY(nh > (srclen / 3L))) nh = srclen / 3L;
+    if (UNLIKELY(nh < 0L)) nh = 0L;
     /* amplitude scale */
     scl = ff->e.p[7];
     /* frequency mode */
@@ -2094,16 +2093,16 @@ static int gen34(FGDATA *ff, FUNC *ftp)
     /* use blocks of 256 samples (2048 bytes) for speed */
     bs = 256L;
     /* allocate memory for tmp data */
-    tmp = (double*) csound->Malloc(csound,sizeof (double) * bs);
-    xn  = (double*) csound->Malloc(csound,sizeof (double) * (nh + 1L));
-    cn  = (double*) csound->Malloc(csound,sizeof (double) * (nh + 1L));
-    vn  = (double*) csound->Malloc(csound,sizeof (double) * (nh + 1L));
+    tmp = (double*) csound->Malloc(csound, sizeof(double) * bs);
+    xn  = (double*) csound->Malloc(csound, sizeof(double) * (nh + 1L));
+    cn  = (double*) csound->Malloc(csound, sizeof(double) * (nh + 1L));
+    vn  = (double*) csound->Malloc(csound, sizeof(double) * (nh + 1L));
     /* initialise oscillators */
     i = -1L;
     while (++i < nh) {
       amp = (double) scl * (double) *(srcft++);         /* amplitude */
       frq = (double) fmode * (double) *(srcft++);       /* frequency */
-      if (fabs (frq) > PI) {
+      if (UNLIKELY(fabs (frq) > PI)) {
         xn[i] = cn[i] = vn[i] = 0.0;
         srcft++; continue;      /* skip partial with too high frequency */
       }
@@ -2159,7 +2158,7 @@ static int gen40(FGDATA *ff, FUNC *ftp)               /*gab d5*/
     MYFLT   last_value = FL(0.0), lenratio;
 
     if (UNLIKELY((srcno = (int) ff->e.p[5]) <= 0 ||
-        srcno > csound->maxfnum         ||
+                 srcno > csound->maxfnum         ||
                  (srcftp = csound->flist[srcno]) == NULL)) {
       return fterror(ff, Str("unknown source table number"));
     }
@@ -2192,11 +2191,11 @@ static int gen41(FGDATA *ff, FUNC *ftp)   /*gab d5*/
     int     nargs = ff->e.pcnt - 4;
 
     for (j=0; j < nargs; j+=2) {
-      if (pp[j+1]<0)
+      if (UNLIKELY(pp[j+1]<0))
         return fterror(ff, Str("Gen41: negative probability not allowed"));
       tot_prob += pp[j+1];
     }
-    printf("total prob = %g\n", tot_prob);
+    //printf("total prob = %g\n", tot_prob);
     for (i=0, j=0; j< nargs; j+=2) {
       width = (int) ((pp[j+1]/tot_prob) * ff->flen +.5);
       for ( k=0; k < width; k++,i++) {
@@ -2204,7 +2203,8 @@ static int gen41(FGDATA *ff, FUNC *ftp)   /*gab d5*/
       }
     }
     //printf("GEN41: i=%d le=%d\n", i, ff->flen);
-    if (i<=ff->flen) fp[i] = pp[j-1]; /* conditinal isattempy to stop error */
+    if (UNLIKELY(i<=ff->flen))
+      fp[i] = pp[j-1]; /* conditional is attempt to stop error */
 
     return OK;
 }
@@ -2219,7 +2219,7 @@ static int gen42(FGDATA *ff, FUNC *ftp) /*gab d5*/
     int nsw = 1;
     MYFLT   *valp = &ff->e.p[5];
 
-    if (ff->e.pcnt>=PMAX)
+    if (UNLIKELY(ff->e.pcnt>=PMAX))
       csound->Warning(csound, Str("using extended arguments\n"));
     for (j=0; j < nargs; j+=3) {
       if (UNLIKELY(nsw && valp>=&ff->e.p[PMAX-1]))
@@ -2353,7 +2353,7 @@ static CS_NOINLINE FUNC *ftalloc(const FGDATA *ff)
         csound->Free(csound, ftp->ftable);
         csound->Free(csound, (void*) ftp);             /*   release old space   */
         csound->flist[ff->fno] = ftp = NULL;
-        if (csound->actanchor.nxtact != NULL) { /*   & chk for danger    */
+        if (UNLIKELY(csound->actanchor.nxtact != NULL)) { /*   & chk for danger */
           csound->Warning(csound, Str("ftable %d relocating due to size change"
                                       "\n         currently active instruments "
                                       "may find this disturbing"), ff->fno);
@@ -2421,8 +2421,8 @@ FUNC *csoundFTFind2(CSOUND *csound, MYFLT *argp)
       if (UNLIKELY(csound->sinetable==NULL)) generate_sine_tab(csound);
       return csound->sinetable;
     }
-    if (UNLIKELY(fno <= 0           ||
-        fno > csound->maxfnum       ||
+    if (UNLIKELY(fno <= 0                    ||
+                 fno > csound->maxfnum       ||
                  (ftp = csound->flist[fno]) == NULL)) {
       return NULL;
     }
@@ -2536,14 +2536,14 @@ FUNC *csoundFTnp2Find(CSOUND *csound, MYFLT *argp)
     if (UNLIKELY(fno <= 0 ||
                  fno > csound->maxfnum    ||
                  (ftp = csound->flist[fno]) == NULL)) {
-      csoundInitError(csound, Str("Invalid ftable no. %f"), *argp);
+      csound->ErrorMsg(csound, Str("Invalid ftable no. %f"), *argp);
       return NULL;
     }
     if (ftp->flen == 0) {
      if (LIKELY(csound->oparms->gen01defer))
        ftp = gen01_defer_load(csound, fno);
        else {
-        csoundInitError(csound, Str("Invalid ftable no. %f"), *argp);
+        csound->ErrorMsg(csound, Str("Invalid ftable no. %f"), *argp);
         return NULL;
     }
       if (UNLIKELY(ftp == NULL))
@@ -2672,7 +2672,7 @@ static int gen01raw(FGDATA *ff, FUNC *ftp)
         /*   get minsize from soundin */
         return fterror(ff, Str("deferred size, but filesize unknown"));
       }
-      if (csound->oparms->msglevel & 7)
+      if (UNLIKELY(csound->oparms->msglevel & 7))
         csoundMessage(csound, Str("  defer length %d\n"), ff->flen - 1);
        if (p->channel == ALLCHNLS)
          ff->flen *= p->nchanls;
@@ -2688,10 +2688,10 @@ static int gen01raw(FGDATA *ff, FUNC *ftp)
       table_length = ff->flen;
     }
     if (p->channel==ALLCHNLS) {
-    //ff->flen *= p->nchanls;
-    ftp->nchanls  = p->nchanls;
+      //ff->flen *= p->nchanls;
+      ftp->nchanls  = p->nchanls;
     }
-      else ftp->nchanls  = 1;
+    else ftp->nchanls  = 1;
     ftp->flenfrms = ff->flen / p->nchanls;  /* ?????????? */
     ftp->gen01args.sample_rate = (MYFLT) p->sr;
     ftp->cvtbas = LOFACT * p->sr * csound->onedsr;
@@ -2738,7 +2738,7 @@ static int gen01raw(FGDATA *ff, FUNC *ftp)
         else
           ftp->end1 = ftp->flenfrms;    /* Greg Sullivan */
         ftp->end2 = lpd.loops[1].end;
-        if (ftp->end1 > ff->flen || ftp->end2 > ff->flen) {
+        if (UNLIKELY(ftp->end1 > ff->flen || ftp->end2 > ff->flen)) {
           int32 maxend;
           csound->Warning(csound,
                           Str("GEN1: input file truncated by ftable size"));
@@ -2764,9 +2764,9 @@ static int gen01raw(FGDATA *ff, FUNC *ftp)
       return fterror(ff, Str("GEN1 read error"));
     }
 
-    if (p->audrem > 0 && !truncmsg && p->framesrem > ff->flen) {
+    if (UNLIKELY(p->audrem > 0 && !truncmsg && p->framesrem > ff->flen)) {
       /* Reduce msg */
-      csound->Warning(csound, Str("GEN1: aiff file truncated by ftable size"));
+      csound->Warning(csound, Str("GEN1: file truncated by ftable size"));
       csound->Warning(csound, Str("\taudio samps %d exceeds ftsize %d"),
                               (int32) p->framesrem, (int32) ff->flen);
       needsiz(csound, ff, p->framesrem);     /* ????????????  */
@@ -2785,7 +2785,7 @@ static int gen01raw(FGDATA *ff, FUNC *ftp)
       int size=ftp->argcnt;
       //if (size>=PMAX) size=PMAX; // Coverity 96615 says this overflows
       memcpy(ftp->args, &(ff->e.p[4]), sizeof(MYFLT)*size);
-      /* for(k=0; k < size; k++)
+      /* for (k=0; k < size; k++)
          csound->Message(csound, "%f \n", ftp->args[k]);*/
     }
     return OK;
@@ -2934,10 +2934,10 @@ static int gen49raw(FGDATA *ff, FUNC *ftp)
       config.mode = MPADEC_CONFIG_CHANNEL2; break;
     }
     mpa = mp3dec_init();
-    if (!mpa) {
+    if (UNLIKELY(!mpa)) {
       return fterror(ff, Str("Not enough memory\n"));
     }
-    if ((r = mp3dec_configure(mpa, &config)) != MP3DEC_RETCODE_OK) {
+    if (UNLIKELY((r = mp3dec_configure(mpa, &config)) != MP3DEC_RETCODE_OK)) {
       mp3dec_uninit(mpa);
       return fterror(ff, mp3dec_error(r));
     }
@@ -2945,16 +2945,16 @@ static int gen49raw(FGDATA *ff, FUNC *ftp)
                                      sfname, NULL, "SFDIR;SSDIR",
                                      CSFTYPE_UNKNOWN_AUDIO, 0);
     //    fd = open(sfname, O_RDONLY); /* search paths */
-    if (fd < 0) {
+    if (UNLIKELY(fd < 0)) {
       mp3dec_uninit(mpa);
       fterror(ff, "sfname");
     }
-    if ((r = mp3dec_init_file(mpa, fd, 0, FALSE)) != MP3DEC_RETCODE_OK) {
+    if (UNLIKELY((r = mp3dec_init_file(mpa, fd, 0, FALSE)) != MP3DEC_RETCODE_OK)) {
       mp3dec_uninit(mpa);
       return fterror(ff, mp3dec_error(r));
     }
-    if ((r = mp3dec_get_info(mpa, &mpainfo, MPADEC_INFO_STREAM)) !=
-        MP3DEC_RETCODE_OK) {
+    if (UNLIKELY((r = mp3dec_get_info(mpa, &mpainfo, MPADEC_INFO_STREAM)) !=
+                 MP3DEC_RETCODE_OK)) {
       mp3dec_uninit(mpa);
       return fterror(ff, mp3dec_error(r));
     }
@@ -2995,7 +2995,7 @@ static int gen49raw(FGDATA *ff, FUNC *ftp)
         return fterror(ff, Str("deferred size, but filesize unknown"));
       if (UNLIKELY(ff->flen > MAXLEN))
         return fterror(ff, Str("illegal table length"));
-      if (csound->oparms->msglevel & 7)
+      if (UNLIKELY(csound->oparms->msglevel & 7))
         csoundMessage(csound, Str("  defer length %d\n"), ff->flen);
       ftp = ftalloc(ff);
       ftp->lenmask  = 0L;
@@ -3013,7 +3013,7 @@ static int gen49raw(FGDATA *ff, FUNC *ftp)
       short *bb = (short*)buffer;
       //printf("gen49: p=%d bufused=%d\n", p, bufused);
       for (i=0; i<bufused*nchanls/mpainfo.decoded_sample_size; i++)  {
-        if (p>=flen) {
+        if (UNLIKELY(p>=flen)) {
           csound->Free(csound,buffer);
           //printf("gen49: i=%d p=%d exit as at end of table\n", i, p);
           return ((mp3dec_uninit(mpa) == MP3DEC_RETCODE_OK) ? OK : NOTOK);
@@ -3062,9 +3062,8 @@ static int gen51(FGDATA *ff, FUNC *ftp)    /* Gab 1/3/2005 */
     MYFLT   *fp = ftp->ftable, *pp;
     CSOUND  *csound = ff->csound;
 
-    if (ff->e.pcnt>=PMAX) {
-      csound->Warning
-        (csound, Str("using extended arguments\n"));
+    if (UNLIKELY(ff->e.pcnt>=PMAX)) {
+      csound->Warning(csound, Str("using extended arguments\n"));
     }
     nvals       = ff->flen;
     pp          = &(ff->e.p[5]);
@@ -3106,7 +3105,7 @@ static int gen52(FGDATA *ff, FUNC *ftp)
     int     nchn, len, len2, i, j, k, n;
     int     nargs = (int) ff->e.pcnt - 4;
 
-    if (ff->e.pcnt>=PMAX) {
+    if (UNLIKELY(ff->e.pcnt>=PMAX)) {
       csound->Warning(csound, Str("using extended arguments\n"));
     }
     if (UNLIKELY(nargs < 4)) {
@@ -3202,8 +3201,10 @@ static void gen53_freq_response_to_ir(CSOUND *csound,
     obuf[npts] = FL(0.0);               /* clear guard point */
     if (wbuf != NULL && !(mode & 4))    /* apply window if requested */
       gen53_apply_window(obuf, wbuf, npts, wpts, 0);
-    if (!(mode & 1))
+    if (!(mode & 1)) {
+      csound->Message(csound, "linear-phase output \n");
       return;
+    }
     /* ---- minimum phase impulse response ---- */
     scaleFac = csound->GetInverseRealFFTScale(csound, npts2);
     buf1 = (MYFLT*) csound->Malloc(csound, sizeof(MYFLT) * (size_t) npts2);
@@ -3261,6 +3262,7 @@ static void gen53_freq_response_to_ir(CSOUND *csound,
       obuf[i] = buf2[i];
     csound->Free(csound, buf2);
     csound->Free(csound, buf1);
+     csound->Message(csound, "minimum-phase output\n");
     if (wbuf != NULL && !(mode & 8))    /* apply window if requested */
       gen53_apply_window(obuf, wbuf, npts, wpts, 1);
 }
@@ -3294,7 +3296,7 @@ static int gen53(FGDATA *ff, FUNC *ftp)
     }
     if (UNLIKELY((!(mode & 2) && srcflen != (dstflen >> 1)) ||
                  ((mode & 2) && srcflen != dstflen))) {
-      return fterror(ff, Str("GEN53: invalid source table length"));
+      return fterror(ff, Str("GEN53: invalid source table length:"));
     }
     if (winftno) {
       winflen = csoundGetTable(csound, &winftp, winftno);
@@ -3314,13 +3316,16 @@ static int gen53(FGDATA *ff, FUNC *ftp)
         tmpft[j] = SQRT(((dstftp[i] * dstftp[i])
                          + (dstftp[i + 1] * dstftp[i + 1])));
       tmpft[j] = dstftp[1];
+      csound->Message(csound,Str("GEN 53: impulse response input, "));
       gen53_freq_response_to_ir(csound, dstftp, tmpft, winftp,
                                         dstflen, winflen, mode);
       csound->Free(csound, tmpft);
     }
-    else                /* input is frequency response: */
+    else  {              /* input is frequency response: */
+      csound->Message(csound, Str("GEN 53: frequency response input, "));
       gen53_freq_response_to_ir(csound, dstftp, srcftp, winftp,
                                         dstflen, winflen, mode);
+    }
     return OK;
 }
 
@@ -3340,7 +3345,7 @@ int allocgen(CSOUND *csound, char *s, GEN fn)
     n->name = csound->Malloc(csound, strlen(s) + 1);
     strcpy(n->name, s);
     csound->namedgen = (void*) n;
-    if (csound->gensub == NULL) {
+    if (LIKELY(csound->gensub == NULL)) {
       csound->gensub = (GEN*) csound->Malloc(csound, csound->genmax * sizeof(GEN));
       memcpy(csound->gensub, or_sub, sizeof(or_sub));
     }
@@ -3362,11 +3367,14 @@ int csoundIsNamedGEN(CSOUND *csound, int num) {
     return 0;
 }
 
+/* ODDITY:  does not stop when num found but continues to end; aso not used! */
 void csoundGetNamedGEN(CSOUND *csound, int num, char *name, int len) {
     NAMEDGEN *n = (NAMEDGEN*) csound->namedgen;
     while (n != NULL) {
-      if (n->genum == abs(num))
+      if (n->genum == abs(num)) {
         strncpy(name,n->name,len);
+        return;
+      }
       n = n->next;
     }
 }
@@ -3381,11 +3389,11 @@ int resize_table(CSOUND *csound, RESIZE *p)
     int fno  = (int) MYFLT2LRND(*p->fn);
     FUNC *ftp;
 
-    if (warned==0) {
+    if (UNLIKELY(warned==0)) {
       printf("WARNING: EXPERIMENTAL CODE\n");
       warned = 1;
     }
-    if ((ftp = csound->FTFind(csound, p->fn)) == NULL)
+    if (UNLIKELY((ftp = csound->FTFind(csound, p->fn)) == NULL))
       return NOTOK;
     if (ftp->flen<fsize)
       ftp->ftable = (MYFLT *) csound->ReAlloc(csound, ftp->ftable,
diff --git a/Engine/insert.c b/Engine/insert.c
index 6abd8b0..3acf09f 100644
--- a/Engine/insert.c
+++ b/Engine/insert.c
@@ -113,10 +113,10 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
     if (UNLIKELY(O->odebug)) {
       char *name = csound->engineState.instrtxtp[insno]->insname;
       if (UNLIKELY(name))
-        csound->Message(csound, Str("activating instr %s at %d\n"),
+        csound->Message(csound, Str("activating instr %s at %lld\n"),
                         name, csound->icurTime);
       else
-        csound->Message(csound, Str("activating instr %d at %d\n"),
+        csound->Message(csound, Str("activating instr %d at %lld\n"),
                         insno, csound->icurTime);
     }
     csound->inerrcnt = 0;
@@ -175,8 +175,7 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
       instance(csound, insno);
       tp->isNew=0;
     }
-    /* **** COVERITY: note that call to instance fills in structure to
-       **** which tp points.  This is a false positive **** */
+
      /* pop from free instance chain */
     if (UNLIKELY(csound->oparms->odebug))
       csoundMessage(csound, "insert(): tp->act_instance = %p \n", tp->act_instance);
@@ -274,7 +273,7 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
     ip->init_done = 1;
 #endif
     if (O->Beatmode)
-    ip->p2.value     = (MYFLT) (csound->icurTime/csound->esr - csound->timeOffs);
+      ip->p2.value     = (MYFLT) (csound->icurTime/csound->esr - csound->timeOffs);
     ip->offtim       = (double) ip->p3.value;         /* & duplicate p3 for now */
     ip->m_chnbp      = (MCHNBLK*) NULL;
     ip->xtratim      = 0;
@@ -290,8 +289,8 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
 #endif
 
     if (csound->realtime_audio_flag == 0) {
-     csound->curip    = ip;
-     csound->ids      = (OPDS *)ip;
+      csound->curip    = ip;
+      csound->ids      = (OPDS *)ip;
       /* do init pass for this instr */
       while ((csound->ids = csound->ids->nxti) != NULL) {
         if (UNLIKELY(O->odebug))
@@ -353,7 +352,7 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
 #ifdef BETA
     if (UNLIKELY(O->odebug))
       csound->Message(csound, "In insert:  %d %lf %lf\n",
-                      __LINE__, ip->p3, ip->offtim); /* *********** */
+                      __LINE__, ip->p3.value, ip->offtim); /* *********** */
 #endif
     if (ip->p3.value > FL(0.0) && ip->offtim > 0.0) { /* if still finite time, */
       double p2 = (double) ip->p2.value + csound->timeOffs;
@@ -392,9 +391,9 @@ int insert(CSOUND *csound, int insno, EVTBLK *newevtp)
         csound->Message(csound, Str("instr %d now active:\n"), insno);
       showallocs(csound);
     }
-     if (newevtp->pinstance != NULL) {
-       *((MYFLT *)newevtp->pinstance) = (MYFLT) ((long) ip);
-     }
+    if (newevtp->pinstance != NULL) {
+      *((MYFLT *)newevtp->pinstance) = (MYFLT) ((long) ip);
+    }
     return 0;
 }
 
@@ -501,15 +500,14 @@ int MIDIinsert(CSOUND *csound, int insno, MCHNBLK *chn, MEVENT *mep)
     ip->p1.value     = (MYFLT) insno;     /* set these required p-fields */
     ip->p2.value     = (MYFLT) (csound->icurTime/csound->esr - csound->timeOffs);
     ip->p3.value     = FL(-1.0);
-    ip->ksmps = csound->ksmps;
-    ip->ekr = csound->ekr;
-    ip->kcounter = csound->kcounter;
-    ip->onedksmps = csound->onedksmps;
-    ip->onedkr = csound->onedkr;
-    ip->kicvt = csound->kicvt;
-    //#endif
-    ip->pds = NULL;
-    pfields = (CS_VAR_MEM*)&ip->p0;
+    ip->ksmps        = csound->ksmps;
+    ip->ekr          = csound->ekr;
+    ip->kcounter     = csound->kcounter;
+    ip->onedksmps    = csound->onedksmps;
+    ip->onedkr       = csound->onedkr;
+    ip->kicvt        = csound->kicvt;
+    ip->pds          = NULL;
+    pfields          = (CS_VAR_MEM*)&ip->p0;
 
     if (tp->psetdata != NULL) {
       int i;
@@ -606,15 +604,15 @@ int MIDIinsert(CSOUND *csound, int insno, MCHNBLK *chn, MEVENT *mep)
       }
       if (pmax < pfield_index) pmax = pfield_index;
     }
-    if (pmax > 0){
+    if (pmax > 0) {
       int i;
-      if (csound->currevent == NULL){
-       evt = (EVTBLK *) csound->Calloc(csound, sizeof(EVTBLK));
-       csound->currevent = evt;
+      if (csound->currevent == NULL) {
+        evt = (EVTBLK *) csound->Calloc(csound, sizeof(EVTBLK));
+        csound->currevent = evt;
       }
       else evt = csound->currevent;
       evt->pcnt = pmax+1;
-      for(i =0; i < evt->pcnt; i++){
+      for (i =0; i < evt->pcnt; i++) {
         evt->p[i] = pfields[i].value;
       }
     }
@@ -625,7 +623,7 @@ int MIDIinsert(CSOUND *csound, int insno, MCHNBLK *chn, MEVENT *mep)
 #endif
     csound->curip    = ip;
     if (csound->realtime_audio_flag == 0) {
-     csound->ids      = (OPDS *)ip;
+      csound->ids      = (OPDS *)ip;
       /* do init pass for this instr  */
       while ((csound->ids = csound->ids->nxti) != NULL) {
         if (UNLIKELY(O->odebug))
@@ -706,7 +704,7 @@ static void schedofftim(CSOUND *csound, INSDS *ip)
       }
 #ifdef BETA
       if (UNLIKELY(csound->oparms->odebug))
-        csound->Message(csound,"schedofftim: %lf %lf\n", ip->offtim,
+        csound->Message(csound,"schedofftim: %lf %lf %lf\n", ip->offtim,
                         (csound->icurTime + (0.505 * csound->ksmps))/csound->esr,
                         csound->ekr*((csound->icurTime +
                                       (0.505 * csound->ksmps))/csound->esr));
@@ -860,7 +858,8 @@ void free_instr_var_memory(CSOUND* csound, INSDS* ip) {
     while (current != NULL) {
         CS_TYPE* varType = current->varType;
         if (varType->freeVariableMemory != NULL) {
-            varType->freeVariableMemory(csound, ip->lclbas + current->memBlockIndex);
+            varType->freeVariableMemory(csound,
+                                        ip->lclbas + current->memBlockIndex);
         }
         current = current->next;
     }
@@ -883,7 +882,7 @@ void orcompact(CSOUND *csound)          /* free all inactive instr spaces */
             // csound->Message(csound, "ip=%p \n", ip);
             cnt++;
             if (ip->opcod_iobufs && ip->insno > csound->engineState.maxinsno)
-              csound->Free(csound, ip->opcod_iobufs);          /* IV - Nov 10 2002 */
+              csound->Free(csound, ip->opcod_iobufs);   /* IV - Nov 10 2002 */
             if (ip->fdchp != NULL)
               fdchclose(csound, ip);
             if (ip->auxchp != NULL)
@@ -918,7 +917,7 @@ void orcompact(CSOUND *csound)          /* free all inactive instr spaces */
     /* check current items in deadpool to see if they need deleting */
     {
       int i;
-      for(i=0; i < csound->dead_instr_no; i++){
+      for (i=0; i < csound->dead_instr_no; i++) {
         if (csound->dead_instr_pool[i] != NULL) {
           INSDS *active = csound->dead_instr_pool[i]->instance;
           while (active != NULL) {
@@ -1128,12 +1127,12 @@ int subinstrset_(CSOUND *csound, SUBINST *p, int instno)
     int str_cnt = 0, len = 0;
     char *argstr;
     for (n = 1; (unsigned int) n < p->INOCOUNT; n++){
-      if(IS_STR_ARG(p->ar[inarg_ofs + n])){
+      if (IS_STR_ARG(p->ar[inarg_ofs + n])) {
         ch.d = SSTRCOD;
         ch.i = str_cnt & 0xffff;
         (pfield + n)->value = ch.d;
         argstr = ((STRINGDAT *)p->ar[inarg_ofs + n])->data;
-        if(str_cnt == 0)
+        if (str_cnt == 0)
           p->ip->strarg = csound->Calloc(csound, strlen(argstr)+1);
         else
           p->ip->strarg = csound->ReAlloc(csound, p->ip->strarg,
@@ -1237,6 +1236,9 @@ int useropcdset(CSOUND *csound, UOPCODE *p)
     inm = (OPCODINFO*) p->h.optext->t.oentry->useropinfo;
     instno = inm->instno;
     tp = csound->engineState.instrtxtp[instno];
+    if (tp == NULL)
+      return csound->InitError(csound, "Can't find instr %d (UDO %s)\n",
+                               instno, inm->name);
     /* set local ksmps if defined by user */
     n = p->OUTOCOUNT + p->INCOUNT - 1;
 
@@ -2090,6 +2092,7 @@ int useropcd2(CSOUND *csound, UOPCODE *p)
 int findLabelMemOffset(CSOUND* csound, INSTRTXT* ip, char* labelName) {
     OPTXT* optxt = (OPTXT*) ip;
     int offset = 0;
+    IGN(csound);
 
     while ((optxt = optxt->nxtop) != NULL) {
       TEXT* t = &optxt->t;
@@ -2284,8 +2287,7 @@ static void instance(CSOUND *csound, int insno)
       for (; arg != NULL; n++, arg = arg->next) {
         CS_VARIABLE* var = (CS_VARIABLE*)(arg->argPtr);
         if (arg->type == ARG_CONSTANT) {
-          CS_VAR_MEM *varMem =
-            &csound->engineState.constantsPool->values[arg->index];
+          CS_VAR_MEM *varMem = (CS_VAR_MEM*)arg->argPtr;
           argpp[n] = &varMem->value;
         }
         else if (arg->type == ARG_STRING) {
@@ -2397,7 +2399,7 @@ int delete_instr(CSOUND *csound, DELETEIN *p)
       }
 #if 0
       if (active->opcod_iobufs && active->insno > csound->engineState.maxinsno)
-        csound->Free(csound, active->opcod_iobufs);            /* IV - Nov 10 2002 */
+        csound->Free(csound, active->opcod_iobufs);        /* IV - Nov 10 2002 */
 #endif
       if (active->fdchp != NULL)
         fdchclose(csound, active);
@@ -2426,36 +2428,14 @@ int delete_instr(CSOUND *csound, DELETEIN *p)
     return NOTOK;
 }
 
-PUBLIC int csoundKillInstance(CSOUND *csound, MYFLT instr, char *instrName,
-                              int mode, int allow_release)
-{
-    INSDS *ip, *ip2, *nip;
-    int   insno;
-
-    csoundLockMutex(csound->API_lock);
-    if (instrName) {
-      insno = named_instr_find(csound, instrName);
-      instr = (MYFLT) insno;
-    } else insno = instr;
 
-    if (UNLIKELY(insno < 1 || insno > (int) csound->engineState.maxinsno ||
-                 csound->engineState.instrtxtp[insno] == NULL)) {
-      csoundUnlockMutex(csound->API_lock);
-      return CSOUND_ERROR;
-    }
+void killInstance_enqueue(CSOUND *csound, MYFLT instr, int insno,
+                          INSDS *ip, int mode,
+                          int allow_release);
 
-    if (UNLIKELY(mode < 0 || mode > 15 || (mode & 3) == 3)) {
-      csoundUnlockMutex(csound->API_lock);
-      return CSOUND_ERROR;
-    }
-    ip = &(csound->actanchor);
-    ip2 = NULL;
-
-    while ((ip = ip->nxtact) != NULL && (int) ip->insno != insno);
-    if (UNLIKELY(ip == NULL)) {
-      csoundUnlockMutex(csound->API_lock);
-      return CSOUND_ERROR;
-    }
+void killInstance(CSOUND *csound, MYFLT instr, int insno, INSDS *ip,
+                         int mode, int allow_release) {
+   INSDS *ip2 = NULL, *nip;
     do {                        /* This loop does not terminate in mode=0 */
       nip = ip->nxtact;
       if (((mode & 8) && ip->offtim >= 0.0) ||
@@ -2480,6 +2460,7 @@ PUBLIC int csoundKillInstance(CSOUND *csound, MYFLT instr, char *instrName,
       }
       ip = nip;
     } while (ip != NULL && (int) ip->insno == insno);
+
     if (ip2 != NULL) {
       if (allow_release) {
         xturnoff(csound, ip2);
@@ -2488,12 +2469,49 @@ PUBLIC int csoundKillInstance(CSOUND *csound, MYFLT instr, char *instrName,
         xturnoff_now(csound, ip2);
       }
     }
+}
+
+int csoundKillInstanceInternal(CSOUND *csound, MYFLT instr, char *instrName,
+                               int mode, int allow_release, int async)
+{
+  INSDS *ip;
+  int   insno;
+
+  if (instrName) {
+    insno = named_instr_find(csound, instrName);
+    instr = (MYFLT) insno;
+  } else insno = instr;
+
+  if (UNLIKELY(insno < 1 || insno > (int) csound->engineState.maxinsno ||
+               csound->engineState.instrtxtp[insno] == NULL)) {
+    return CSOUND_ERROR;
+  }
+
+  if (UNLIKELY(mode < 0 || mode > 15 || (mode & 3) == 3)) {
+    csoundUnlockMutex(csound->API_lock);
+    return CSOUND_ERROR;
+  }
+  ip = &(csound->actanchor);
+
+  while ((ip = ip->nxtact) != NULL && (int) ip->insno != insno);
+  if (UNLIKELY(ip == NULL)) {
+    return CSOUND_ERROR;
+  }
+
+  if (async) {
+    csoundLockMutex(csound->API_lock);
+    killInstance(csound, instr, insno, ip, mode, allow_release);
     csoundUnlockMutex(csound->API_lock);
-    return CSOUND_SUCCESS;
+  }
+  else
+    killInstance_enqueue(csound, instr, insno, ip, mode, allow_release);
+  return CSOUND_SUCCESS;
 }
 
 
 
+
+
 /**
    In realtime mode, this function takes care of the init pass in a
    separate thread.
diff --git a/Engine/linevent.c b/Engine/linevent.c
index 2df0400..140245f 100644
--- a/Engine/linevent.c
+++ b/Engine/linevent.c
@@ -57,6 +57,7 @@
 static void sensLine(CSOUND *csound, void *userData);
 
 #define STA(x)   (csound->lineventStatics.x)
+#define MAXSTR 1048576 /* 1MB */
 
 void RTLineset(CSOUND *csound)      /* set up Linebuf & ready the input files */
 {                                   /*     callable once from musmon.c        */
@@ -64,8 +65,11 @@ void RTLineset(CSOUND *csound)      /* set up Linebuf & ready the input files */
     /* csound->lineventGlobals = (LINEVENT_GLOBALS*) */
     /*                            csound->Calloc(csound, */
     /*                            sizeof(LINEVENT_GLOBALS)); */
+
     STA(linebufsiz) = LBUFSIZ1;
     STA(Linebuf) = (char *) csound->Calloc(csound, STA(linebufsiz));
+    STA(orchestrab) = (char *) csound->Calloc(csound, MAXSTR);
+    STA(orchestra) = STA(orchestrab);
     STA(prve).opcod = ' ';
     STA(Linebufend) = STA(Linebuf) + STA(linebufsiz);
     STA(Linep) = STA(Linebuf);
@@ -93,6 +97,7 @@ void RTLineset(CSOUND *csound)      /* set up Linebuf & ready the input files */
     else
       if (UNLIKELY((csound->Linefd=open(O->Linename, O_RDONLY|O_NDELAY MODE)) < 0))
         csoundDie(csound, Str("Cannot open %s"), O->Linename);
+    if(csound->oparms->odebug)
     csound->Message(csound, Str("stdmode = %.8x Linefd = %d\n"),
                     STA(stdmode), csound->Linefd);
     csound->RegisterSenseEventCallback(csound, sensLine, NULL);
@@ -107,6 +112,7 @@ void RTclose(CSOUND *csound)
     if (csound->oparms->Linein == 0)
       return;
     csound->oparms->Linein = 0;
+    if(csound->oparms->odebug)
     csound->Message(csound, Str("stdmode = %.8x Linefd = %d\n"),
                     STA(stdmode), csound->Linefd);
 #ifdef PIPES
@@ -123,6 +129,7 @@ void RTclose(CSOUND *csound)
             csoundDie(csound, Str("Failed to set file status\n"));
 #endif
       }
+
 //csound->Free(csound, csound->lineventGlobals);
 //csound->lineventGlobals = NULL;
 }
@@ -142,20 +149,28 @@ static CS_NOINLINE int linevent_alloc(CSOUND *csound, int reallocsize)
 {
     volatile jmp_buf tmpExitJmp;
     int         err;
+    unsigned int tmp;
 
     if (reallocsize > 0) {
+      /* VL 20-11-17 need to record the STA(Linep) offset
+         in relation to STA(Linebuf) */
+      tmp = (STA(Linep) - STA(Linebuf));
       STA(Linebuf) = (char *) csound->ReAlloc(csound,
                                               (void *) STA(Linebuf), reallocsize);
+
       STA(linebufsiz) = reallocsize;
-      // csound->Message(csound, "realloc: %d\n", reallocsize);
       STA(Linebufend) = STA(Linebuf) + STA(linebufsiz);
-      STA(Linep) = STA(Linebuf);
+      /* VL 20-11-17 so we can place it in the correct position
+         after reallocation */
+      STA(Linep) =  STA(Linebuf) + tmp;
     } else if (STA(Linebuf)==NULL) {
        STA(linebufsiz) = LBUFSIZ1;
        STA(Linebuf) = (char *) csound->Calloc(csound, STA(linebufsiz));
     }
-    if (STA(Linebuf) == NULL) return 1;
-
+    if (STA(Linebuf) == NULL) {
+       return 1;
+    }
+    //csound->Message(csound, "1. realloc: %d\n", reallocsize);
     if (STA(Linep)) return 0;
     csound->Linefd = -1;
     memcpy((void*) &tmpExitJmp, (void*) &csound->exitjmp, sizeof(jmp_buf));
@@ -164,6 +179,8 @@ static CS_NOINLINE int linevent_alloc(CSOUND *csound, int reallocsize)
       //csound->lineventGlobals = NULL;
       return -1;
     }
+
+
     memcpy((void*) &csound->exitjmp, (void*) &tmpExitJmp, sizeof(jmp_buf));
     STA(prve).opcod = ' ';
     STA(Linebufend) = STA(Linebuf) + STA(linebufsiz);
@@ -181,17 +198,12 @@ void csoundInputMessageInternal(CSOUND *csound, const char *message)
     int32  size = (int32) strlen(message);
     int n;
 
-#if 0
-    struct timespec ts;
-    clock_gettime(CLOCK_MONOTONIC, &ts);
-    csound->Message(csound, Str("input message kcount, %d, %d.%06d\n"),
-                    csound->kcounter,ts.tv_sec,ts.tv_nsec/1000);
-#endif
-
     if ((n=linevent_alloc(csound, 0)) != 0) return;
+
     if (!size) return;
     if (UNLIKELY((STA(Linep) + size) >= STA(Linebufend))) {
       int extralloc = STA(Linep) + size - STA(Linebufend);
+      csound->Message(csound, "realloc %d\n", extralloc);
       // csound->Message(csound, "extralloc: %d %d %d\n",
       //                 extralloc, size, (int)(STA(Linebufend) - STA(Linep)));
       // FIXME -- Coverity points out that this test is always false
@@ -204,8 +216,10 @@ void csoundInputMessageInternal(CSOUND *csound, const char *message)
       }
 #else
       n = linevent_alloc(csound, (STA(linebufsiz) + extralloc));
+
 #endif
     }
+    //csound->Message(csound, "%u = %u\n", (STA(Linep) + size),  STA(Linebufend) );
     memcpy(STA(Linep), message, size);
     if (STA(Linep)[size - 1] != (char) '\n')
       STA(Linep)[size++] = (char) '\n';
@@ -218,10 +232,11 @@ void csoundInputMessageInternal(CSOUND *csound, const char *message)
 static void sensLine(CSOUND *csound, void *userData)
 {
     char    *cp, *Linestart, *Linend;
-    int     c, n, pcnt;
+    int     c, cm1, cpp1, n, pcnt, oflag = STA(oflag);
     IGN(userData);
 
     while (1) {
+      if(STA(oflag) > oflag) break;
       Linend = STA(Linep);
       if (csound->Linefd >= 0) {
         n = read(csound->Linefd, Linend, STA(Linebufend) - Linend);
@@ -246,6 +261,47 @@ static void sensLine(CSOUND *csound, void *userData)
           Linestart = (++cp);
           continue;
         }
+        cm1 = *(cp-1);
+        cpp1 = *(cp+1);
+
+        /* new orchestra input
+         */
+        if(STA(oflag)) {
+          if(c == '}' && cm1 != '}' && cpp1 != '}') {
+            STA(oflag) = 0;
+            STA(orchestra) = STA(orchestrab);
+            csoundCompileOrc(csound, STA(orchestrab));
+            csound->Message(csound, "::compiling orchestra::\n");
+            Linestart = (++cp);
+            continue;
+          }
+          else {
+            char *pc;
+            memcpy(STA(orchestra), Linestart, Linend - Linestart);
+            STA(orchestra) += (Linend - Linestart);
+            *STA(orchestra) = '\0';
+            STA(oflag)++;
+            if((pc = strrchr(STA(orchestrab), '}')) != NULL) {
+
+              if(*(pc-1) != '}') {
+              *pc = '\0';
+               cp = strrchr(Linestart, '}');
+              } else {
+               Linestart = Linend;
+              }
+              } else {
+              Linestart = Linend;
+            }
+            continue;
+          }
+        } else if(c == '{') {
+          STA(oflag) = 1;
+          csound->Message(csound,
+                          "::reading orchestra, use '}' to terminate::\n");
+          cp++;
+          continue;
+        }
+
         switch (c) {                    /* look for legal opcode    */
         case 'e':                       /* Quit realtime            */
         case 'i':
@@ -274,13 +330,16 @@ static void sensLine(CSOUND *csound, void *userData)
             n = scnt;
             while (n-->0) sstrp += strlen(sstrp)+1;
             n = 0;
+
             while ((c = *(++cp)) != '"') {
               /* VL: allow strings to be multi-line */
               // if (UNLIKELY(c == LF)) {
               //  csound->ErrorMsg(csound, Str("unmatched quotes"));
               //  goto Lerr;
               //}
+              if(c == '\\') { cp++; c = *cp;}
               sstrp[n++] = c;                   /*   save in private strbuf */
+
               if (UNLIKELY((sstrp-e.strarg)+n >= strsiz-10)) {
                 e.strarg = csound->ReAlloc(csound, e.strarg, strsiz+=SSTRSIZ);
                 sstrp = e.strarg+n;
@@ -296,6 +355,7 @@ static void sensLine(CSOUND *csound, void *userData)
               e.p[pcnt] = ch.d;           /* set as string with count */
             }
             e.scnt = scnt;
+            //printf("string: %s \n", sstrp);
             continue;
           }
           if (UNLIKELY(!(isdigit(c) || c == '+' || c == '-' || c == '.')))
@@ -364,6 +424,7 @@ static void sensLine(CSOUND *csound, void *userData)
         break;
       STA(Linep) = Linend;                       /* accum the chars          */
     }
+
 }
 
 /* send a lineevent from the orchestra -matt 2001/12/07 */
@@ -419,7 +480,7 @@ int eventOpcode_(CSOUND *csound, LINEVENT *p, int insname, char p1)
       evt.p[1] *= -1;
     }
 
-    if (insert_score_event_at_sample(csound, &evt, csound->icurTime) != 0)
+    if (UNLIKELY(insert_score_event_at_sample(csound, &evt, csound->icurTime) != 0))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("event: error creating '%c' event"),
                                opcod);
diff --git a/Engine/memalloc.c b/Engine/memalloc.c
index 832845a..892549a 100644
--- a/Engine/memalloc.c
+++ b/Engine/memalloc.c
@@ -55,8 +55,8 @@ typedef struct memAllocBlock_s {
 
 static void memdie(CSOUND *csound, size_t nbytes)
 {
-    csound->ErrorMsg(csound, Str("memory allocate failure for %lu"),
-                             (uint32) nbytes);
+    csound->ErrorMsg(csound, Str("memory allocate failure for %zu"),
+                             nbytes);
     csound->LongJmp(csound, CSOUND_MEMORY);
 }
 
@@ -94,7 +94,7 @@ void *mmalloc(CSOUND *csound, size_t size)
 void *mmallocDebug(CSOUND *csound, size_t size, char *file, int line)
 {
     void *ans = mmalloc(csound,size);
-    printf("Alloc %p (%ld) %s:%d\n", ans, size, file, line);
+    printf("Alloc %p (%zu) %s:%d\n", ans, size, file, line);
     return ans;
 }
 
@@ -132,7 +132,7 @@ void *mcalloc(CSOUND *csound, size_t size)
 void *mcallocDebug(CSOUND *csound, size_t size, char *file, int line)
 {
     void *ans = mcalloc(csound,size);
-    printf("Alloc %p (%ld) %s:%d\n", ans, size, file, line);
+    printf("Alloc %p (%zu) %s:%d\n", ans, size, file, line);
     return ans;
 }
 
@@ -241,7 +241,7 @@ void *mrealloc(CSOUND *csound, void *oldp, size_t size)
 void *mreallocDebug(CSOUND *csound, void *oldp, size_t size, char *file, int line)
 {
     void *p = mrealloc(csound, oldp, size);
-    printf("Realloc %p->%p (%ld) %s:%d\n", oldp, p, size, file, line);
+    printf("Realloc %p->%p (%zu) %s:%d\n", oldp, p, size, file, line);
     return p;
 }
 
diff --git a/Engine/memfiles.c b/Engine/memfiles.c
index 61e2120..3ce7ed2 100644
--- a/Engine/memfiles.c
+++ b/Engine/memfiles.c
@@ -44,9 +44,18 @@ static int Load_Het_File_(CSOUND *csound, const char *filnam,
     char buffer[16];
     //void *dummy = 0;
     f = fopen(filnam, "r");
+    if (f==NULL) {
+      csound->Warning(csound, Str("failed to open file %s\n"), filnam);
+      return NOTOK;
+    }
     csoundNotifyFileOpened(csound, filnam, CSFTYPE_HETRO, 0, 0);
     all = (char *)csound->Malloc(csound, (size_t) length);
-    for (i=0; i<6; i++) fgetc(f); /* Skip HETRO */
+    if (6!=fread(buffer, 1, 6, f)) { /* Skip HETRO */
+      csound->Warning(csound, Str("failed to read file %s\n"), filnam);
+      fclose(f);
+      return NOTOK;
+    }
+    //for (i=0; i<6; i++) getc(f); /* Skip HETRO */
     /*dummy =*/ (void)fgets(buffer, 10, f);         /* number of partials */
     x = atoi(buffer);
     memcpy(&all[0], &x, sizeof(int16));
@@ -61,7 +70,7 @@ static int Load_Het_File_(CSOUND *csound, const char *filnam,
       }
       buffer[p]='\0';
       /* Expand as necessary */
-      if (i>=length-4) all = csound->ReAlloc(csound, all, length+=1024);
+      if (UNLIKELY(i>=length-4)) all = csound->ReAlloc(csound, all, length+=1024);
       x = atoi(buffer);
       memcpy(&all[i], &x, sizeof(int16));
     }
@@ -136,7 +145,7 @@ static int Load_CV_File_(CSOUND *csound, const char *filnam,
     /* dummy =*/ (void)fgets(buff, 120, f); /* Skip CVANAL */
     cvh.magic = CVMAGIC;
     p = fgets(buff, 120, f);
-    if (p==NULL) {
+    if (UNLIKELY(p==NULL)) {
       fclose(f);
       return csoundInitError(csound, Str("Ill-formed CV file\n"));
     }
@@ -158,7 +167,7 @@ static int Load_CV_File_(CSOUND *csound, const char *filnam,
     /* Read data until end, pack as MYFLTs */
     for (i=sizeof(CVSTRUCT);;i+=sizeof(MYFLT)) {
       /* Expand as necessary */
-      if (i>=length-sizeof(MYFLT)-4) {
+      if (UNLIKELY(i>=length-sizeof(MYFLT)-4)) {
         //printf("expanding from %p[%d] to\n", all, length);
         all = csound->ReAlloc(csound, all, length+=4096);
         //printf("i=%d                     %p[%d]\n", i, all, length);
@@ -191,8 +200,8 @@ static int Load_LP_File_(CSOUND *csound, const char *filnam,
     csoundNotifyFileOpened(csound, filnam, CSFTYPE_LPC, 0, 0);
     all = (char *)csound->Malloc(csound, (size_t) length);
     for (i=0; i<6; i++) fgetc(f); /* Skip LPANAL */
-    if (4!=fscanf(f, "%d %d %d %d\n",
-                  &lph.headersize, &lph.lpmagic, &lph.npoles, &lph.nvals)) {
+    if (UNLIKELY(4!=fscanf(f, "%d %d %d %d\n",
+                       &lph.headersize, &lph.lpmagic, &lph.npoles, &lph.nvals))) {
       fclose(f);
       return csound->InitError(csound, Str("Ill-formed LPC file\n"));
     }
@@ -217,7 +226,7 @@ static int Load_LP_File_(CSOUND *csound, const char *filnam,
     /* Read data until end, pack as MYFLTs */
     for (i=lph.headersize;;i+=sizeof(MYFLT)) {
       /* Expand as necessary */
-      if (i>=length-sizeof(MYFLT)-8) {
+      if (UNLIKELY(i>=length-sizeof(MYFLT)-8)) {
         //printf("expanding from %p[%d] to\n", all, length);
         all = csound->ReAlloc(csound, all, length+=4096);
         //printf("i=%d                     %p[%d]\n", i, all, length);
@@ -517,7 +526,7 @@ int PVOCEX_LoadFile(CSOUND *csound, const char *fname, PVOCEX_MEMFILE *p)
                                      "after %d frames"), fname, i);
     }
     pp->srate = (MYFLT) fmt.nSamplesPerSec;
-    if (pp->srate != csound->esr) {             /* & chk the data */
+    if (UNLIKELY(pp->srate != csound->esr)) {             /* & chk the data */
       csound->Warning(csound, Str("%s's srate = %8.0f, orch's srate = %8.0f"),
                               fname, pp->srate, csound->esr);
     }
@@ -545,7 +554,7 @@ int PVOCEX_LoadFile(CSOUND *csound, const char *fname, PVOCEX_MEMFILE *p)
 
     /* link into PVOC-EX memfile chain */
     csound->pvx_memfiles = pp;
-    csound->Message(csound, Str("file %s (%ld bytes) loaded into memory\n"),
+    csound->Message(csound, Str("file %s (%d bytes) loaded into memory\n"),
                             fname, (int32) mem_wanted);
 
     memcpy(p, pp, sizeof(PVOCEX_MEMFILE));
@@ -654,8 +663,8 @@ SNDMEMFILE *csoundLoadSoundFile(CSOUND *csound, const char *fileName, void *sfi)
         p->scaleFac = pow(10.0, (double) lpd.gain * 0.05);
       }
     }
-    if ((size_t) sf_readf_float(sf, &(p->data[0]), (sf_count_t) p->nFrames)
-        != p->nFrames) {
+    if (UNLIKELY((size_t) sf_readf_float(sf, &(p->data[0]), (sf_count_t) p->nFrames)
+                 != p->nFrames)) {
       csound->FileClose(csound, fd);
       csound->Free(csound, p->name);
       csound->Free(csound, p->fullName);
@@ -666,11 +675,11 @@ SNDMEMFILE *csoundLoadSoundFile(CSOUND *csound, const char *fileName, void *sfi)
     }
     p->data[p->nFrames] = 0.0f;
     csound->FileClose(csound, fd);
-    csound->Message(csound, Str("File '%s' (sr = %d Hz, %d channel(s), %lu "
+    csound->Message(csound, Str("File '%s' (sr = %d Hz, %d channel(s), %lld "
                                 "sample frames) loaded into memory\n"),
                             p->fullName, (int) sfinfo->samplerate,
                             (int) sfinfo->channels,
-                            (uint32) sfinfo->frames);
+                            sfinfo->frames);
 
     /* link into database */
     cs_hash_table_put(csound, csound->sndmemfiles, (char*)fileName, p);
diff --git a/Engine/musmon.c b/Engine/musmon.c
index beee4ff..db60a04 100644
--- a/Engine/musmon.c
+++ b/Engine/musmon.c
@@ -205,10 +205,10 @@ int musmon(CSOUND *csound)
     dbfs_init(csound, csound->e0dbfs);
     csound->nspout = csound->ksmps * csound->nchnls;  /* alloc spin & spout */
     csound->nspin = csound->ksmps * csound->inchnls; /* JPff: in preparation */
-    csound->spin  = (MYFLT *) csound->Calloc(csound, csound->nspin * sizeof(MYFLT));
-    csound->spraw = (MYFLT *) csound->Calloc(csound, csound->nspout * sizeof(MYFLT));
-    csound->spout = (MYFLT *) csound->Calloc(csound, csound->nspout * sizeof(MYFLT));
-    csound->auxspin = (MYFLT *) csound->Calloc(csound, csound->nspin *sizeof(MYFLT));
+    csound->spin  = (MYFLT *) csound->Calloc(csound, csound->nspin*sizeof(MYFLT));
+    csound->spraw = (MYFLT *) csound->Calloc(csound, csound->nspout*sizeof(MYFLT));
+    csound->spout = (MYFLT *) csound->Calloc(csound, csound->nspout*sizeof(MYFLT));
+    csound->auxspin = (MYFLT *) csound->Calloc(csound, csound->nspin*sizeof(MYFLT));
     /* memset(csound->maxamp, '\0', sizeof(MYFLT)*MAXCHNLS); */
     /* memset(csound->smaxamp, '\0', sizeof(MYFLT)*MAXCHNLS); */
     /* memset(csound->omaxamp, '\0', sizeof(MYFLT)*MAXCHNLS); */
@@ -264,7 +264,7 @@ int musmon(CSOUND *csound)
         O->oMaxLag = IODACSAMPS;
       if (!O->outbufsamps)
         O->outbufsamps = IOBUFSAMPS;
-      else if (O->outbufsamps < 0) {    /* if k-aligned iobufs requested  */
+      else if (UNLIKELY(O->outbufsamps < 0)) { /* if k-aligned iobufs requested  */
         /* set from absolute value */
         O->outbufsamps *= -(csound->ksmps);
         csound->Message(csound, Str("k-period aligned audio buffering\n"));
@@ -297,7 +297,7 @@ int musmon(CSOUND *csound)
       else
         sfnopenout(csound);
     }
-    if (O->playscore!=NULL) corfile_flush(O->playscore);
+    if (O->playscore!=NULL) corfile_flush(csound, O->playscore);
     //csound->scfp
     if (UNLIKELY(O->usingcscore)) {
       if (STA(lsect) == NULL) {
@@ -326,12 +326,12 @@ int musmon(CSOUND *csound)
         csoundDie(csound, Str("cannot reopen cscore.out"));
       }
       else {
-        CORFIL *inf = corfile_create_w();
+        CORFIL *inf = corfile_create_w(csound);
         int c;
-        while ((c=getc(csound->scfp))!=EOF) corfile_putc(c, inf);
+        while ((c=getc(csound->scfp))!=EOF) corfile_putc(csound, c, inf);
         corfile_rewind(inf);
         csound->scorestr = inf;
-        corfile_rm(&csound->scstr);
+        corfile_rm(csound, &csound->scstr);
       }
       csoundNotifyFileOpened(csound, "cscore.out", CSFTYPE_SCORE_OUT, 0, 0);
       /* write to cscore.srt */
@@ -401,12 +401,11 @@ static void delete_pending_rt_events(CSOUND *csound)
     csound->OrcTrigEvts = NULL;
 }
 
-static void cs_beep(CSOUND *csound)
+static inline void cs_beep(CSOUND *csound)
 {
     csound->Message(csound, Str("%c\tbeep!\n"), '\a');
 }
 
-extern int UDPServerClose(CSOUND *csound);
 PUBLIC int csoundCleanup(CSOUND *csound)
 {
     void    *p;
@@ -416,7 +415,7 @@ PUBLIC int csoundCleanup(CSOUND *csound)
 
     csoundLockMutex(csound->API_lock);
     if (csound->QueryGlobalVariable(csound,"::UDPCOM")
-       != NULL) UDPServerClose(csound);
+       != NULL) csoundUDPServerClose(csound);
 
     while (csound->evtFuncChain != NULL) {
       p = (void*) csound->evtFuncChain;
@@ -460,13 +459,13 @@ PUBLIC int csoundCleanup(CSOUND *csound)
 
     orcompact(csound);
 
-    corfile_rm(&csound->scstr);
+    corfile_rm(csound, &csound->scstr);
 
     /* print stats only if musmon was actually run */
     /* NOT SURE HOW   ************************** */
     {
       csound->Message(csound, Str("end of score.\t\t   overall amps:"));
-      corfile_rm(&csound->expanded_sco);
+      corfile_rm(csound, &csound->expanded_sco);
       for (n = 0; n < csound->nchnls; n++) {
         if (csound->smaxamp[n] > csound->omaxamp[n])
           csound->omaxamp[n] = csound->smaxamp[n];
@@ -495,12 +494,12 @@ PUBLIC int csoundCleanup(CSOUND *csound)
     if (!csound->enableHostImplementedAudioIO) {
       sfclosein(csound);
       sfcloseout(csound);
-      if (!csound->oparms->sfwrite)
+      if (UNLIKELY(!csound->oparms->sfwrite))
         csound->Message(csound, Str("no sound written to disk\n"));
     }
     /* close any remote.c sockets */
     if (csound->remoteGlobals) remote_Cleanup(csound);
-    if (csound->oparms->ringbell)
+    if (UNLIKELY(csound->oparms->ringbell))
       cs_beep(csound);
 
     csoundUnlockMutex(csound->API_lock);
@@ -534,9 +533,9 @@ int turnon(CSOUND *csound, TURNON *p)
     evt.pcnt = 3;
 
     if (csound->ISSTRCOD(*p->insno)) {
-    char *ss = get_arg_string(csound,*p->insno);
-    insno = csound->strarg2insno(csound,ss,1);
-    if (insno <= 0L)
+      char *ss = get_arg_string(csound,*p->insno);
+      insno = csound->strarg2insno(csound,ss,1);
+      if (insno <= 0L)
         return NOTOK;
     } else insno = *p->insno;
     evt.p[1] = (MYFLT) insno;
@@ -558,8 +557,8 @@ int turnon_S(CSOUND *csound, TURNON *p)
     evt.opcod = 'i';
     evt.pcnt = 3;
     insno = csound->strarg2insno(csound, ((STRINGDAT *)p->insno)->data, 1);
-    if (insno <= 0L)
-        return NOTOK;
+    if (UNLIKELY(insno <= 0L))
+      return NOTOK;
     evt.p[1] = (MYFLT) insno;
     evt.p[2] = *p->itime;
     evt.p[3] = FL(-1.0);
@@ -573,11 +572,11 @@ static void print_amp_values(CSOUND *csound, int score_evt)
 {
     CSOUND        *p = csound;
     MYFLT         *maxp, *smaxp;
-    uint32 *maxps, *smaxps;
-    int32          *rngp, *srngp;
+    uint32        *maxps, *smaxps;
+    int32         *rngp, *srngp;
     int           n;
 
-    if (STA(segamps) || (p->rngflg && STA(sormsg))) {
+    if (UNLIKELY(STA(segamps) || (p->rngflg && STA(sormsg)))) {
       if (score_evt)
         p->Message(p, "B%7.3f ..%7.3f T%7.3f TT%7.3f M:",
                       p->prvbt - p->beatOffs,  p->curbt - p->beatOffs,
@@ -914,7 +913,7 @@ int sensevents(CSOUND *csound)
     int     conn, *sinp;
 
     csdebug_data_t *data = (csdebug_data_t *) csound->csdebug_data;
-    if (data && data->status == CSDEBUG_STATUS_STOPPED) {
+    if (UNLIKELY(data && data->status == CSDEBUG_STATUS_STOPPED)) {
         return 0; /* don't process events if we're in debug mode and stopped */
     }
     if (UNLIKELY(csound->MTrkend && O->termifend)) {   /* end of MIDI file:  */
@@ -1224,6 +1223,7 @@ int insert_score_event_at_sample(CSOUND *csound, EVTBLK *evt, int64_t time_ofs)
     case 'a':
       if (UNLIKELY(evt->pcnt < 3))
         goto pfld_err;
+      /* fall through */
     case 'd':
     cont:
       /* calculate actual start time in seconds and k-periods */
@@ -1251,7 +1251,7 @@ int insert_score_event_at_sample(CSOUND *csound, EVTBLK *evt, int64_t time_ofs)
       /* calculate the length in beats */
       if (evt->p3orig > FL(0.0))
         evt->p3orig = (MYFLT) ((double) evt->p3orig / st->ibeatTime);
-      /* fall through required */
+      /* fall through */
     case 'q':                         /* mute instrument */
       /* check for a valid instrument number or name */
       if (evt->opcod=='d') {
@@ -1282,6 +1282,7 @@ int insert_score_event_at_sample(CSOUND *csound, EVTBLK *evt, int64_t time_ofs)
     case 'a':                         /* advance score time */
       /* calculate the length in beats */
       evt->p3orig = (MYFLT) ((double) evt->p3orig *csound->esr/ st->ibeatTime);
+      /* fall through */
     case 'f':                         /* function table */
       break;
     case 'e':                         /* end of score, */
diff --git a/Engine/namedins.c b/Engine/namedins.c
index 67b2a3c..ec10858 100644
--- a/Engine/namedins.c
+++ b/Engine/namedins.c
@@ -33,10 +33,11 @@ int check_instr_name(char *s)
 {
     char    *c = s;
 
-    if (!*c) return 0;  /* empty */
-    if (!isalpha(*c) && *c != '_') return 0;    /* chk if 1st char is valid */
+    if (UNLIKELY(!*c)) return 0;  /* empty */
+    if (UNLIKELY(!isalpha(*c) &&
+                 *c != '_')) return 0;    /* chk if 1st char is valid */
     while (*++c)
-      if (!isalnum(*c) && *c != '_') return 0;
+      if (UNLIKELY(!isalnum(*c) && *c != '_')) return 0;
     return 1;   /* no errors */
 }
 
@@ -160,8 +161,9 @@ int32 strarg2opcno(CSOUND *csound, void *p, int is_string, int force_opcode)
 /*   return value:                                              */
 /*      pointer to the output string; if 's' is not NULL, it is */
 /*      always the same as 's', otherwise it is allocated with  */
-/*      csound->Malloc() and the caller is responsible for freeing the */
-/*      allocated memory with csound->Free() or csound->Free()         */
+/*      csound->Malloc() and the caller is responsible for      */
+/*      freeing the allocated memory with csound->Free() or     */
+/*      csound->Free()                                          */
 
 char *strarg2name(CSOUND *csound, char *s, void *p, const char *baseName,
                                   int is_string)
@@ -230,7 +232,7 @@ PUBLIC int csoundCreateGlobalVariable(CSOUND *csound,
 {
     void* p;
     /* create new empty database if it does not exist yet */
-    if (csound->namedGlobals == NULL) {
+    if (UNLIKELY(csound->namedGlobals == NULL)) {
       csound->namedGlobals = cs_hash_table_create(csound);
       if (UNLIKELY(csound->namedGlobals == NULL))
         return CSOUND_MEMORY;
@@ -264,8 +266,8 @@ PUBLIC void *csoundQueryGlobalVariable(CSOUND *csound, const char *name)
     if (csound->namedGlobals == NULL) return NULL;
 
     /* check for a valid name */
-    if (name == NULL) return NULL;
-    if (name[0] == '\0') return NULL;
+    if (UNLIKELY(name == NULL)) return NULL;
+    if (UNLIKELY(name[0] == '\0')) return NULL;
 
     return cs_hash_table_get(csound, csound->namedGlobals, (char*) name);
 }
diff --git a/Engine/new_orc_parser.c b/Engine/new_orc_parser.c
index 330a8d8..fcb9f99 100644
--- a/Engine/new_orc_parser.c
+++ b/Engine/new_orc_parser.c
@@ -64,7 +64,7 @@ extern void print_tree(CSOUND *, char *, TREE *);
 extern TREE* verify_tree(CSOUND *, TREE *, TYPE_TABLE*);
 extern TREE *csound_orc_expand_expressions(CSOUND *, TREE *);
 extern TREE* csound_orc_optimize(CSOUND *, TREE *);
-extern void csp_orc_analyze_tree(CSOUND* csound, TREE* root);
+//extern void csp_orc_analyze_tree(CSOUND* csound, TREE* root);
 extern void csp_orc_sa_print_list(CSOUND*);
 
 #if 0
@@ -90,7 +90,7 @@ uint64_t make_location(PRE_PARM *qq)
 }
 
 // Code to add #includes of UDOs
-static void add_include_udo_dir(CORFIL *xx)
+static void add_include_udo_dir(CSOUND *csound, CORFIL *xx)
 {
 #if defined(HAVE_DIRENT_H)
     char *dir = getenv("CS_UDO_DIR");
@@ -113,14 +113,14 @@ static void add_include_udo_dir(CORFIL *xx)
             strlcat(buff, fname, 1024);
             strlcat(buff, "\"\n", 1024);
             if (strlen(buff)>768) {
-              corfile_preputs(buff, xx);
+              corfile_preputs(csound, buff, xx);
               buff[0] ='\0';
             }
           }
         }
         closedir(udo);
         strlcat(buff, "###\n", 1024);
-        corfile_preputs(buff, xx);
+        corfile_preputs(csound, buff, xx);
       }
     }
     //printf("Giving\n%s", corfile_body(xx));
@@ -140,39 +140,39 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
       csound_prelex_init(&qq.yyscanner);
       csound_preset_extra(&qq, qq.yyscanner);
       qq.line = csound->orcLineOffset;
-      csound->expanded_orc = corfile_create_w();
+      csound->expanded_orc = corfile_create_w(csound);
       file_to_int(csound, "**unknown**");
       if (str==NULL) {
         char bb[80];
-
-        if (csound->orchstr==NULL && !csound->oparms->daemon)
+        if (UNLIKELY(csound->orchstr==NULL && !csound->oparms->daemon))
           csound->Die(csound,
-                      Str("Failed to open input file %s\n"), csound->orchname);
-        else if(csound->orchstr==NULL && csound->oparms->daemon)  return NULL;
+                      Str("parser: failed to open input file %s\n"),
+                      csound->orchname);
+        else if (csound->orchstr==NULL && csound->oparms->daemon)  return NULL;
 
-        add_include_udo_dir(csound->orchstr);
+        add_include_udo_dir(csound, csound->orchstr);
         if (csound->orchname==NULL ||
             csound->orchname[0]=='\0') csound->orchname = csound->csdname;
         /* We know this is the start so stack is empty so far */
         snprintf(bb, 80, "#source %d\n",
                 qq.lstack[0] = file_to_int(csound, csound->orchname));
-        corfile_puts(bb, csound->expanded_orc);
+        corfile_puts(csound, bb, csound->expanded_orc);
         snprintf(bb, 80, "#line %d\n", csound->orcLineOffset);
-        corfile_puts(bb, csound->expanded_orc);
+        corfile_puts(csound, bb, csound->expanded_orc);
       }
       else {
         char bb[80];
         if (csound->orchstr == NULL ||
             corfile_body(csound->orchstr) == NULL)
-          csound->orchstr = corfile_create_w();
+          csound->orchstr = corfile_create_w(csound);
         else
           corfile_reset(csound->orchstr);
         snprintf(bb, 80, "#line %d\n", csound->orcLineOffset);
-        corfile_puts(bb, csound->orchstr);
-        corfile_puts(str, csound->orchstr);
-        corfile_puts("\n#exit\n", csound->orchstr);
-        corfile_putc('\0', csound->orchstr);
-        corfile_putc('\0', csound->orchstr);
+        corfile_puts(csound, bb, csound->orchstr);
+        corfile_puts(csound, str, csound->orchstr);
+        corfile_puts(csound, "\n#exit\n", csound->orchstr);
+        corfile_putc(csound, '\0', csound->orchstr);
+        corfile_putc(csound, '\0', csound->orchstr);
       }
 
       csound->DebugMsg(csound, "Calling preprocess on >>%s<<\n",
@@ -190,7 +190,7 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
       csound_prelex_destroy(qq.yyscanner);
       csound->DebugMsg(csound, "yielding >>%s<<\n",
                        corfile_body(csound->expanded_orc));
-      corfile_rm(&csound->orchstr);
+      corfile_rm(csound, &csound->orchstr);
 
     }
     {
@@ -221,8 +221,8 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
       //printf("%p \n", astTree);
       //print_tree(csound, "AST - AFTER csound_orcparse()\n", astTree);
       //csp_orc_sa_cleanup(csound);
-      corfile_rm(&csound->expanded_orc);
-      if (csound->oparms->odebug) csp_orc_sa_print_list(csound);
+      corfile_rm(csound, &csound->expanded_orc);
+      if (UNLIKELY(csound->oparms->odebug)) csp_orc_sa_print_list(csound);
       if (UNLIKELY(csound->synterrcnt)) err = 3;
       if (LIKELY(err == 0)) {
         if (csound->oparms->odebug) csound->Message(csound,
@@ -255,7 +255,6 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
       typeTable->localPool = typeTable->instr0LocalPool;
       typeTable->labelList = NULL;
 
-      /**** THIS NEXT LINE IS WRONG AS err IS int WHILE FN RETURNS TREE* ****/
       astTree = verify_tree(csound, astTree, typeTable);
 //      csound->Free(csound, typeTable->instr0LocalPool);
 //      csound->Free(csound, typeTable->globalPool);
@@ -270,9 +269,9 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
                           Str("Parsing failed due to %d semantic error%s!\n"),
                           csound->synterrcnt, csound->synterrcnt==1?"":"s");
         else if (csound->synterrcnt)
-          csound->Message(csound, Str("Parsing failed to syntax errors\n"));
+          csound->Message(csound, Str("Parsing failed due to syntax errors\n"));
         else
-          csound->Message(csound, Str("Parsing failed due no input!\n"));
+          csound->Message(csound, Str("Parsing failed due to no input!\n"));
         goto ending;
       }
       err = 0;
@@ -292,10 +291,10 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
         csoundDeleteTree(csound, astTree);
         if (typeTable != NULL) {
           csoundFreeVarPool(csound, typeTable->globalPool);
-          if(typeTable->instr0LocalPool != NULL) {
+          if (typeTable->instr0LocalPool != NULL) {
             csoundFreeVarPool(csound, typeTable->instr0LocalPool);
           }
-          if(typeTable->localPool != typeTable->instr0LocalPool) {
+          if (typeTable->localPool != typeTable->instr0LocalPool) {
             csoundFreeVarPool(csound, typeTable->localPool);
           }
           csound->Free(csound, typeTable);
@@ -311,13 +310,13 @@ TREE *csoundParseOrc(CSOUND *csound, const char *str)
       newRoot->markup = typeTable;
       newRoot->next = astTree;
 
-      /* if(str!=NULL){ */
+      /* if (str!=NULL){ */
       /*        if (typeTable != NULL) { */
       /*     csoundFreeVarPool(csound, typeTable->globalPool); */
-      /*     if(typeTable->instr0LocalPool != NULL) { */
+      /*     if (typeTable->instr0LocalPool != NULL) { */
       /*       csoundFreeVarPool(csound, typeTable->instr0LocalPool); */
       /*     } */
-      /*     if(typeTable->localPool != typeTable->instr0LocalPool) { */
+      /*     if (typeTable->localPool != typeTable->instr0LocalPool) { */
       /*       csoundFreeVarPool(csound, typeTable->localPool); */
       /*     } */
       /*     csound->Free(csound, typeTable); */
diff --git a/Engine/parse_param.h b/Engine/parse_param.h
index 0fe3253..b5b0aa5 100644
--- a/Engine/parse_param.h
+++ b/Engine/parse_param.h
@@ -1,3 +1,25 @@
+/*
+    parse-param.h:
+
+    Copyright (C) 2012 John ffitch
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
 #ifndef __PARSE_PARAM_H
 #define __PARSE_PARAM_H
 
diff --git a/Engine/pools.c b/Engine/pools.c
index b45313b..692de4e 100644
--- a/Engine/pools.c
+++ b/Engine/pools.c
@@ -1,3 +1,25 @@
+/*
+    pools.c:
+
+    Copyright (C) 2012 Steven Yi
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
 
 #include "csoundCore.h"
 #include "pools.h"
@@ -15,10 +37,10 @@ MYFLT_POOL* myflt_pool_create(CSOUND* csound) {
 }
 
 void myflt_pool_free(CSOUND *csound, MYFLT_POOL *pool){
-  if (pool != NULL) {
-    csound->Free(csound, pool->values);
-    csound->Free(csound, pool);
-  }
+    if (pool != NULL) {
+      csound->Free(csound, pool->values);
+      csound->Free(csound, pool);
+    }
 }
 
 int myflt_pool_indexof(MYFLT_POOL* pool, MYFLT value) {
@@ -26,7 +48,7 @@ int myflt_pool_indexof(MYFLT_POOL* pool, MYFLT value) {
     int i;
 
     for (i = 0; i < pool->count; i++) {
-      if(pool->values[i].value == value) {
+      if (pool->values[i].value == value) {
         retVal = i;
         break;
       }
@@ -40,7 +62,7 @@ int myflt_pool_find_or_add(CSOUND* csound, MYFLT_POOL* pool, MYFLT value) {
 
     if (index == -1) {
 
-      if (pool->count > 0 && pool->count % POOL_SIZE == 0) {
+      if (UNLIKELY(pool->count > 0 && pool->count % POOL_SIZE == 0)) {
         pool->max += POOL_SIZE;
         pool->values = csound->ReAlloc(csound, pool->values,
                                        pool->max * sizeof
diff --git a/Engine/rdscor.c b/Engine/rdscor.c
index dc4a32e..38f4a36 100644
--- a/Engine/rdscor.c
+++ b/Engine/rdscor.c
@@ -35,13 +35,15 @@ char* get_arg_string(CSOUND *csound, MYFLT p)
     }
     ss = ip->strarg;  /* look at this instr's strarg */
 
-    union {
-      MYFLT d;
-      int32 i;
-    } ch;
-    ch.d = p; n = ch.i&0xffff;
-    while (n-- > 0) {
-      ss += strlen(ss)+1;
+    {
+      union {
+        MYFLT d;
+        int32 i;
+      } ch;
+      ch.d = p; n = ch.i&0xffff;
+      while (n-- > 0) {
+        ss += strlen(ss)+1;
+      }
     }
     return ss;
 }
@@ -62,7 +64,7 @@ static int scanflt(CSOUND *csound, MYFLT *pfld)
     while ((c = corfile_getc(csound->scstr)) == ' ' ||
            c == '\t')  /* skip leading white space */
         ;
-    if (c == ';') {             /* Comments terminate line */
+    if (UNLIKELY(c == ';')) {             /* Comments terminate line */
       flushline(csound);
       return 0;
     }
@@ -179,7 +181,6 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
       case 'e':
         e->opcod = c;
         e->pcnt = 0;
-
         return(1);
       case EOF:                          /* necessary for cscoreGetEvent */
         return(0);
@@ -211,7 +212,7 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
                                        (int)e->p[1],(int)e->p[2],
                                        (int)e->p[3],(int)e->p[4]);
                       new = (MYFLT*) csound->Malloc(csound, sizeof(MYFLT)*PMAX);
-                      if (new==NULL) {
+                      if (UNLIKELY(new==NULL)) {
                         fprintf(stderr, Str("Out of Memory\n"));
                         exit(7);
                       }
@@ -256,10 +257,10 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
           return 1;
         }
         e->pcnt = pp - &e->p[0];                   /* count the pfields */
-        if (e->pcnt>=PMAX) e->pcnt += e->c.extra[0]; /* and overflow fields */
+        if (UNLIKELY(e->pcnt>=PMAX))
+          e->pcnt += e->c.extra[0];                /* and overflow fields */
         if (csound->sstrlen) {        /* if string arg present, save it */
-          e->strarg = csound->Malloc(csound, csound->sstrlen); /* FIXME:       */
-          memcpy(e->strarg, csound->sstrbuf, csound->sstrlen); /* leaks memory */
+          e->strarg = csound->sstrbuf; csound->sstrbuf = NULL;
           e->scnt = csound->scnt;
           csound->sstrlen = 0;
         }
@@ -267,6 +268,6 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
         return 1;
       }
     }
-    corfile_rm(&(csound->scstr));
+    corfile_rm(csound, &(csound->scstr));
     return 0;
 }
diff --git a/Engine/scope.c b/Engine/scope.c
index 83913a2..0dd44fd 100644
--- a/Engine/scope.c
+++ b/Engine/scope.c
@@ -38,7 +38,7 @@ extern void csound_scolex_destroy(void *);
       corfile_puts(buff, csound->expanded_sco);
       qq.line = 1;
       csound_prslex(csound, qq.yyscanner);
-      csound->DebugMsg(csound, "yielding >>%s<<\n",
+      csound->Message(csound, "yielding >>%s<<\n",
                        corfile_body(csound->expanded_sco));
       csound_prslex_destroy(qq.yyscanner);
       corfile_rm(&csound->scorestr);
diff --git a/Engine/scsort.c b/Engine/scsort.c
index fdc34a1..f33fd4a 100644
--- a/Engine/scsort.c
+++ b/Engine/scsort.c
@@ -42,11 +42,11 @@ char *scsortstr(CSOUND *csound, CORFIL *scin)
     CORFIL *sco;
 
     csound->scoreout = NULL;
-    if(csound->scstr == NULL && (csound->engineStatus & CS_STATE_COMP) == 0) {
-       first = 1;
-       sco = csound->scstr = corfile_create_w();
+    if (csound->scstr == NULL && (csound->engineStatus & CS_STATE_COMP) == 0) {
+      first = 1;
+      sco = csound->scstr = corfile_create_w(csound);
     }
-    else sco = corfile_create_w();
+    else sco = corfile_create_w(csound);
     csound->sectcnt = 0;
     sread_initstr(csound, scin);
 
@@ -59,15 +59,17 @@ char *scsortstr(CSOUND *csound, CORFIL *scin)
     }
     if (first) {
       if (m==0)
-        corfile_puts("f0 800000000000.0\ne\n", sco); /* ~25367 years */
-      else corfile_puts("e\n", sco);
+        corfile_puts(csound, "f0 800000000000.0\ne\n", sco); /* ~25367 years */
+      else corfile_puts(csound, "e\n", sco);
     }
-    corfile_flush(sco);
+    corfile_flush(csound, sco);
     sfree(csound);
-    if (first) return sco->body;
+    if (first) {
+      return sco->body;
+    }
     else {
       char *str = cs_strdup(csound,sco->body);
-      corfile_rm(&(sco));
+      corfile_rm(csound, &(sco));
       return str;
     }
 }
diff --git a/Engine/scxtract.c b/Engine/scxtract.c
index e063317..6c14819 100644
--- a/Engine/scxtract.c
+++ b/Engine/scxtract.c
@@ -42,10 +42,12 @@ int scxtract(CSOUND *csound, CORFIL *scin, FILE *xfile)
 
     EXTRACT_STATICS* extractStatics =  csound->Calloc(csound,
                                                       sizeof(EXTRACT_STATICS));
-
+    corfile_seek(scin, 0, SEEK_END);
+    corfile_puts(csound, "\n#exit\n", scin);
+    corfile_rewind(scin);
     csound->scoreout = NULL;
     csound->scorestr = scin;
-    csound->scstr = corfile_create_w();
+    csound->scstr = corfile_create_w(csound);
     csound->sectcnt = 0;
     readxfil(csound, extractStatics, xfile);
     sread_initstr(csound, scin);
@@ -56,7 +58,8 @@ int scxtract(CSOUND *csound, CORFIL *scin, FILE *xfile)
       extract(csound, extractStatics);
       swritestr(csound, csound->scstr, 1);
     }
-    corfile_flush(csound->scstr);
+    //printf("***extracted: >>%s<<\n", csound->scstr->body);
+    corfile_flush(csound, csound->scstr);
     sfree(csound);              /* return all memory used */
     csound->Free(csound, extractStatics);
     return 0;
diff --git a/Engine/sort.c b/Engine/sort.c
index 5f56017..fe3c67b 100644
--- a/Engine/sort.c
+++ b/Engine/sort.c
@@ -231,6 +231,7 @@ static void smoothsort(SRTBLK *A[], const int N)
     /* element 0 processed */
 }
 
+
 void sort(CSOUND *csound)
 {
     SRTBLK *bp;
@@ -261,6 +262,9 @@ void sort(CSOUND *csound)
       case 's':
         bp->preced = 'a';
         break;
+      case 'x':
+        n--;
+        break;
       case -1:
       case 'y':
         break;
@@ -275,8 +279,10 @@ void sort(CSOUND *csound)
       /* Get a temporary array and populate it */
       A = ((SRTBLK**) csound->Malloc(csound, n*sizeof(SRTBLK*)));
       bp = csound->frstbp;
-      for (i=0; i<n; i++,bp = bp->nxtblk)
+      for (i=0; i<n; i++,bp = bp->nxtblk) {
         A[i] = bp;
+        if (bp->text[0]=='x') i--; /* try to ignore x opcode */
+      }
       if (LIKELY(A[n-1]->text[0]=='e' || A[n-1]->text[0]=='s'))
         smoothsort(A, n-1);
       else
diff --git a/Engine/sread.c b/Engine/sread.c
index 59923d7..a1aecd5 100644
--- a/Engine/sread.c
+++ b/Engine/sread.c
@@ -33,7 +33,6 @@
 #define NAMELEN 40              /* array size of repeat macro names */
 #define RPTDEPTH 40             /* size of repeat_n arrays (39 loop levels) */
 
-//#define MARGS   (3)
 //#define MACDEBUG (1)
 
 static void print_input_backtrace(CSOUND *csound, int needLFs,
@@ -199,7 +198,7 @@ static int undefine_score_macro(CSOUND *csound, const char *name)
     if (strcmp(name, STA(macros)->name) == 0) {
       mm = STA(macros)->next;
       if (strcmp(STA(macros)->name, "[") != 0)
-        corfile_rm(&(STA(macros)->body));
+        corfile_rm(csound, &(STA(macros)->body));
       csound->Free(csound, STA(macros)->name);
  #ifdef MACDEBUG
       csound->DebugMsg(csound,"%s(%d): corfile is %p\n",
@@ -221,7 +220,7 @@ static int undefine_score_macro(CSOUND *csound, const char *name)
         }
       }
       csound->Free(csound, nn->name);
-      corfile_rm(&nn->body);
+      corfile_rm(csound, &nn->body);
       for (i = 0; i < nn->acnt; i++)
         csound->Free(csound, nn->arg[i]);
       mm->next = nn->next;
@@ -233,7 +232,7 @@ static int undefine_score_macro(CSOUND *csound, const char *name)
 static inline int isNameChar(int c, int pos)
 {
     //c = (int) ((unsigned char) c);
-    if (c<0) return 0;
+    if (UNLIKELY(c<0)) return 0;
     return (isalpha(c) || (pos && (c == '_' || isdigit(c))));
 }
 
@@ -250,6 +249,7 @@ static int getscochar(CSOUND *csound, int expand)
 {
 /* Read a score character, expanding macros if flag set */
     int     c;
+    IGN(expand);
 #ifdef never
 /* top: */
 /*   c = corfile_getc(STA(str)->cf); */
@@ -395,7 +395,7 @@ static int getscochar(CSOUND *csound, int expand)
 /*     MYFLT *pv = vv - 1; */
 /*     char  buffer[100]; */
 /*     int   i; */
-/*     int   type = 0;  /\* 1 -> expecting binary operator,')', or ']'; else 0 *\/ */
+/*     int   type = 0; // 1 -> expecting binary operator,')', or ']'; else 0 */
 /*     *++op = '['; */
 /*     c = getscochar(csound, 1); */
 /*     do { */
@@ -519,7 +519,8 @@ static int getscochar(CSOUND *csound, int expand)
 /*         *++op = c; c = getscochar(csound, 1); break; */
 /*       case ']': */
 /*         if (UNLIKELY(!type)) { */
-/*           scorerr(csound, Str("missing operand before closing bracket in []")); */
+/*           scorerr(csound, */
+/*                   Str("missing operand before closing bracket in []")); */
 /*         } */
 /*         while (*op != '[') { */
 /*           MYFLT v = operate(csound, *(pv-1), *pv, *op); */
@@ -565,7 +566,8 @@ static int getscochar(CSOUND *csound, int expand)
 /*       STA(str)->is_marked_repeat = 0; */
 /*       STA(str)->mac = NULL; STA(str)->line = 1; */
 /* #ifdef MACDEBUG */
-/*       csound->Message(csound,"[] defined as >>%s<<\n", corfile_body(nn->body)); */
+/*       csound->Message(csound,"[] defined as >>%s<<\n", */
+/*                       corfile_body(nn->body)); */
 /* #endif */
 /*       STA(ingappop) = 1; */
 /*       goto top; */
@@ -645,7 +647,8 @@ static int getscochar(CSOUND *csound, int expand)
 /*       corfile_puts(buffer, STA(repeat_mm_n)[STA(repeat_index)]->body); */
 /*       corfile_rewind(STA(repeat_mm_n)[STA(repeat_index)]->body); */
 /* #ifdef MACDEBUG */
-/*       csound->DebugMsg(csound,"%s(%d) corefile: %s %d %d\n", __FILE__, __LINE__, */
+/*       csound->DebugMsg(csound,"%s(%d) corefile: %s %d %d\n", */
+/*                        __FILE__, __LINE__, */
 /*              STA(repeat_mm_n)[STA(repeat_index)]->body->body, */
 /*              STA(repeat_mm_n)[STA(repeat_index)]->body->p, */
 /*              STA(repeat_mm_n)[STA(repeat_index)]->body->len); */
@@ -713,6 +716,7 @@ static int getscochar(CSOUND *csound, int expand)
 /*   return 0; */
 /* } */
 
+#if 0
 static void init_smacros(CSOUND *csound, NAMES *nn)
 {
     S_MACRO *mm;
@@ -765,6 +769,7 @@ static void init_smacros(CSOUND *csound, NAMES *nn)
     mm->next = STA(macros);
     STA(macros) = mm;
 }
+#endif
 
 /* #if never */
 /* void sread_init(CSOUND *csound) */
@@ -784,6 +789,7 @@ static void init_smacros(CSOUND *csound, NAMES *nn)
 void sread_initstr(CSOUND *csound, CORFIL *sco)
 {
     /* sread_alloc_globals(csound); */
+    IGN(sco);
     STA(inputs) = (IN_STACK*) csound->Malloc(csound, 20 * sizeof(IN_STACK));
     STA(input_size) = 20;
     STA(input_cnt) = 0;
@@ -797,14 +803,14 @@ void sread_initstr(CSOUND *csound, CORFIL *sco)
       csound_prslex_init(&qq.yyscanner);
       cs_init_smacros(csound, &qq, csound->smacros);
       csound_prsset_extra(&qq, qq.yyscanner);
-      csound->expanded_sco = corfile_create_w();
+      csound->expanded_sco = corfile_create_w(csound);
       /* printf("Input:\n%s<<<\n", */
       /*        corfile_body(csound->sreadStatics.str->cf)); */
       csound_prslex(csound, qq.yyscanner);
       csound->DebugMsg(csound, "yielding >>%s<<\n",
                        corfile_body(csound->expanded_sco));
       csound_prslex_destroy(qq.yyscanner);
-      corfile_rm(&csound->scorestr);
+      corfile_rm(csound, &csound->scorestr);
       corfile_rewind(csound->expanded_sco);
     }
 }
@@ -941,7 +947,7 @@ int sread(CSOUND *csound)       /*  called from main,  reads from SCOREIN   */
         /* If we are in a repeat of a marked section ('n' statement),
            we must pop those inputs before doing an 'r' repeat. */
         if (STA(str)->is_marked_repeat) {
-          printf("end of n; return to %d\n", STA(str)->oposit);
+          //printf("end of n; return to %d\n", STA(str)->oposit);
           corfile_set(csound->expanded_sco, STA(str)->oposit);
           STA(str)--;
           return rtncod;
@@ -1024,13 +1030,15 @@ int sread(CSOUND *csound)       /*  called from main,  reads from SCOREIN   */
 /*         ungetscochar(csound, c); */
 /*         /\* Define macro for counter *\/ */
 /*         STA(repeat_mm_n)[STA(repeat_index)]->name = */
-/*           csound->Malloc(csound, strlen(STA(repeat_name_n)[STA(repeat_index)])+1); */
+/*           csound->Malloc(csound, */
+/*                          strlen(STA(repeat_name_n)[STA(repeat_index)])+1); */
 /*         strcpy(STA(repeat_mm_n)[STA(repeat_index)]->name, */
 /*                STA(repeat_name_n)[STA(repeat_index)]); */
 /*         STA(repeat_mm_n)[STA(repeat_index)]->acnt = 0; */
 /*         STA(repeat_mm_n)[STA(repeat_index)]->body = corfile_create_r("0"); */
 /* #ifdef MACDEBUG */
-/*         csound->DebugMsg(csound,"%s(%d): repeat %s zero %p\n", __FILE__, __LINE__, */
+/*         csound->DebugMsg(csound,"%s(%d): repeat %s zero %p\n", */
+/*                           __FILE__, __LINE__, */
 /*                STA(repeat_name_n)[STA(repeat_index)], */
 /*                STA(repeat_mm_n)[STA(repeat_index)]->body); */
 /* #endif */
@@ -1079,7 +1087,7 @@ int sread(CSOUND *csound)       /*  called from main,  reads from SCOREIN   */
 /*       } */
 /*       /\* Then remember this state *\/ */
 /*       *(STA(nxp)-2) = 's'; *STA(nxp)++ = LF; */
-/*       if (STA(nxp) >= STA(memend))              /\* if this memblk exhausted *\/ */
+/*       if (STA(nxp) >= STA(memend))     /\* if this memblk exhausted *\/ */
 /*         expand_nxp(csound); */
 /*       { */
 /*         int   c, i; */
@@ -1156,7 +1164,7 @@ int sread(CSOUND *csound)       /*  called from main,  reads from SCOREIN   */
           STA(names)[j].line = STA(str)->line;
           //printf("line-%d\n",STA(names)[j].line);
           if (csound->oparms->msglevel & TIMEMSG)
-            csound->Message(csound,Str("%d: %s position %ld\n"),
+            csound->Message(csound,Str("%d: %s position %d\n"),
                             j, STA(names)[j].name,
                             STA(names)[j].posit);
           STA(op) = getop(csound);
@@ -1227,17 +1235,21 @@ int sread(CSOUND *csound)       /*  called from main,  reads from SCOREIN   */
           goto again;
         }
       case 'x':                         /* Skip section */
+        //printf("***skipping section\n");
+        flushlin(csound);
         while (1) {
           switch (STA(op) = getop(csound)) {
           case 's':
           case 'r':
           case 'm':
           case 'e':
+            //printf("***skip ending with %c\n", STA(op));
             salcblk(csound);            /* place op, blank into text    */
             goto again;
           case EOF:
             goto ending;
           default:
+            //printf("***ignoring %c\n", STA(op));
             flushlin(csound);
           }
         }
@@ -1393,8 +1405,9 @@ static void ifa(CSOUND *csound)
       }
       switch (STA(bp)->pcnt) {               /* newp2, newp3:   */
       case 2: if (STA(warpin)) {             /* for warpin,     */
-          getpfld(csound);                    /*   newp2 follows */
-          STA(bp)->newp2 = STA(warp_factor) * stof(csound, STA(sp)) + STA(clock_base);
+          getpfld(csound);                   /*   newp2 follows */
+          STA(bp)->newp2 = STA(warp_factor) * stof(csound, STA(sp)) +
+            STA(clock_base);
           STA(nxp) = STA(sp);                   /*    (skip text)  */
         }
         else STA(bp)->newp2 = STA(bp)->p2val;   /* else use p2val  */
@@ -1423,7 +1436,7 @@ static void ifa(CSOUND *csound)
          (!STA(bp)->pcnt && (prvbp = STA(bp)->prvblk) != NULL &&
           prvbp->text[0] == 'i')) &&
         (n = prvbp->pcnt - STA(bp)->pcnt) > 0) {
-      printf("carrying p-fields\n");
+      //printf("carrying p-fields\n");
       pcopy(csound, (int) STA(bp)->pcnt + 1, n, prvbp);
       STA(bp)->pcnt += n;
     }
@@ -1568,7 +1581,7 @@ void sfree(CSOUND *csound)       /* free all sorter allocated space */
       //corfile_rm(&(STA(str)->cf));
       STA(str)--;
     }
-    corfile_rm(&(csound->scorestr));
+    corfile_rm(csound, &(csound->scorestr));
 }
 
 static void flushlin(CSOUND *csound)
@@ -1579,7 +1592,7 @@ static void flushlin(CSOUND *csound)
     STA(linpos) = 0;
     STA(lincnt)++;
 }
-
+/* unused at the moment
 static inline int check_preproc_name(CSOUND *csound, const char *name)
 {
     int   i;
@@ -1591,7 +1604,7 @@ static inline int check_preproc_name(CSOUND *csound, const char *name)
     }
     return 1;
 }
-
+*/
 static int sget1(CSOUND *csound)    /* get first non-white, non-comment char */
 {
     int c;
@@ -1724,12 +1737,12 @@ static int sget1(CSOUND *csound)    /* get first non-white, non-comment char */
 /*       csound->DebugMsg(csound,"%s(%d): macro %s %p\n", */
 /*                        __FILE__, __LINE__, mname, mm->body); */
 /* #endif */
-/*       while ((c = getscochar(csound, 0)) != '#') {  /\* Do not expand here!! *\/ */
+/*       while ((c = getscochar(csound, 0)) != '#') { // Do not expand here!! */
 /*         if (UNLIKELY(c==EOF)) */
 /*           scorerr(csound, Str("Syntax error in macro definition")); */
 /*         corfile_putc(c, mm->body); */
 /*         if (c=='\\') { */
-/*           corfile_putc(getscochar(csound, 0), mm->body);    /\* Allow escaped # *\/ */
+/*           corfile_putc(getscochar(csound, 0), mm->body); // Allow escaped # */
 /*         } */
 /*         if (c=='\n') STA(lincnt)++; */
 /*       } */
@@ -1901,6 +1914,7 @@ static MYFLT read_expression(CSOUND *csound)
       *++op = '[';
       c = getscochar(csound, 1);
       do {
+        //printf("read_expression: c=%c\n", c);
         switch (c) {
         case '0': case '1': case '2': case '3': case '4':
         case '5': case '6': case '7': case '8': case '9':
@@ -2019,6 +2033,22 @@ static MYFLT read_expression(CSOUND *csound)
         case '^':
           type = 0;
           *++op = c; c = getscochar(csound, 1); break;
+        case '[':
+          if (UNLIKELY(type)) {
+            scorerr(csound, Str("illegal placement of '[' in [] expression"));
+          }
+          type = 1;
+          {
+            //int i;
+            MYFLT x;
+            //for (i=0;i<=pv-vv;i++) printf(" %lf ", vv[i]);
+            //printf("| %d\n", pv-vv);
+            x = read_expression(csound);
+            *++pv = x;
+            //printf("recursion gives %lf (%lf)\n", x,*(pv-1));
+            //for (i=0;i<pv-vv;i++) printf(" %lf ", vv[i]); printf("| %d\n", pv-vv);
+            c = getscochar(csound, 1); break;
+          }
         case ']':
           if (UNLIKELY(!type)) {
             scorerr(csound, Str("missing operand before closing bracket in []"));
@@ -2028,8 +2058,9 @@ static MYFLT read_expression(CSOUND *csound)
             op--; pv--;
             *pv = v;
           }
-          c = '$';
-          break;
+          //printf("done ]*** *op=%c v=%lg (%c)\n", *op, *pv, c);
+          //getscochar(csound, 1);
+          c = '$'; return *pv;
         case '$':
           break;
         case ' ':               /* Ignore spaces */
diff --git a/Engine/swritestr.c b/Engine/swritestr.c
index 87fbda9..0b3ac63 100644
--- a/Engine/swritestr.c
+++ b/Engine/swritestr.c
@@ -47,7 +47,7 @@ static void fltout(CSOUND *csound, MYFLT n, CORFIL *sco)
 #endif
     /* corfile_puts(buffer, sco); */
     for (c = buffer; *c != '\0'; c++)
-      corfile_putc(*c, sco);
+      corfile_putc(csound, *c, sco);
 }
 
 /*
@@ -78,7 +78,7 @@ void swritestr(CSOUND *csound, CORFIL *sco, int first)
     if ((c = bp->text[0]) != 'w'
         && c != 's' && c != 'e') {      /*   if no warp stmnt but real data,  */
       /* create warp-format indicator */
-      if (first) corfile_puts("w 0 60\n", sco);
+      if (first) corfile_puts(csound, "w 0 60\n", sco);
       lincnt++;
     }
  nxtlin:
@@ -93,28 +93,29 @@ void swritestr(CSOUND *csound, CORFIL *sco, int first)
       break;
     case 'f':
       isntAfunc = 0;
+      /* fall through */
     case 'q':
     case 'i':
     case 'd':
     case 'a':
-      corfile_putc(c, sco);
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, c, sco);
+      corfile_putc(csound, *p++, sco);
       while ((c = *p++) != SP && c != LF)
-        corfile_putc(c, sco);                /* put p1       */
-      corfile_putc(c, sco);
+        corfile_putc(csound, c, sco);                /* put p1       */
+      corfile_putc(csound, c, sco);
       if (c == LF)
         break;
       fltout(csound, bp->p2val, sco);                        /* put p2val,   */
-      corfile_putc(SP, sco);
+      corfile_putc(csound, SP, sco);
       if (first) fltout(csound, bp->newp2, sco);             /*   newp2,     */
       while ((c = *p++) != SP && c != LF)
         ;
-      corfile_putc(c, sco);                /*   and delim  */
+      corfile_putc(csound, c, sco);                /*   and delim  */
       if (c == LF)
         break;
       if (isntAfunc) {
         fltout(csound, bp->p3val, sco);                      /* put p3val,   */
-        corfile_putc(SP, sco);
+        corfile_putc(csound, SP, sco);
         if (first) fltout(csound, bp->newp3, sco);           /*   newp3,     */
         while ((c = *p++) != SP && c != LF)
           ;
@@ -123,7 +124,7 @@ void swritestr(CSOUND *csound, CORFIL *sco, int first)
         char temp[256];
         snprintf(temp,256,"%d ",(int32)bp->p3val);   /* put p3val  */
         fpnum(csound,temp, lincnt, pcnt, sco);
-        corfile_putc(SP, sco);
+        corfile_putc(csound, SP, sco);
         if (first) {
           snprintf(temp,256,"%d ",(int32)bp->newp3);   /* put newp3  */
           fpnum(csound,temp, lincnt, pcnt, sco);
@@ -134,29 +135,30 @@ void swritestr(CSOUND *csound, CORFIL *sco, int first)
       pcnt = 3;
       while (c != LF) {
         pcnt++;
-        corfile_putc(SP, sco);
+        corfile_putc(csound, SP, sco);
         p = pfout(csound,bp,p,lincnt,pcnt, sco);     /* now put each pfield  */
         c = *p++;
       }
-      corfile_putc('\n', sco);
+      corfile_putc(csound, '\n', sco);
       break;
     case 's':
     case 'e':
       if (bp->pcnt > 0) {
         char buffer[80];
         CS_SPRINTF(buffer, "f 0 %f %f\n", bp->p2val, bp->newp2);
-        corfile_puts(buffer, sco);
+        corfile_puts(csound, buffer, sco);
       }
-      corfile_putc(c, sco);
-      corfile_putc(LF, sco);
+      corfile_putc(csound, c, sco);
+      corfile_putc(csound, LF, sco);
       break;
     case 'w':
     case 't':
-      corfile_putc(c, sco);
+      corfile_putc(csound, c, sco);
       while ((c = *p++) != LF)        /* put entire line      */
-        corfile_putc(c, sco);
-      corfile_putc(LF, sco);
+        corfile_putc(csound, c, sco);
+      corfile_putc(csound, LF, sco);
       break;
+    case 'x':
     case 'y':
     case -1:
       break;
@@ -258,7 +260,7 @@ static char *nextp(CSOUND *csound, SRTBLK *bp, char *p,
       while (*p != SP && *p != LF)
         csound->Message(csound,"%c", *p++);
       csound->Message(csound,Str("   Zero substituted\n"));
-      corfile_putc('0', sco);
+      corfile_putc(csound, '0', sco);
     }
     return(p);
 }
@@ -298,7 +300,7 @@ static char *prevp(CSOUND *csound, SRTBLK *bp, char *p,
       while (*p != SP && *p != LF)
         csound->Message(csound,"%c", *p++);
       csound->Message(csound,Str("   Zero substituted\n"));
-      corfile_putc('0', sco);
+      corfile_putc(csound, '0', sco);
     }
     return(p);
 }
@@ -364,7 +366,7 @@ static char *ramp(CSOUND *csound, SRTBLK *bp, char *p,
                                 "has illegal forward or backward ref\n"),
                             csound->sectcnt, lincnt, pcnt);
  put0:
-    corfile_putc('0', sco);
+    corfile_putc(csound, '0', sco);
     return(psav);
 }
 
@@ -433,7 +435,7 @@ static char *expramp(CSOUND *csound, SRTBLK *bp, char *p,
                                 "has illegal forward or backward ref\n"),
                             csound->sectcnt, lincnt, pcnt);
  put0:
-    corfile_putc('0', sco);
+    corfile_putc(csound, '0', sco);
     return(psav);
 }
 
@@ -498,17 +500,17 @@ static char *randramp(CSOUND *csound, SRTBLK *bp, char *p,
                                " illegal forward or backward ref\n"),
                csound->sectcnt,lincnt,pcnt);
  put0:
-    corfile_putc('0', sco);
+    corfile_putc(csound, '0', sco);
     return(psav);
 }
 
 static char *pfStr(CSOUND *csound, char *p, int lincnt, int pcnt, CORFIL *sco)
 {                             /* moves quoted ascii string to SCOREOUT file */
     char *q = p;              /*   with no internal format chk              */
-    corfile_putc(*p++, sco);
+    corfile_putc(csound, *p++, sco);
     while (*p != '"')
-      corfile_putc(*p++, sco);
-    corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
+    corfile_putc(csound, *p++, sco);
     if (UNLIKELY(*p != SP && *p != LF)) {
       csound->Message(csound, Str("swrite: output, sect%d line%d p%d "
                                   "has illegally terminated string   "),
@@ -533,30 +535,30 @@ static char *fpnum(CSOUND *csound, char *p,
     if (*p == '+')
       p++;
     if (*p == '-')
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
     dcnt = 0;
     while (isdigit(*p)) {
       //      printf("*p=%c\n", *p);
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
       dcnt++;
     }
     //    printf("%d:output: %s<<\n", __LINE__, sco);
     if (*p == '.')
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
     while (isdigit(*p)) {
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
       dcnt++;
     }
     //    printf("%d:output: %s<<\n", __LINE__, sco);
     if (*p == 'E' || *p == 'e') { /* Allow exponential notation */
-      corfile_putc(*p++, sco);
+      corfile_putc(csound, *p++, sco);
       dcnt++;
       if (*p == '+' || *p == '-') {
-        corfile_putc(*p++, sco);
+        corfile_putc(csound, *p++, sco);
         dcnt++;
       }
       while (isdigit(*p)) {
-        corfile_putc(*p++, sco);
+        corfile_putc(csound, *p++, sco);
         dcnt++;
       }
     }
@@ -571,7 +573,7 @@ static char *fpnum(CSOUND *csound, char *p,
         csound->Message(csound,"%c", *p++);
       csound->Message(csound,Str("    String truncated\n"));
       if (!dcnt)
-        corfile_putc('0', sco);
+        corfile_putc(csound, '0', sco);
     }
     return(p);
 }
diff --git a/Engine/symbtab.c b/Engine/symbtab.c
index cc1ffea..4f948a0 100644
--- a/Engine/symbtab.c
+++ b/Engine/symbtab.c
@@ -74,7 +74,7 @@ void init_symbtab(CSOUND *csound)
     char *shortName;
 
 
-    if(csound->symbtab == NULL) {
+    if (csound->symbtab == NULL) {
       /* VL 27 02 2015 -- if symbtab exists, do not create it again
         to avoid memory consumption.
        */
@@ -90,22 +90,22 @@ void init_symbtab(CSOUND *csound)
     top = head = cs_hash_table_values(csound, csound->opcodes);
 
     while (head != NULL) {
-        items = head->value;
-        while (items != NULL) {
-            ep = items->value;
+      items = head->value;
+      while (items != NULL) {
+        ep = items->value;
 
-            if (ep->dsblksiz < 0xfffb) {
-                shortName = get_opcode_short_name(csound, ep->opname);
+        if (ep->dsblksiz < 0xfffb) {
+          shortName = get_opcode_short_name(csound, ep->opname);
 
-                add_token(csound, shortName, get_opcode_type(ep));
+          add_token(csound, shortName, get_opcode_type(ep));
 
-                if (shortName != ep->opname) {
-                    csound->Free(csound, shortName);
-                }
-            }
-            items = items->next;
+          if (shortName != ep->opname) {
+            csound->Free(csound, shortName);
+          }
         }
-        head = head->next;
+        items = items->next;
+      }
+      head = head->next;
     }
     csound->Free(csound, top);
     }
@@ -120,7 +120,7 @@ ORCTOKEN *add_token(CSOUND *csound, char *s, int type)
     ORCTOKEN *ans;
     if (a!=NULL) {
       if (type == a->type) return a;
-      if ((type!=T_FUNCTION || a->type!=T_OPCODE))
+      if (UNLIKELY((type!=T_FUNCTION || a->type!=T_OPCODE)))
         csound->Warning(csound,
                         Str("Type confusion for %s (%d,%d), replacing\n"),
                         s, type, a->type);
@@ -177,7 +177,7 @@ ORCTOKEN *lookup_token(CSOUND *csound, char *s, void *yyscanner)
     ORCTOKEN *a;
     ORCTOKEN *ans;
 
-    if (PARSER_DEBUG)
+    if (UNLIKELY(PARSER_DEBUG))
       csound->Message(csound, "Looking up token for: %s\n", s);
 
     if (udoflag == 0) {
@@ -190,7 +190,7 @@ ORCTOKEN *lookup_token(CSOUND *csound, char *s, void *yyscanner)
     }
 
     if (udoflag == 1) {
-      if (csound->oparms->odebug) printf("Found UDO Arg List\n");
+      if (UNLIKELY(csound->oparms->odebug)) printf("Found UDO Arg List\n");
       if (isUDOArgList(s)) {
         ans = new_token(csound, UDO_ARGS_TOKEN);
         ans->lexeme = (char*)csound->Malloc(csound, 1+strlen(s));
@@ -246,8 +246,8 @@ static char map_udo_out_arg_type(char in) {
 
 static void map_args(char* args) {
     while (*args != '\0') {
-        *args = map_udo_out_arg_type(*args);
-        args++;
+      *args = map_udo_out_arg_type(*args);
+      args++;
     }
 }
 
@@ -303,20 +303,20 @@ static int parse_opcode_args(CSOUND *csound, OENTRY *opc)
     in_args = splitArgs(csound, intypes);
     out_args = splitArgs(csound, inm->outtypes);
 
-    if (in_args == NULL) {
+    if (UNLIKELY(in_args == NULL)) {
       synterr(csound,
               Str("invalid input argument types found for opcode %s: %s\n"),
               inm->name, intypes);
       err++;
     }
-    if (out_args == NULL) {
+    if (UNLIKELY(out_args == NULL)) {
       synterr(csound,
               Str("invalid output argument types found for opcode %s: %s\n"),
               inm->name, inm->outtypes);
       err++;
     }
 
-    if(err > 0) goto early_exit;
+    if (UNLIKELY(err > 0)) goto early_exit;
 
     if (*in_args[0] != '0') {
       while (in_args[i] != NULL) {
@@ -334,7 +334,7 @@ static int parse_opcode_args(CSOUND *csound, OENTRY *opc)
           CS_TYPE* type =
             csoundGetTypeWithVarTypeName(csound->typePool, typeSpecifier);
 
-          if (type == NULL) {
+          if (UNLIKELY(type == NULL)) {
             synterr(csound, Str("invalid input type for opcode %s \n"), in_arg);
             err++;
             continue;
@@ -355,7 +355,7 @@ static int parse_opcode_args(CSOUND *csound, OENTRY *opc)
           CS_TYPE* type =
             csoundGetTypeWithVarTypeName(csound->typePool, typeSpecifier);
 
-          if (type == NULL) {
+          if (UNLIKELY(type == NULL)) {
             synterr(csound, Str("invalid input type for opcode %s \n"), in_arg);
             err++;
             continue;
@@ -388,7 +388,7 @@ static int parse_opcode_args(CSOUND *csound, OENTRY *opc)
           CS_TYPE* type =
             csoundGetTypeWithVarTypeName(csound->typePool, typeSpecifier);
 
-          if (type == NULL) {
+          if (UNLIKELY(type == NULL)) {
             synterr(csound, Str("invalid output type for opcode %s"), out_arg);
             err++;
             continue;
@@ -408,7 +408,7 @@ static int parse_opcode_args(CSOUND *csound, OENTRY *opc)
           CS_TYPE* type =
             csoundGetTypeWithVarTypeName(csound->typePool, typeSpecifier);
 
-          if (type == NULL) {
+          if (UNLIKELY(type == NULL)) {
             synterr(csound, Str("invalid output type for opcode %s"), out_arg);
             err++;
             continue;
@@ -538,7 +538,7 @@ int add_udo_definition(CSOUND *csound, char *opname,
     }
 
     /* check if opcode is already defined */
-    if (opc != NULL) {
+    if (UNLIKELY(opc != NULL)) {
         /* IV - Oct 31 2002: redefine old opcode if possible */
       if (UNLIKELY(
                !strcmp(opname, "instr") ||
diff --git a/Engine/twarp.c b/Engine/twarp.c
index e91984b..b162463 100644
--- a/Engine/twarp.c
+++ b/Engine/twarp.c
@@ -176,10 +176,6 @@ int realtset(CSOUND *csound, SRTBLK *bp)
       tp += ((TSEG*)csound->tseg - oldtseg);
       csound->tplim = ((char*)csound->tseg) + csound->tseglen-1;
       csound->tpsave = csound->tseg;
-      /* printf("%p\n", csound->tseg); */
-      /* printf("tplim, tpsave, tp, size = %p, %p, %p, %d\n", */
-      /*        csound->tplim, csound->tpsave, tp, csound->tseglen); */
-      //goto error3;
     }
     tp->betbas = FL(9223372036854775807.0);   /* and cap with large betval */
     return(1);
@@ -190,9 +186,6 @@ int realtset(CSOUND *csound, SRTBLK *bp)
  error2:
     csound->Message(csound,Str("twarp: t has non-positive tempo\n"));
     return(0);
- /* error3: */
- /*    csound->Message(csound,Str("twarp: t segments exceed twarp array\n")); */
- /*    return(0); */
 }
 
 MYFLT realt(CSOUND *csound, MYFLT srctim)
diff --git a/H/compile_ops.h b/H/compile_ops.h
index 5c4db84..9a16653 100644
--- a/H/compile_ops.h
+++ b/H/compile_ops.h
@@ -1,3 +1,26 @@
+/*
+    compile_ops.h:
+
+    Copyright (C) 2013 by Victor Lazzarini
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #include <csoundCore.h>
 
 typedef struct _compile {
diff --git a/H/corfile.h b/H/corfile.h
index 3b8e56a..7bf37ea 100644
--- a/H/corfile.h
+++ b/H/corfile.h
@@ -25,12 +25,12 @@
 
 #define __corfil
 
-CORFIL *corfile_create_w(void);
-CORFIL *corfile_create_r(const char *text);
-void corfile_putc(int c, CORFIL *f);
-void corfile_puts(const char *s, CORFIL *f);
-void corfile_flush(CORFIL *f);
-void corfile_rm(CORFIL **ff);
+CORFIL *corfile_create_w(CSOUND*);
+CORFIL *corfile_create_r(CSOUND*,const char *text);
+void corfile_putc(CSOUND*,int c, CORFIL *f);
+void corfile_puts(CSOUND*,const char *s, CORFIL *f);
+void corfile_flush(CSOUND*,CORFIL *f);
+void corfile_rm(CSOUND*,CORFIL **ff);
 int corfile_getc(CORFIL *f);
 void corfile_ungetc(CORFIL *f);
 char *corfile_fgets(char *b, int len, CORFIL *f);
@@ -53,6 +53,6 @@ int corfile_length(CORFIL *f);
 void corfile_set(CORFIL *f, int n);
 #define corfile_set(f,n) (f->p = n)
 void corfile_seek(CORFIL *f, int n, int dir);
-void corfile_preputs(const char *s, CORFIL *f);
-
+void corfile_preputs(CSOUND *csound, const char *s, CORFIL *f);
+void add_corfile(CSOUND* csound, CORFIL *smpf, char *filename);
 #endif
diff --git a/H/csGblMtx.h b/H/csGblMtx.h
index a572116..aaa61f6 100644
--- a/H/csGblMtx.h
+++ b/H/csGblMtx.h
@@ -72,7 +72,7 @@ void csoundLock() {
     CRITICAL_SECTION* cs;
 
     status = InitOnceExecuteOnce(&g_InitOnce, InitHandleFunction, NULL, &cs);
-    if(status) {
+    if (status) {
       EnterCriticalSection(cs);
     }
 }
@@ -83,7 +83,7 @@ void csoundUnLock() {
     CRITICAL_SECTION* cs;
 
     status = InitOnceExecuteOnce(&g_InitOnce, InitHandleFunction, NULL, &cs);
-    if(status) {
+    if (status) {
       LeaveCriticalSection(cs);
     }
 }
diff --git a/H/cs_jack.h b/H/cs_jack.h
index e9ed5ef..4023b02 100644
--- a/H/cs_jack.h
+++ b/H/cs_jack.h
@@ -1,3 +1,26 @@
+/*
+    .h:
+
+    Copyright (C) 2008 by  Cesare Marilungo
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #define MAX_NAME_LEN    32      /* for client and port name */
 
 typedef struct RtJackBuffer_ {
diff --git a/H/cs_par_base.h b/H/cs_par_base.h
index b7a0faf..318897c 100644
--- a/H/cs_par_base.h
+++ b/H/cs_par_base.h
@@ -1,3 +1,26 @@
+/*
+    cs_par_base.h:
+
+    Copyright (C) 2011, 2017 John ffitch and Stephen Kyne
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef __CS_PAR_BASE_H__
 #define __CS_PAR_BASE_H__
 
diff --git a/H/cs_par_dispatch.h b/H/cs_par_dispatch.h
index 52187b5..a88b134 100644
--- a/H/cs_par_dispatch.h
+++ b/H/cs_par_dispatch.h
@@ -1,3 +1,26 @@
+/*
+    cs_par_dispatch.h:
+
+    Copyright (C) 2011 by John ffitch
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef __CS_PAR_DISPATCH_H__
 #define __CS_PAR_DISPATCH_H__
 
@@ -7,7 +30,7 @@
  * the appropriate functions
  */
 /* add global locks into AST root */
-TREE *csp_locks_insert(CSOUND * csound, TREE *root);
+static TREE *csp_locks_insert(CSOUND * csound, TREE *root);
 /* build the cache of global locks */
 void csp_locks_cache_build(CSOUND *csound);
 /* lock global with index */
diff --git a/H/cs_par_orc_semantics.h b/H/cs_par_orc_semantics.h
index 61b3d82..97e06f2 100644
--- a/H/cs_par_orc_semantics.h
+++ b/H/cs_par_orc_semantics.h
@@ -1,3 +1,26 @@
+/*
+    cs_par_orc_sematics.h:
+
+    Copyright (C) 2011 by John ffitch
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef __CSOUND_ORC_SEMANTIC_ANALYSIS_H__
 #define __CSOUND_ORC_SEMANTIC_ANALYSIS_H__
 
diff --git a/H/csound_orc.h b/H/csound_orc.h
index c0708c8..35ba7ba 100644
--- a/H/csound_orc.h
+++ b/H/csound_orc.h
@@ -1,3 +1,26 @@
+/*
+    csound_orc.h:
+
+    Copyright (C) 2007, 2017 by Stee Yi ad John ffitch
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef __CSOUND_ORC_H
 
 #define __CSOUND_ORC_H
@@ -43,4 +66,16 @@ ORCTOKEN *make_token(CSOUND *csound, char *s);
 extern int ksmps, nchnls; */
 
 void query_deprecated_opcode(CSOUND *, ORCTOKEN *);
+
+    // holds matching oentries from opcodeList
+    // has space for 16 matches and next pointer in case more are found
+    // (unlikely though)
+
+typedef struct oentries {
+      int count;                /* Number of etries in table */
+  //char *opname;
+  //int prvnum;
+      OENTRY* entries[0];       /* Entended by count entries */
+    } OENTRIES;
+
 #endif
diff --git a/H/csound_orc_semantics.h b/H/csound_orc_semantics.h
index 3d67c43..621846f 100644
--- a/H/csound_orc_semantics.h
+++ b/H/csound_orc_semantics.h
@@ -1,3 +1,26 @@
+/*
+    csound_orc_sematics.h:
+
+    Copyright (C) 2013 by Steve Yi
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef CSOUND_ORC_SEMANTICS_H
 #define CSOUND_ORC_SEMANTICS_H
 
diff --git a/H/entry1.h b/H/entry1.h
index b5fe470..04b98d5 100644
--- a/H/entry1.h
+++ b/H/entry1.h
@@ -42,7 +42,6 @@
 #include "midiout.h"
 #include "sndinfUG.h"
 #include "ugrw1.h"
-#include "ugrw2.h"
 #include "schedule.h"
 #include "vdelay.h"
 #include "pstream.h"
@@ -73,6 +72,7 @@ int     gt(CSOUND *, void *), ge(CSOUND *, void *);
 int     lt(CSOUND *, void *), le(CSOUND *, void *);
 int     eq(CSOUND *, void *), ne(CSOUND *, void *);
 int     and(CSOUND *, void *), or(CSOUND *, void *);
+int     b_not(CSOUND *, void*);
 int     conval(CSOUND *, void *), aconval(CSOUND *, void *);
 int     addkk(CSOUND *, void *), subkk(CSOUND *, void *);
 int     mulkk(CSOUND *, void *), divkk(CSOUND *, void *);
diff --git a/H/find_opcode.h b/H/find_opcode.h
index 340a6e4..4913d99 100644
--- a/H/find_opcode.h
+++ b/H/find_opcode.h
@@ -1,3 +1,26 @@
+/*
+    find_opcode.h:
+
+    Copyright (C) 2016 by John ffitc
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 char* get_opcode_short_name(CSOUND* csound, char* opname);
 
 PUBLIC OENTRY* find_opcode_new(CSOUND* csound, char* opname,
diff --git a/H/resize.h b/H/resize.h
index fff9433..4a78ce3 100644
--- a/H/resize.h
+++ b/H/resize.h
@@ -1,3 +1,26 @@
+/*
+    resize.h:
+
+    Copyright (C) 2011 by Jon ffitch
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 typedef struct {
     OPDS h;
     MYFLT *size;                /* Ansser */
diff --git a/H/tok.h b/H/tok.h
index 103cd68..593ebc8 100644
--- a/H/tok.h
+++ b/H/tok.h
@@ -1,3 +1,26 @@
+/*
+    tok.h:
+
+    Copyright (C) 2007 by Steven Yi
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef __TOK_H
 
 #define __TOK_H
diff --git a/H/ugens5.h b/H/ugens5.h
index 2a88e92..ed7e77d 100644
--- a/H/ugens5.h
+++ b/H/ugens5.h
@@ -41,6 +41,7 @@ typedef struct {
         MYFLT   *ar, *asig, *kcf, *kbw, *iscl, *istor;
         int     scale;
         double  c1, c2, c3, yt1, yt2, cosf, prvcf, prvbw;
+        int     asigf, asigw;
 } RESON;
 
 typedef struct {
diff --git a/H/ugrw2.h b/H/ugrw2.h
deleted file mode 100644
index 44152b9..0000000
--- a/H/ugrw2.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-    ugrw2.h:
-
-    Copyright (C) 1995 Robin Whittle
-
-    This file is part of Csound.
-
-    The Csound Library is free software; you can redistribute it
-    and/or modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    Csound is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with Csound; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-    02111-1307 USA
-*/
-
-/*                                                              UGRW2.H */
-/* These files are based on Robin Whittle's
- *       ugrw2.c and ugrw2.h of 9 September 1995
- *
- * In February 1997, John Fitch reformatted the comments.
- *
- *
- * Copyright notice - Robin Whittle  25 February 1997
- *
- * Documentation files, and the original .c and .h files, with more
- * spaced out comments, are available from http://www.firstpr.com.au
- *
- * The code in both ugrw1 and ugrw2 is copyright Robin Whittle.
- * Permission is granted to use this in whole or in part for any
- * purpose, provided this copyright notice remains intact and
- * any alterations to the source code, including comments, are
- * clearly indicated as such.
- */
-
-/*
- *      Unit generators by Robin Whittle                9 September 1995
- *
- *      Header file containing data structures for UGRW2.C.
- */
-#ifdef SOME_FINE_DAY
-#include "csoundCore.h"
-
-/* KPORT data structure.
- *
- * Output and input pointers.
- *
- * kr           To k rate result.
- *
- * ksig         k rate input.
- *
- * khtim        k rate half time
- *
- * isig         Initial value for
- *              internal state.
- */
-typedef struct {
-        OPDS    h;
-        MYFLT   *kr, *ksig, *khtim, *isig;
-        MYFLT   c1;             /* Value to multiply with input value. */
-        MYFLT   c2;             /* Value to multiply with previous state. */
-        MYFLT   yt1;            /* Previous state. */
-        MYFLT   prvhtim;        /* Previous khtim. */
-} KPORT;
-
-/*************************************/
-
-/* KTONE data structure.
- *
- * For ktone and katone.
- *
- * Output and input pointers.
- *
- * kr           To k rate result.
- *
- * ksig         k rate input.
- *
- * khp          k rate half power frequency input.
- *
- * isig         Set to 0 to clear internal state.
- */
-
-typedef struct {
-        OPDS    h;
-        MYFLT   *kr, *ksig, *khp, *istor;
-        MYFLT   c1;             /* Value to multiply with input value  */
-        MYFLT   c2;             /* Value to multiply with previous state */
-        MYFLT   yt1;            /* Previous state */
-        MYFLT   prvhp;          /* Previous half power frequency */
-} KTONE;
-
-/*************************************/
-
-/* KRESON data structure.
- *
- * For kreson and kareson.
- *
- * Output and input pointers.
- *
- * kr           To k rate result.
- *
- * ksig         k rate input.
- *
- * kcf          k rate centre freq.
- *
- * kbw          k rate bandwidth
- *
- * iscl         i rate scaling factor * 0, 1 or 2.
- *
- * istor        Set to 0 to clear internal state.  */
-typedef struct {
-        OPDS    h;
-        MYFLT   *kr, *ksig, *kcf, *kbw, *iscl, *istor;
-        int     scale;
-        MYFLT   c1, c2, c3;     /* Filter factors */
-        MYFLT   yt1;            /* Delay 1 k sample */
-        MYFLT   yt2;            /* Delay 2 k samples */
-        MYFLT   cosf;           /* Intermediate variable to help calculations */
-        MYFLT   prvcf, prvbw;   /* Previous centre freq and bandwidth  */
-} KRESON;
-
-/*************************************/
-
-/* LIMIT data structure.
- *
- * For ilimit(), klimit() and limit().
- */
-typedef struct {
-        OPDS    h;
-        MYFLT   *xdest, *xsig, *xlow, *xhigh;
-} LIMIT;
-
-int kporset(CSOUND*,KPORT *p);
-int kport(CSOUND*,KPORT *p);
-int ktonset(CSOUND*,KTONE *p);
-int ktone(CSOUND*,KTONE *p);
-int katone(CSOUND*,KTONE *p);
-int krsnset(CSOUND*,KRESON *p);
-int kreson(CSOUND*,KRESON *p);
-int kareson(CSOUND*,KRESON *p);
-int klimit(CSOUND*,LIMIT *p);
-int limit(CSOUND*,LIMIT *p);
-
-#endif /* SOME_FINE_DAY */
diff --git a/H/vdelay.h b/H/vdelay.h
index c2fd032..a1ad72a 100644
--- a/H/vdelay.h
+++ b/H/vdelay.h
@@ -28,6 +28,7 @@
 typedef struct {
         OPDS    h;
         MYFLT   *sr, *ain, *adel, *imaxd, *istod;
+        uint32 maxd;
         AUXCH   aux;
         int32   left;
 } VDEL;
@@ -37,6 +38,7 @@ typedef struct {
         MYFLT   *sr1, *sr2, *sr3, *sr4;
         MYFLT   *ain1, *ain2, *ain3, *ain4, *adel, *imaxd, *iquality, *istod;
         AUXCH   aux1, aux2, aux3, aux4;
+        uint32 maxd;
         int     interp_size;
         int32   left;
 } VDELXQ;
@@ -45,6 +47,7 @@ typedef struct {
         OPDS    h;
         MYFLT   *sr1, *sr2, *ain1, *ain2, *adel, *imaxd, *iquality, *istod;
         AUXCH   aux1, aux2;
+        uint32 maxd;
         int     interp_size;
         int32   left;
 } VDELXS;
@@ -53,6 +56,7 @@ typedef struct {
         OPDS    h;
         MYFLT   *sr1, *ain1, *adel, *imaxd, *iquality, *istod;
         AUXCH   aux1;
+        uint32 maxd;
         int     interp_size;
         int32   left;
 } VDELX;
diff --git a/InOut/CMakeLists.txt b/InOut/CMakeLists.txt
index 1fa6b92..9422575 100644
--- a/InOut/CMakeLists.txt
+++ b/InOut/CMakeLists.txt
@@ -82,21 +82,21 @@ endif()
 # check_deps(USE_COREAUDIO APPLE COREAUDIO_INCLUDE_PATH COREAUDIO_LIBRARY)
 # if(USE_COREAUDIO)
 #    make_plugin(rtcoreaudio rtcoreaudio.c)
-#    include_directories(${COREAUDIO_INCLUDE_PATH})
+#    target_include_directories(rtcoreaudio PRIVATE ${COREAUDIO_INCLUDE_PATH})
 #    target_link_libraries(rtcoreaudio ${COREAUDIO_LIBRARY})
 # endif()
 
 check_deps(USE_COREMIDI APPLE COREMIDI_INCLUDE_PATH COREMIDI_LIBRARY COREFOUNDATION_LIBRARY)
 if(USE_COREMIDI)
     make_plugin(cmidi cmidi.c)
-    include_directories(${COREMIDI_INCLUDE_PATH})
+    target_include_directories(cmidi PRIVATE ${COREMIDI_INCLUDE_PATH})
     target_link_libraries(cmidi ${COREMIDI_LIBRARY} ${COREFOUNDATION_LIBRARY})
 endif()
 
 check_deps(USE_AUDIOUNIT APPLE COREAUDIO_INCLUDE_PATH COREAUDIO_LIBRARY AUDIOUNIT_INCLUDE_PATH AUDIOUNIT_LIBRARY COREFOUNDATION_LIBRARY)
 if(USE_AUDIOUNIT)
     make_plugin(rtauhal rtauhal.c)
-    include_directories(${AUDIOUNIT_INCLUDE_PATH})
+    target_include_directories(rtauhal PRIVATE ${AUDIOUNIT_INCLUDE_PATH})
     target_link_libraries(rtauhal ${AUDIOUNIT_LIBRARY} ${COREFOUNDATION_LIBRARY} ${COREAUDIO_LIBRARY})
 endif()
 
@@ -133,9 +133,9 @@ else()
     check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY PORTAUDIO_TEST_COMPILED)
 endif()
 if(USE_PORTAUDIO AND PORTAUDIO_V19 MATCHES 1)
-    include_directories(${PORTAUDIO_INCLUDE_PATH})
     message(STATUS "Building rtpa module.")
     make_plugin(rtpa rtpa.c)
+    target_include_directories(rtpa PRIVATE ${PORTAUDIO_INCLUDE_PATH})
     if(BUILD_STATIC_LIBRARY)
         if(WIN32)
             set_source_files_properties(rtpa.c PROPERTIES LANGUAGE CXX)
@@ -175,17 +175,17 @@ else()
 endif()
 
 if(USE_PORTMIDI)
-    include_directories(${PORTMIDI_INCLUDE_PATH})
     make_plugin(pmidi pmidi.c)
+    target_include_directories(pmidi PRIVATE ${PORTMIDI_INCLUDE_PATH})
     target_link_libraries(pmidi ${PORTMIDI_LIBRARY})
     if(LINUX)
       if(NEED_PORTTIME)
-        include_directories(${PORTTIME_INCLUDE_PATH})
+        target_include_directories(pmidi PRIVATE ${PORTTIME_INCLUDE_PATH})
         target_link_libraries(pmidi ${PORTTIME_LIBRARY})
       endif()
     elseif(WIN32)
       if(NEED_PORTTIME)
-        include_directories(${PORTTIME_INCLUDE_PATH})
+          target_include_directories(pmidi PRIVATE ${PORTTIME_INCLUDE_PATH})
       endif()
       target_link_libraries(pmidi ${CSOUND_WINDOWS_LIBRARIES})
     elseif(LINUX AND ALSA_LIBRARY)
@@ -223,6 +223,14 @@ check_deps(USE_FLTK FLTK_FOUND)
 if(USE_FLTK)
     set(widgets_SRCS FL_graph.cpp winFLTK.c widgets.cpp)
     make_plugin(widgets "${widgets_SRCS}" "${FLTK_LIBRARIES}")
+    if(NOT MSVC)
+        target_link_libraries(widgets ${FLTK_BASE_LIBRARY})
+        target_link_libraries(widgets ${FLTK_FORMS_LIBRARY})
+        target_link_libraries(widgets ${FLTK_IMAGES_LIBRARY})
+    else()
+        target_link_libraries(widgets ${FLTK_LIBRARIES})
+    endif()
+    target_include_directories(widgets PRIVATE ${FLTK_INCLUDE_DIR})
     #add_dependency_to_framework(widgets ${FLTK_BASE_LIBRARY})
     #add_dependency_to_framework(widgets ${FLTK_FORMS_LIBRARY})
     #add_dependency_to_framework(widgets ${FLTK_IMAGES_LIBRARY})
@@ -240,11 +248,18 @@ if(BUILD_VIRTUAL_KEYBOARD)
         virtual_keyboard/SliderBank.cpp
         virtual_keyboard/SliderData.cpp)
     make_plugin(virtual "${virtual_SRCS}" "${FLTK_LIBRARIES}")
+    if (NOT MSVC)
+        target_link_libraries(virtual ${FLTK_BASE_LIBRARY})
+        target_link_libraries(virtual ${FLTK_FORMS_LIBRARY})
+        target_link_libraries(virtual ${FLTK_IMAGES_LIBRARY})
+    else()
+        target_link_libraries(virtual ${FLTK_LIBRARIES})
+    endif()
     #add_dependency_to_framework(virtual ${FLTK_BASE_LIBRARY})
     #add_dependency_to_framework(virtual ${FLTK_FORMS_LIBRARY})
     #add_dependency_to_framework(virtual ${FLTK_IMAGES_LIBRARY})
-    include_directories(".")
-    include_directories(${FLTK_INCLUDE_DIR})
+    target_include_directories(virtual PRIVATE ".")
+    target_include_directories(virtual PRIVATE ${FLTK_INCLUDE_DIR})
 endif()
 
 message(STATUS "")
diff --git a/InOut/FL_graph.cpp b/InOut/FL_graph.cpp
index 77d016b..a42dbe4 100644
--- a/InOut/FL_graph.cpp
+++ b/InOut/FL_graph.cpp
@@ -28,7 +28,7 @@
 #include <FL/Fl_Choice.H>
 #include <FL/Fl_Button.H>
 
-#ifdef MSVC
+#ifdef _MSC_VER
 #include <math.h>
 #endif
 #include "csdl.h"
@@ -203,10 +203,10 @@ void graph_box::draw()
         fl_line_style(FL_DOT);
         fl_line(win_x+w()/2, win_y, win_x+w()/2, win_y+win_h);
       }
-      if(pol != NEGPOL)
-      sprintf(string, "%s  %ld points, max %5.3f", msg, npts, win->oabsmax);
+      if (pol != NEGPOL)
+        sprintf(string, "%s  %ld points, max %5.3f", msg, npts, win->oabsmax);
       else
-      sprintf(string, "%s  %ld points, max %5.3f", msg, npts, win->max);
+        sprintf(string, "%s  %ld points, max %5.3f", msg, npts, win->max);
 
       ST(form)->label(string);
     }
@@ -231,13 +231,13 @@ void add_graph(CSOUND *csound, WINDAT *wdptr)
 
 
     for (m = 0; m < NUMOFWINDOWS; m++) {  // If text the same use slot
-      if(ST(menu) != NULL) {
-       if (ST(menu)[m].text != NULL && wdptr->caption != NULL){
-        if(strcmp(wdptr->caption, ST(menu)[m].text) == 0) {
-        replacing = 1;
-        goto replace;
+      if (ST(menu) != NULL) {
+        if (ST(menu)[m].text != NULL && strlen(wdptr->caption) == 0){
+          if(strcmp(wdptr->caption, ST(menu)[m].text) == 0) {
+            replacing = 1;
+            goto replace;
+          }
         }
-       }
       }
     }
     // Use a new slot, cycling round
@@ -305,7 +305,8 @@ void makeWindow(CSOUND *csound, char *name)
 }
 
 void graphs_reset(CSOUND * csound){
-  //if(csound->flgraphGlobals != NULL)csound->Free(csound, csound->flgraphGlobals);
+  //if (csound->flgraphGlobals != NULL)
+  //  csound->Free(csound, csound->flgraphGlobals);
 }
 
 extern "C" {
@@ -364,7 +365,10 @@ extern "C" {
   {
       FLGRAPH_GLOBALS *flgraphGlobals =
          (FLGRAPH_GLOBALS *) csound->QueryGlobalVariable(csound,
-                                                         "FLGRAPH_GLOBALS");
+                                                        "FLGRAPH_GLOBALS");
+      if (flgraphGlobals == 0) {
+          return OK;
+      }
       if (ST(form) && ST(graph_created) == 1) {
 
         if (ST(form)->shown() && !(getFLTKFlags(csound) & 256)) {
@@ -391,10 +395,10 @@ extern "C" {
         WINDAT *n = (WINDAT*) ST(menu)[i].user_data_;
         if (n)
           kill_graph(csound, (uintptr_t) ((void*) n));
-          }
-       if(ST(menu)){
-             delete[] ST(menu);
-             ST(menu) = (Fl_Menu_Item *) 0;
+       }
+       if (ST(menu)){
+         delete[] ST(menu);
+         ST(menu) = (Fl_Menu_Item *) 0;
        }
 
 
diff --git a/InOut/circularbuffer.c b/InOut/circularbuffer.c
index a12e4fb..f3d3299 100644
--- a/InOut/circularbuffer.c
+++ b/InOut/circularbuffer.c
@@ -83,7 +83,9 @@ int csoundReadCircularBuffer(CSOUND *csound, void *p, void *out, int items)
           rp = 0;
         }
       }
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+      InterlockedExchange(&((circular_buffer *)p)->rp, rp);
+#elif defined(HAVE_ATOMIC_BUILTIN)
       __sync_lock_test_and_set(&((circular_buffer *)p)->rp,rp);
 #else
       ((circular_buffer *)p)->rp = rp;
@@ -131,7 +133,9 @@ void csoundFlushCircularBuffer(CSOUND *csound, void *p)
         rp++;
         if(rp == numelem) rp = 0;
     }
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+      InterlockedExchange(&((circular_buffer *)p)->rp, rp);
+#elif defined(HAVE_ATOMIC_BUILTIN)
       __sync_lock_test_and_set(&((circular_buffer *)p)->rp,rp);
 #else
       ((circular_buffer *)p)->rp = rp;
@@ -157,7 +161,9 @@ int csoundWriteCircularBuffer(CSOUND *csound, void *p, const void *in, int items
                 ((char *) in) + (i * elemsize),  elemsize);
         if(wp == numelem) wp = 0;
     }
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+      InterlockedExchange(&((circular_buffer *)p)->wp, wp);
+#elif defined(HAVE_ATOMIC_BUILTIN)
       __sync_lock_test_and_set(&((circular_buffer *)p)->wp,wp);
 #else
       ((circular_buffer *)p)->wp = wp;
diff --git a/InOut/ipmidi.c b/InOut/ipmidi.c
index e0bde3f..b72fa1a 100644
--- a/InOut/ipmidi.c
+++ b/InOut/ipmidi.c
@@ -46,7 +46,6 @@ static int OpenMidiInDevice_(CSOUND *csound, void **userData, const char *dev)
     int status;
     struct sockaddr_in saddr;
     struct ip_mreq mreq;
-    //const char *dummy = 0;
 
 #ifdef WIN32
     WSADATA wsaData;
@@ -77,7 +76,7 @@ static int OpenMidiInDevice_(CSOUND *csound, void **userData, const char *dev)
       printf("WSAGetLastError() = %d\n", WSAGetLastError());
 #else
       char buff[128];
-      /* dummy = */ (void)strerror_r(errno, buff, 128);
+      (void)strerror_r(errno, buff, 128);
 #endif
 
         csound->ErrorMsg(csound, Str("Error binding socket to interface: %s"),
@@ -97,11 +96,11 @@ static int OpenMidiInDevice_(CSOUND *csound, void **userData, const char *dev)
         return -1;
 #else
       char buff[128];
-      /* dummy = */ (void)strerror_r(errno, buff, 128);
+      (void)strerror_r(errno, buff, 128);
 
-        csound->ErrorMsg(csound, Str("Error adding membership to interface: %s"),
-                          buff);
-        return NOTOK;
+      csound->ErrorMsg(csound, Str("Error adding membership to interface: %s"),
+                       buff);
+      return NOTOK;
       //perror("Error binding socket to interface");
 #endif
     }
diff --git a/InOut/libsnd.c b/InOut/libsnd.c
index ab4b36b..7be3531 100644
--- a/InOut/libsnd.c
+++ b/InOut/libsnd.c
@@ -205,20 +205,22 @@ static void writesf_dither_16(CSOUND *csound, const MYFLT *outbuf, int nbytes)
     int     n;
     int m = nbytes / sizeof(MYFLT);
     MYFLT *buf = (MYFLT*) outbuf;
+    int    dith;
 
     if (UNLIKELY(STA(outfile) == NULL))
       return;
-
+    dith = STA(dither);
     for (n=0; n<m; n++) {
-      int   tmp = ((STA(dither) * 15625) + 1) & 0xFFFF;
+      int   tmp = ((dith * 15625) + 1) & 0xFFFF;
       int   rnd = ((tmp * 15625) + 1) & 0xFFFF;
       MYFLT result;
-      STA(dither) = rnd;
+      dith = rnd;
       rnd = (rnd+tmp)>>1;           /* triangular distribution */
       result = (MYFLT) (rnd - 0x8000)  / ((MYFLT) 0x10000);
       result /= ((MYFLT) 0x7fff);
       buf[n] += result;
     }
+    STA(dither) = dith;
     n = (int) sf_write_MYFLT(STA(outfile), (MYFLT*) outbuf,
                              nbytes / sizeof(MYFLT)) * (int) sizeof(MYFLT);
     if (UNLIKELY(n < nbytes))
@@ -257,20 +259,22 @@ static void writesf_dither_8(CSOUND *csound, const MYFLT *outbuf, int nbytes)
     int     n;
     int m = nbytes / sizeof(MYFLT);
     MYFLT *buf = (MYFLT*) outbuf;
+    int dith;
 
     if (UNLIKELY(STA(outfile) == NULL))
       return;
-
+    dith = STA(dither);
     for (n=0; n<m; n++) {
-      int   tmp = ((STA(dither) * 15625) + 1) & 0xFFFF;
+      int   tmp = ((dith * 15625) + 1) & 0xFFFF;
       int   rnd = ((tmp * 15625) + 1) & 0xFFFF;
       MYFLT result;
-      STA(dither) = rnd;
+      dith = rnd;
       rnd = (rnd+tmp)>>1;           /* triangular distribution */
       result = (MYFLT) (rnd - 0x8000)  / ((MYFLT) 0x10000);
       result /= ((MYFLT) 0x7f);
       buf[n] += result;
     }
+    STA(dither) = dith;
     n = (int) sf_write_MYFLT(STA(outfile), (MYFLT*) outbuf,
                              nbytes / sizeof(MYFLT)) * (int) sizeof(MYFLT);
     if (UNLIKELY(n < nbytes))
@@ -309,18 +313,20 @@ static void writesf_dither_u16(CSOUND *csound, const MYFLT *outbuf, int nbytes)
     int     n;
     int m = nbytes / sizeof(MYFLT);
     MYFLT *buf = (MYFLT*) outbuf;
+    int dith;
 
     if (UNLIKELY(STA(outfile) == NULL))
       return;
-
+    dith = STA(dither);
     for (n=0; n<m; n++) {
-        int   rnd = ((STA(dither) * 15625) + 1) & 0xFFFF;
-        MYFLT result;
-        STA(dither) = rnd;
-        result = (MYFLT) (rnd - 0x8000)  / ((MYFLT) 0x10000);
-        result /= ((MYFLT) 0x7fff);
-        buf[n] += result;
+      int   rnd = ((dith * 15625) + 1) & 0xFFFF;
+      MYFLT result;
+      dith =  rnd;
+      result = (MYFLT) (rnd - 0x8000)  / ((MYFLT) 0x10000);
+      result /= ((MYFLT) 0x7fff);
+      buf[n] += result;
     }
+    STA(dither) = dith;
     n = (int) sf_write_MYFLT(STA(outfile), (MYFLT*) outbuf,
                              nbytes / sizeof(MYFLT)) * (int) sizeof(MYFLT);
     if (UNLIKELY(n < nbytes))
@@ -359,18 +365,20 @@ static void writesf_dither_u8(CSOUND *csound, const MYFLT *outbuf, int nbytes)
     int     n;
     int m = nbytes / sizeof(MYFLT);
     MYFLT *buf = (MYFLT*) outbuf;
+    int dith;
 
     if (UNLIKELY(STA(outfile) == NULL))
       return;
-
+    dith = STA(dither);
     for (n=0; n<m; n++) {
-      int   rnd = ((STA(dither) * 15625) + 1) & 0xFFFF;
+      int   rnd = ((dith * 15625) + 1) & 0xFFFF;
       MYFLT result;
       STA(dither) = rnd;
       result = (MYFLT) (rnd - 0x8000)  / ((MYFLT) 0x10000);
       result /= ((MYFLT) 0x7f);
       buf[n] += result;
     }
+    STA(dither) = dith;
     n = (int) sf_write_MYFLT(STA(outfile), (MYFLT*) outbuf,
                              nbytes / sizeof(MYFLT)) * (int) sizeof(MYFLT);
     if (UNLIKELY(n < nbytes))
@@ -564,7 +572,7 @@ void sfopenin(CSOUND *csound)           /* init for continuous soundin */
                                          STA(inbufsiz)); /* alloc inbuf space */
     if (STA(pipdevout) == 2)
       csound->Message(csound,
-                      Str("reading %d sample blks of %d-bit floats from %s \n"),
+                      Str("reading %d sample blks of %lu-bit floats from %s \n"),
                       O->inbufsamps * O->sfsampsize, sizeof(MYFLT)*8, sfname);
     else {
       csound->Message(csound,
@@ -604,6 +612,7 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
       case TYP_WAV:
       case TYP_W64:
       case TYP_WAVEX:
+      case TYP_RF64:
         O->outfilename = "test.wav";
         break;
       case TYP_AIFF:
@@ -612,18 +621,18 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
       case TYP_AU:
         O->outfilename = "test.au";
         break;
-      /* case TYP_PAF: */
-      /*   O->outfilename = ""; */
-      /*   break;   */
-      /* case TYP_SVX: */
-      /*   O->outfilename = ""; */
-      /*   break;   */
-      /* case TYP_NIST: */
-      /*   O->outfilename = ""; */
-      /*   break;  */
-      /* case TYP_VOC: */
-      /*   O->outfilename = ""; */
-      /*   break;   */
+      case TYP_PAF:
+        O->outfilename = "test.paf";
+        break;
+      case TYP_SVX:
+        O->outfilename = "test.svx";
+        break;
+      case TYP_NIST:
+        O->outfilename = "test.sph";
+        break;
+      case TYP_VOC:
+        O->outfilename = "test.voc";
+        break;
       /* case TYP_IRCAM: */
       /*   O->outfilename = ""; */
       /*   break; */
@@ -636,17 +645,18 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
       /* case TYP_PVF: */
       /*   O->outfilename = ""; */
       /*   break;   */
-      /* case TYP_XI: */
-      /*   O->outfilename = ""; */
-      /*   break;    */
+      case TYP_XI:
+        O->outfilename = "test.xi";
+        break;
       /* case TYP_HTK: */
       /*   O->outfilename = ""; */
       /*   break;   */
       /* case TYP_SDS: */
-      /*   O->outfilename = ""; */
+      /*   O->outfilename = "test.sds"; */
       /*   break;   */
-      /* case TYP_AVR: */
-      /*   O->outfilename = ""; */
+      case TYP_AVR:
+        O->outfilename = "test.avr";
+        break;
       case TYP_SD2:
         O->outfilename = "test.sd2";
         break;
@@ -662,9 +672,6 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
       /* case TYP_MPC2K: */
       /*   O->outfilename = ""; */
       /*   break; */
-      /* case TYP_RF64: */
-      /*   O->outfilename = ""; */
-      /*   break;  */
       default:
         O->outfilename = "test";
         break;
@@ -708,13 +715,13 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
         parm.sampleRate   = (float) csound->esr;
         csound->spoutran  = spoutsf;
         /* open devaudio for output */
-        if (csound->playopen_callback(csound, &parm) != 0)
+        if (UNLIKELY(csound->playopen_callback(csound, &parm) != 0))
           csoundDie(csound, Str("Failed to initialise real time audio output"));
         /*  & redirect audio puts  */
         csound->audtran = csound->rtplay_callback;
         STA(outbufrem)  = parm.bufSamp_SW * parm.nChannels;
         STA(pipdevout)  = 2;      /* no backward seeks !   */
-        if(O->realtime == 1)      /* set realtime priority mode */
+        if (O->realtime == 1)     /* set realtime priority mode */
           csound->realtime_audio_flag = 1;
         goto outset;              /* no header needed      */
       }
@@ -755,14 +762,14 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
       if (STA(outfile) == NULL) {
         char fmt_name[6];
         if (O->sfsampsize == 8) {
-          if (O->filetyp == TYP_AU)
+          if (UNLIKELY(O->filetyp == TYP_AU))
             csoundDie(csound, Str("sfinit: cannot open fd %d\n%s"), osfd,
                       sf_strerror(NULL));
           strcpy(fmt_name, "AU");
           O->filetyp = TYP_AU;
         }
         else {
-          if (O->filetyp == TYP_IRCAM)
+          if (UNLIKELY(O->filetyp == TYP_IRCAM))
             csoundDie(csound, Str("sfinit: cannot open fd %d\n%s"), osfd,
                       sf_strerror(NULL));
           strcpy(fmt_name, "IRCAM");
@@ -861,7 +868,7 @@ void sfopenout(CSOUND *csound)                  /* init for sound out       */
     STA(outbufp)   = STA(outbuf) = csound->Malloc(csound, STA(outbufsiz));
     if (STA(pipdevout) == 2)
       csound->Message(csound,
-                      Str("writing %d sample blks of %d-bit floats to %s \n"),
+                      Str("writing %d sample blks of %lu-bit floats to %s \n"),
                       O->outbufsamps, sizeof(MYFLT)*8, STA(sfoutname));
     else {
      csound->Message(csound, Str("writing %d-byte blks of %s to %s"),
@@ -935,12 +942,12 @@ void sfcloseout(CSOUND *csound)
  report:
     if (STA(pipdevout) == 2) {
       csound->Message(csound,
-                      Str("%ld %d sample blks of %d-bit floats written to %s\n"),
+                      Str("%d %d sample blks of %lu-bit floats written to %s\n"),
                       csound->nrecs, O->outbufsamps,
                       sizeof(MYFLT)*8, STA(sfoutname));
     }
     else {
-      csound->Message(csound, Str("%ld %d sample blks of %s written to %s"),
+      csound->Message(csound, Str("%d %d sample blks of %s written to %s"),
                       O->outbufsamps, O->outbufsamps * O->sfsampsize,
                       getstrformat(O->outformat), STA(sfoutname));
       if (O->sfheader == 0)
diff --git a/InOut/libsnd_u.c b/InOut/libsnd_u.c
index 481e363..d9ce0e0 100644
--- a/InOut/libsnd_u.c
+++ b/InOut/libsnd_u.c
@@ -157,7 +157,7 @@ void *sndgetset(CSOUND *csound, void *p_)
         sfinfo.samplerate = p->sr;
       }
     }
-    else if (sfinfo.samplerate != (int) ((double) csound->esr + 0.5)) {
+    else if (UNLIKELY(sfinfo.samplerate != (int) ((double) csound->esr + 0.5))) {
       csound->Warning(csound,                       /* non-anal:  cmp w. esr */
                       "%s sr = %d, orch sr = %7.1f",
                       sfname, (int) sfinfo.samplerate, csound->esr);
diff --git a/InOut/midifile.c b/InOut/midifile.c
index 02279e4..4154018 100644
--- a/InOut/midifile.c
+++ b/InOut/midifile.c
@@ -79,12 +79,12 @@ static int getCh(CSOUND *csound, FILE *f, int *bytesLeft)
     if (f == NULL)
       return -1;
     c = getc(f);
-    if (c == EOF) {
+    if (UNLIKELY(c == EOF)) {
       csound->Message(csound, Str(" *** unexpected end of MIDI file\n"));
       return -1;
     }
     if (bytesLeft != NULL) {
-      if (--(*bytesLeft) < 0) {
+      if (UNLIKELY(--(*bytesLeft) < 0)) {
         csound->Message(csound, Str(" *** unexpected end of MIDI track\n"));
         return -1;
       }
@@ -98,7 +98,7 @@ static int getVLenData(CSOUND *csound, FILE *f, int *bytesLeft)
 
     n = cnt = 0;
     do {
-      if (++cnt > 4) {
+      if (UNLIKELY(++cnt > 4)) {
         csound->Message(csound,
                         Str(" *** invalid dynamic length data in MIDI file\n"));
         return -1;
@@ -154,6 +154,7 @@ static int alloc_event(CSOUND *csound, unsigned long kcnt, unsigned char *data,
                                        int st, int d1, int d2)
 {
     midiEvent_t *tmp;
+    IGN(data);
     /* expand array if necessary */
     if (MF(nEvents) >= MF(maxEvents)) {
       MF(maxEvents) += (MF(maxEvents) >> 3);
@@ -204,7 +205,7 @@ static int checkRealTimeEvent(CSOUND *csound, FILE *f, int *tlen,
                               unsigned long tickCnt, int st, int *saved_st)
 {
     if (st & 0x80) {
-      if (st < 0xF8 || st > 0xFE) {
+      if (UNLIKELY(st < 0xF8 || st > 0xFE)) {
         csound->Message(csound, Str(" *** unexpected event 0x%02X\n"),
                                 (unsigned int) st);
         return -1;
@@ -227,7 +228,7 @@ static int readEvent(CSOUND *csound, FILE *f, int *tlen,
       /* repeat previous status byte */
       dataBytes[cnt++] = st;
       st = *saved_st;
-      if (st < 0x80) {
+      if (UNLIKELY(st < 0x80)) {
         csound->Message(csound, Str(" *** invalid MIDI file data\n"));
         return -1;
       }
@@ -261,7 +262,7 @@ static int readEvent(CSOUND *csound, FILE *f, int *tlen,
         d = getCh(csound, f, tlen);
         if (d < 0 || *tlen < 0) return -1;
         if (d == 0xF7) {        /* EOX */
-          if (!i)
+          if (LIKELY(!i))
             return 0;           /* should be at end of message */
           csound->Message(csound, Str(" *** unexpected end of system "
                                       "exclusive message\n"));
@@ -270,7 +271,7 @@ static int readEvent(CSOUND *csound, FILE *f, int *tlen,
         d = checkRealTimeEvent(csound, f, tlen, tickCnt, d, saved_st);
         if (d == -2)            /* if read real time event, */
           i++;                  /* continue with reading message bytes */
-        else if (d < 0)
+        else if (UNLIKELY(d < 0))
           return -1;            /* error */
       }
       /* zero length or EOX not found */
@@ -321,17 +322,17 @@ static int readEvent(CSOUND *csound, FILE *f, int *tlen,
             if (c < 0 || *tlen < 0) return -1;
             d = (d << 8) | c;
           }
-          if (d < 1) {
+          if (UNLIKELY(d < 1)) {
             csound->Message(csound, Str(" *** invalid tempo\n"));
             return -1;
           }
           return alloc_tempo(csound, tickCnt, (60000000.0 / (double) d));
         case 0x2F:                        /* end of track */
-          if (i) {
+          if (UNLIKELY(i)) {
             csound->Message(csound, Str(" *** invalid end of track event\n"));
             return -1;
           }
-          if (*tlen > 0) {
+          if (UNLIKELY(*tlen > 0)) {
             csound->Message(csound, Str(" *** trailing garbage at end of "
                                         "MIDI track\n"));
             return -1;
@@ -363,7 +364,7 @@ static int readTrack(CSOUND *csound, FILE *f)
       c = getCh(csound, f, NULL);
       if (c < 0)
         return -1;
-      if (c != (int) midiTrack_ID[i]) {
+      if (UNLIKELY(c != (int) midiTrack_ID[i])) {
         csound->Message(csound, Str(" *** invalid MIDI track header\n"));
         return -1;
       }
@@ -556,7 +557,7 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     if (MIDIFILE != NULL)
       return 0;         /* already opened */
     /* open file */
-    if (name == NULL || name[0] == '\0')
+    if (UNLIKELY(name == NULL || name[0] == '\0'))
       return -1;
     //if (*name==3) name++;       /* Because of ETX added bt readOptions */
     if (strcmp(name, "stdin") == 0)
@@ -564,7 +565,7 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     else {
       fd = csound->FileOpen2(csound, &f, CSFILE_STD, name, "rb",
                              "SFDIR;SSDIR;MFDIR", CSFTYPE_STD_MIDI, 0);
-      if (fd == NULL) {
+      if (UNLIKELY(fd == NULL)) {
         csound->ErrorMsg(csound, Str(" *** error opening MIDI file '%s': %s"),
                                  name, strerror(errno));
         return -1;
@@ -574,8 +575,8 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     /* check header */
     for (i = 0; i < 4; i++) {
       c = getCh(csound, f, NULL);
-      if (c < 0) goto err_return;
-      if (c != (int) midiFile_ID[i]) {
+      if (UNLIKELY(c < 0)) goto err_return;
+      if (UNLIKELY(c != (int) midiFile_ID[i])) {
         csound->Message(csound, Str(" *** invalid MIDI file header\n"));
         goto err_return;
       }
@@ -584,10 +585,10 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     hdrLen = 0;
     for (i = 0; i < 4; i++) {
       c = getCh(csound, f, NULL);
-      if (c < 0) goto err_return;
+      if (UNLIKELY(c < 0)) goto err_return;
       hdrLen = (hdrLen << 8) | c;
     }
-    if (hdrLen != 6) {
+    if (UNLIKELY(hdrLen != 6)) {
       csound->Message(csound, Str(" *** invalid MIDI file header\n"));
       goto err_return;
     }
@@ -595,10 +596,10 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     fileFormat = 0;
     for (i = 0; i < 2; i++) {
       c = getCh(csound, f, NULL);
-      if (c < 0) goto err_return;
+      if (UNLIKELY(c < 0)) goto err_return;
       fileFormat = (fileFormat << 8) | c;
     }
-    if (fileFormat != 0 && fileFormat != 1) {
+    if (UNLIKELY(fileFormat != 0 && fileFormat != 1)) {
       csound->Message(csound,
                       Str(" *** MIDI file format %d is not supported\n"),
                       fileFormat);
@@ -608,14 +609,14 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     nTracks = 0;
     for (i = 0; i < 2; i++) {
       c = getCh(csound, f, NULL);
-      if (c < 0) goto err_return;
+      if (UNLIKELY(c < 0)) goto err_return;
       nTracks = (nTracks << 8) | c;
     }
-    if (nTracks < 1) {
+    if (UNLIKELY(nTracks < 1)) {
       csound->Message(csound, Str(" *** invalid number of tracks\n"));
       goto err_return;
     }
-    if (nTracks > 1 && !fileFormat) {
+    if (UNLIKELY(nTracks > 1 && !fileFormat)) {
       csound->Message(csound, Str("WARNING: format 0 MIDI file with "
                                   "multiple tracks\n"));
     }
@@ -623,13 +624,13 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
     timeCode = 0;
     for (i = 0; i < 2; i++) {
       c = getCh(csound, f, NULL);
-      if (c < 0) goto err_return;
+      if (UNLIKELY(c < 0)) goto err_return;
       timeCode = (timeCode << 8) | c;
     }
     /* allocate structure */
     MIDIFILE = (void*) csound->Calloc(csound, sizeof(midiFile_t));
     /* calculate ticks per second or beat based on time code */
-    if (timeCode < 1 || (timeCode >= 0x8000 && (timeCode & 0xFF) == 0)) {
+    if (UNLIKELY(timeCode < 1 || (timeCode >= 0x8000 && (timeCode & 0xFF) == 0))) {
       csound->Message(csound, Str(" *** invalid time code: %d\n"), timeCode);
       goto err_return;
     }
@@ -669,7 +670,7 @@ int csoundMIDIFileOpen(CSOUND *csound, const char *name)
       if (*m != '\0') {             /* is this track muted ? */
         if (*m == '1')
           mute_track = 1;
-        else if (*m != '0') {
+        else if (UNLIKELY(*m != '0')) {
           csound->Message(csound, Str(" *** invalid mute track list format\n"));
           goto err_return;
         }
@@ -745,7 +746,7 @@ int csoundMIDIFileRead(CSOUND *csound, unsigned char *buf, int nBytes)
         i++; continue;        /* unknown or system event: skip */
       }
       nBytes -= n;
-      if (nBytes < 0) {
+      if (UNLIKELY(nBytes < 0)) {
         csound->Message(csound, Str(" *** buffer overflow while reading "
                                     "MIDI file events\n"));
         break;      /* return with whatever has been read so far */
@@ -789,9 +790,9 @@ void midifile_rewind_score(CSOUND *csound)
       /* reset controllers on all channels */
       for (i = 0; i < MAXCHAN; i++)
         midi_ctl_reset(csound, (int16) i);
-    } else if (O->FMidiname != NULL) {
+    } else if (LIKELY(O->FMidiname != NULL)) {
       csound->MTrkend = 0;
-      if (csoundMIDIFileOpen(csound, O->FMidiname) != 0)
+      if (UNLIKELY(csoundMIDIFileOpen(csound, O->FMidiname) != 0))
         csound->Die(csound, Str("Failed to load MIDI file."));
       O->FMidiin = 1;
     }
diff --git a/InOut/midirecv.c b/InOut/midirecv.c
index d3e517f..1a9a35b 100644
--- a/InOut/midirecv.c
+++ b/InOut/midirecv.c
@@ -192,9 +192,9 @@ void midi_ctl_reset(CSOUND *csound, int16 chan)
     chn->pbensens = FL(2.0);                    /*   pitch bend range */
     chn->datenabl = 0;
     /* reset aftertouch to max value - added by Istvan Varga, May 2002 */
-    chn->aftouch = FL(127.0);
+    chn->aftouch = csound->aftouch;
     for (i = 0; i < 128; i++)
-      chn->polyaft[i] = FL(127.0);
+      chn->polyaft[i] = csound->aftouch;
     /* controller 64 has just been set to zero: terminate any held notes */
     if (chn->ksuscnt && !MGLOB(rawControllerMode))
       sustsoff(csound, chn);
diff --git a/InOut/pmidi.c b/InOut/pmidi.c
index fb6adb2..6032601 100644
--- a/InOut/pmidi.c
+++ b/InOut/pmidi.c
@@ -165,7 +165,7 @@ static int start_portmidi(CSOUND *csound)
     csoundUnLock();
 #endif
     if (UNLIKELY(errMsg != NULL)) {
-      csound->ErrorMsg(csound, Str(errMsg));
+      csound->ErrorMsg(csound, "%s", Str(errMsg));
       return -1;
     }
     //#if !defined(WIN32)
@@ -181,21 +181,21 @@ static int listDevices(CSOUND *csound, CS_MIDIDEVICE *list, int isOutput){
   char *drv = (char*) (csound->QueryGlobalVariable(csound, "_RTMIDI"));
 
   if (UNLIKELY(start_portmidi(csound) != 0))
-      return 0;
+    return 0;
 
   cnt = portMidi_getDeviceCount(isOutput);
   if (list == NULL) return cnt;
   for (i = 0; i < cnt; i++) {
-      info = portMidi_getDeviceInfo(i, isOutput);
-      if(info->name != NULL)
+    info = portMidi_getDeviceInfo(i, isOutput);
+    if (info->name != NULL)
       strncpy(list[i].device_name, info->name, 63);
-      snprintf(tmp, 64, "%d", i);
-      strncpy(list[i].device_id, tmp, 63);
-      list[i].isOutput = isOutput;
-      if (info->interf != NULL)
-         strncpy(list[i].interface_name, info->interf, 63);
-      else strcpy(list[i].interface_name, "");
-     strncpy(list[i].midi_module, drv, 63);
+    snprintf(tmp, 64, "%d", i);
+    strncpy(list[i].device_id, tmp, 63);
+    list[i].isOutput = isOutput;
+    if (info->interf != NULL)
+      strncpy(list[i].interface_name, info->interf, 63);
+    else strcpy(list[i].interface_name, "");
+    strncpy(list[i].midi_module, drv, 63);
   }
   return cnt;
 }
@@ -224,7 +224,7 @@ static int OpenMidiInDevice_(CSOUND *csound, void **userData, const char *dev)
     pmall_data *next = NULL;
 
 
-    if (start_portmidi(csound) != 0)
+    if (UNLIKELY(start_portmidi(csound) != 0))
       return -1;
     /* check if there are any devices available */
     cntdev = portMidi_getDeviceCount(0);
@@ -290,7 +290,7 @@ static int OpenMidiInDevice_(CSOUND *csound, void **userData, const char *dev)
           return portMidiErrMsg(csound, Str("error opening input device %d: %s"),
                                           i, Pm_GetErrorText(retval));
         }
-          /* only interested in channel messages (note on, control change, etc.) */
+        /* only interested in channel messages (note on, control change, etc.) */
         /* GAB: fixed for portmidi v.23Aug06 */
         Pm_SetFilter(next->midistream, (PM_FILT_ACTIVE | PM_FILT_SYSEX));
         /* empty the buffer after setting filter */
@@ -346,7 +346,7 @@ static int OpenMidiOutDevice_(CSOUND *csound, void **userData, const char *dev)
     retval = Pm_OpenOutput(&midistream,
                            (PmDeviceID) portMidi_getRealDeviceID(devnum, 1),
                            NULL, 512L, (PmTimeProcPtr) NULL, NULL, 0L);
-    if (retval != pmNoError) {
+    if (UNLIKELY(retval != pmNoError)) {
       return portMidiErrMsg(csound, Str("error opening output device %d: %s"),
                                     devnum, Pm_GetErrorText(retval));
     }
diff --git a/InOut/rtalsa.c b/InOut/rtalsa.c
index 2e5188c..a497be8 100644
--- a/InOut/rtalsa.c
+++ b/InOut/rtalsa.c
@@ -113,7 +113,7 @@ int set_scheduler_priority(CSOUND *csound, int priority)
     struct sched_param p;
 
     memset(&p, 0, sizeof(struct sched_param));
-    if (priority < -20 || priority > sched_get_priority_max(SCHED_RR)) {
+    if (UNLIKELY(priority < -20 || priority > sched_get_priority_max(SCHED_RR))) {
       csound->Message(csound,
                       Str("--scheduler: invalid priority value; "
                           "the allowed range is:"));
@@ -128,7 +128,7 @@ int set_scheduler_priority(CSOUND *csound, int priority)
     /* set scheduling policy and priority */
     if (priority > 0) {
       p.sched_priority = priority;
-      if (sched_setscheduler(0, SCHED_RR, &p) != 0) {
+      if (UNLIKELY(sched_setscheduler(0, SCHED_RR, &p) != 0)) {
         csound->Message(csound,
                         Str("csound: cannot set scheduling policy to SCHED_RR"));
       }
@@ -137,7 +137,7 @@ int set_scheduler_priority(CSOUND *csound, int priority)
     }
     else {
       /* nice requested */
-      if (setpriority(PRIO_PROCESS, 0, priority) != 0) {
+      if (UNLIKELY(setpriority(PRIO_PROCESS, 0, priority) != 0)) {
         csound->Message(csound, Str("csound: cannot set nice level to %d"),
                         priority);
       }
@@ -361,7 +361,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
     err = snd_pcm_open(&(dev->handle), devName,
                        (play ? SND_PCM_STREAM_PLAYBACK
                         : SND_PCM_STREAM_CAPTURE), 0);
-    if (err < 0) {
+    if (UNLIKELY(err < 0)) {
       if (play)
         p->ErrorMsg(p, Str(" *** Cannot open device '%s' for audio output: %s"),
                     devName, snd_strerror(err));
@@ -371,13 +371,13 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
       return -1;
     }
     /* allocate hardware and software parameters */
-    if (snd_pcm_hw_params_any(dev->handle, hw_params) < 0) {
+    if (UNLIKELY(snd_pcm_hw_params_any(dev->handle, hw_params) < 0)) {
       strncpy(msg, Str("No real-time audio configurations found"), MSGLEN);
       goto err_return_msg;
     }
     /*=======================*/
     unsigned int hwchns;
-    if(snd_pcm_hw_params_get_channels_max(hw_params, &hwchns) < 0){
+    if (UNLIKELY(snd_pcm_hw_params_get_channels_max(hw_params, &hwchns) < 0)) {
       strncpy(msg, Str("Could not retrieve max number of channels"), MSGLEN);
       goto err_return_msg;
     }
@@ -389,8 +389,8 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
 
     /* now set the various hardware parameters: */
     /* access method, */
-    if (snd_pcm_hw_params_set_access(dev->handle, hw_params,
-                                     SND_PCM_ACCESS_RW_INTERLEAVED) < 0) {
+    if (UNLIKELY(snd_pcm_hw_params_set_access(dev->handle, hw_params,
+                                              SND_PCM_ACCESS_RW_INTERLEAVED) < 0)) {
       strncpy(msg, Str("Error setting access type for soundcard"), MSGLEN);
       goto err_return_msg;
     }
@@ -403,27 +403,29 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
       if (play) dev->playconv = (void (*)(int, MYFLT*, void*, int*)) fp;
       else      dev->rec_conv = (void (*)(int, void*, MYFLT*)) fp;
     }
-    if (alsaFmt == SND_PCM_FORMAT_UNKNOWN) {
+    if (UNLIKELY(alsaFmt == SND_PCM_FORMAT_UNKNOWN)) {
       strncpy(msg, Str("Unknown sample format.\n *** Only 16-bit and 32-bit "
                        "integers, and 32-bit floats are supported."), MSGLEN);
       goto err_return_msg;
     }
-    if (snd_pcm_hw_params_set_format(dev->handle, hw_params, alsaFmt) < 0) {
+    if (UNLIKELY(snd_pcm_hw_params_set_format(dev->handle, hw_params, alsaFmt)<0)) {
       strncpy(msg,
               Str("Unable to set requested sample format on soundcard"),MSGLEN);
       goto err_return_msg;
     }
     /* number of channels, */
-    if (snd_pcm_hw_params_set_channels(dev->handle, hw_params,
-                                       (unsigned int) dev->nchns) < 0) {
+    if (UNLIKELY(snd_pcm_hw_params_set_channels(dev->handle, hw_params,
+                                                (unsigned int) dev->nchns) < 0)) {
       strncpy(msg, Str("Unable to set number of channels on soundcard"), MSGLEN);
       goto err_return_msg;
     }
     /* sample rate, (patched for sound cards that object to fixed rate) */
     {
       unsigned int target = dev->srate;
-      if (snd_pcm_hw_params_set_rate_near(dev->handle, hw_params,
-                                          (unsigned int *) &dev->srate, 0) < 0){
+      if (UNLIKELY(snd_pcm_hw_params_set_rate_near(dev->handle,
+                                                   hw_params,
+                                                   (unsigned int *) &dev->srate, 0)
+                   < 0)) {
         strncpy(msg, Str("Unable to set sample rate on soundcard"), MSGLEN);
         goto err_return_msg;
       }
@@ -440,7 +442,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
       snd_pcm_uframes_t nn = (snd_pcm_uframes_t) dev->buffer_smps;
       err = snd_pcm_hw_params_set_buffer_size_near(dev->handle, hw_params, &nn);
       if (err < 0 || (int) nn != dev->buffer_smps) {
-        if (err >= 0)  {
+        if (UNLIKELY(err >= 0))  {
           p->Message(p, Str("ALSA: -B %d not allowed on this device; "
                             "using %d instead\n"), dev->buffer_smps, (int) nn);
           dev->buffer_smps=nn;
@@ -463,7 +465,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
       err = snd_pcm_hw_params_set_period_size_near(dev->handle, hw_params, &nn,
                                                    &dir);
       if (err < 0 || (int) nn != dev->period_smps) {
-        if (err >= 0) {
+        if (UNLIKELY(err >= 0)) {
           p->Message(p, Str("ALSA: -b %d not allowed on this device; "
                             "using %d instead\n"), dev->period_smps, (int) nn);
           dev->period_smps=nn;
@@ -471,7 +473,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
       }
     }
     /* set up device according to the above parameters */
-    if (snd_pcm_hw_params(dev->handle, hw_params) < 0) {
+    if (UNLIKELY(snd_pcm_hw_params(dev->handle, hw_params) < 0)) {
       strncpy(msg,
               Str("Error setting hardware parameters for real-time audio"),
               MSGLEN);
@@ -485,13 +487,13 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
                  dev->buffer_smps, dev->period_smps /*, dev->srate*/);
     /* now set software parameters */
     n = (play ? dev->buffer_smps : 1);
-    if (snd_pcm_sw_params_current(dev->handle, sw_params) < 0
-        || snd_pcm_sw_params_set_start_threshold(dev->handle, sw_params,
-                                                 (snd_pcm_uframes_t) n) < 0
-        || snd_pcm_sw_params_set_avail_min(dev->handle, sw_params,
-                                           dev->period_smps) < 0
-        /* || snd_pcm_sw_params_set_xfer_align(dev->handle, sw_params, 1) < 0 */
-        || snd_pcm_sw_params(dev->handle, sw_params) < 0) {
+    if (UNLIKELY(snd_pcm_sw_params_current(dev->handle, sw_params) < 0 ||
+                 snd_pcm_sw_params_set_start_threshold(dev->handle, sw_params,
+                                                 (snd_pcm_uframes_t) n) < 0 ||
+                 snd_pcm_sw_params_set_avail_min(dev->handle, sw_params,
+                                           dev->period_smps) < 0 ||
+        /* snd_pcm_sw_params_set_xfer_align(dev->handle, sw_params, 1) < 0 || */
+                 snd_pcm_sw_params(dev->handle, sw_params) < 0)) {
       strncpy(msg,
               Str("Error setting software parameters for real-time audio"),MSGLEN);
       goto err_return_msg;
@@ -499,7 +501,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev, int play)
     /* allocate memory for sample conversion buffer */
     n = (dev->format == AE_SHORT ? 2 : 4) * dev->nchns * alloc_smps;
     dev->buf = (void*) csound->Malloc(csound, (size_t) n);
-    if (dev->buf == NULL) {
+    if (UNLIKELY(dev->buf == NULL)) {
       strncpy(msg, Str("Memory allocation failure"),MSGLEN);
       goto err_return_msg;
     }
@@ -612,7 +614,7 @@ static int open_device(CSOUND *csound, const csRtAudioParams *parm, int play)
     /* check if the device is already opened */
     if (*userDataPtr != NULL)
       return 0;
-    if (parm->devNum != 1024) {
+    if (UNLIKELY(parm->devNum != 1024)) {
       csound->ErrorMsg(csound, Str(" *** ALSA: must specify a device name, "
                                    "not a number (e.g. -odac:hw:0,0)"));
       list_devices(csound);
@@ -620,7 +622,7 @@ static int open_device(CSOUND *csound, const csRtAudioParams *parm, int play)
     }
     /* allocate structure */
     dev = (DEVPARAMS*) csound->Malloc(csound, sizeof(DEVPARAMS));
-    if (dev == NULL) {
+    if (UNLIKELY(dev == NULL)) {
       csound->ErrorMsg(csound, Str(" *** ALSA: %s: memory allocation failure"),
                        (play ? "playopen" : "recopen"));
       return -1;
@@ -668,9 +670,9 @@ static int playopen_(CSOUND *csound, const csRtAudioParams *parm)
 #ifdef warning
 #undef warning
 #endif
-#define warning(x) {                            \
-      if (csound->GetMessageLevel(csound) & 4)  \
-        csound->Warning(csound, Str(x));        \
+#define warning(x) {                                      \
+      if (UNLIKELY(csound->GetMessageLevel(csound) & 4))  \
+        csound->Warning(csound, Str(x));                  \
   }
 
 static int rtrecord_(CSOUND *csound, MYFLT *inbuf, int nbytes)
@@ -694,7 +696,7 @@ static int rtrecord_(CSOUND *csound, MYFLT *inbuf, int nbytes)
         n -= err; m += err; continue;
       }
       /* handle I/O errors */
-      if (err == -EPIPE) {
+      if (UNLIKELY(err == -EPIPE)) {
         /* buffer underrun */
         warning(Str("Buffer overrun in real-time audio input"));     /* complain */
         if (snd_pcm_prepare(dev->handle) >= 0) continue;
@@ -791,14 +793,15 @@ static alsaMidiInputDevice* open_midi_device(CSOUND *csound, const char  *s)
     int         err;
     alsaMidiInputDevice *dev;
 
-    dev = (alsaMidiInputDevice*) csound->Malloc(csound, sizeof(alsaMidiInputDevice));
-    if (dev == NULL) {
+    dev = (alsaMidiInputDevice*) csound->Malloc(csound,
+                                                sizeof(alsaMidiInputDevice));
+    if (UNLIKELY(dev == NULL)) {
       csound->ErrorMsg(csound, Str("ALSA MIDI: memory allocation failure"));
       return dev;
     }
     memset(dev, 0, sizeof(alsaMidiInputDevice));
     err = snd_rawmidi_open(&(dev->dev), NULL, s, SND_RAWMIDI_NONBLOCK);
-    if (err != 0) {
+    if (UNLIKELY(err != 0)) {
       csound->ErrorMsg(csound,
                        Str("ALSA: error opening MIDI input device: '%s'"), s);
       csound->Free(csound,dev);
@@ -822,7 +825,7 @@ static int midi_in_open(CSOUND *csound, void **userData, const char *devName)
 
     (*userData) = NULL;
     olddev = NULL;
-    if (devName==NULL) {
+    if (UNLIKELY(devName==NULL)) {
       csound->Message(csound, Str("ALSA midi: no string\n"));
       exit(1);                  /* what should happen here???????? */
     }
@@ -843,7 +846,7 @@ static int midi_in_open(CSOUND *csound, void **userData, const char *devName)
               }
               snprintf(name, 32, "hw:%d,%d", card, device);
               newdev = open_midi_device(csound, name);
-              if (newdev != NULL) {   /* Device opened successfully */
+              if (LIKELY(newdev != NULL)) {   /* Device opened successfully */
                 numdevs++;
                 if (olddev != NULL) {
                   olddev->next = newdev;
@@ -877,7 +880,7 @@ static int midi_in_open(CSOUND *csound, void **userData, const char *devName)
       numdevs = 1;
     }
     csound->Free(csound, name);
-    if (numdevs == 0) {
+    if (UNLIKELY(numdevs == 0)) {
       csound->ErrorMsg(csound, Str("ALSA midi: No devices found.\n"));
       *userData = NULL;
     }
@@ -1442,7 +1445,7 @@ static int alsaseq_in_read(CSOUND *csound,
       return 0;
     else
       err = snd_midi_event_decode(amidi->mev, buf, nbytes, ev);
-    return err;
+    return (err==-ENOENT) ? 0 : err;
 }
 
 static int alsaseq_in_close(CSOUND *csound, void *userData)
diff --git a/InOut/rtauhal.c b/InOut/rtauhal.c
index 2e4735c..55f678f 100644
--- a/InOut/rtauhal.c
+++ b/InOut/rtauhal.c
@@ -256,7 +256,7 @@ int AuHAL_open(CSOUND *csound, const csRtAudioParams * parm,
         for(i=0; (unsigned int)  i < devnos; i++) {
           if((unsigned int) devinfo[i].indevnum == devnum) CoreAudioDev = i;
         }
-        if(CoreAudioDev >= 0) {
+        if (LIKELY(CoreAudioDev >= 0)) {
           prop.mSelector = kAudioHardwarePropertyDefaultInputDevice;
           dev  = sysdevs[CoreAudioDev];
           AudioObjectSetPropertyData(kAudioObjectSystemObject, &prop,
@@ -271,13 +271,13 @@ int AuHAL_open(CSOUND *csound, const csRtAudioParams * parm,
         for(i=0;(unsigned int)  i < devnos; i++) {
           if((unsigned int) devinfo[i].outdevnum == devnum)  CoreAudioDev = i;
         }
-        if(CoreAudioDev >= 0) {
+        if (LIKELY(CoreAudioDev >= 0)) {
           dev  = sysdevs[CoreAudioDev];
           AudioObjectSetPropertyData(kAudioObjectSystemObject, &prop,
                                      0, NULL, sizeof(AudioDeviceID), &dev);
 
         }
-        else csound->Warning(csound, Str("requested device %d out of range"),
+        else csound->Warning(csound, Str("requested device %d (%s) out of range"),
                              devnum, devinfo[CoreAudioDev].name);
       }
     }
@@ -329,7 +329,7 @@ int AuHAL_open(CSOUND *csound, const csRtAudioParams * parm,
     AudioObjectSetPropertyData(dev, &prop, 0, NULL, psize, &srate);
     AudioObjectGetPropertyData(dev, &prop, 0, NULL, &psize, &sr);
 
-    if(sr != srate) {
+    if(UNLIKELY(sr != srate)) {
       csound->Warning(csound,
                       Str("Attempted to set device SR, tried %.1f, got %.1f \n"),
                       srate, sr);
diff --git a/InOut/rtjack.c b/InOut/rtjack.c
index c858e01..7a79ac1 100644
--- a/InOut/rtjack.c
+++ b/InOut/rtjack.c
@@ -61,77 +61,77 @@ static inline void rtJack_Lock(CSOUND *csound, pthread_mutex_t *p)
 static inline int rtJack_LockTimeout(CSOUND *csound, pthread_mutex_t *p,
                                      size_t milliseconds)
 {
-  struct timeval  tv;
-  struct timespec ts;
-  register size_t n, s;
-  register int retval = pthread_mutex_trylock(p);
-  if (!retval)
-    return retval;
-  if (!milliseconds)
-    return retval;
-  gettimeofday(&tv, NULL);
-  s = milliseconds / (size_t) 1000;
-  n = milliseconds - (s * (size_t) 1000);
-  s += (size_t) tv.tv_sec;
-  n = (size_t) (((int) n * 1000 + (int) tv.tv_usec) * 1000);
-  ts.tv_nsec = (long) (n < (size_t) 1000000000 ? n : n - 1000000000);
-  ts.tv_sec = (time_t) (n < (size_t) 1000000000 ? s : s + 1);
-  return pthread_mutex_timedlock(p, &ts);
+    struct timeval  tv;
+    struct timespec ts;
+    register size_t n, s;
+    register int retval = pthread_mutex_trylock(p);
+    if (!retval)
+      return retval;
+    if (!milliseconds)
+      return retval;
+    gettimeofday(&tv, NULL);
+    s = milliseconds / (size_t) 1000;
+    n = milliseconds - (s * (size_t) 1000);
+    s += (size_t) tv.tv_sec;
+    n = (size_t) (((int) n * 1000 + (int) tv.tv_usec) * 1000);
+    ts.tv_nsec = (long) (n < (size_t) 1000000000 ? n : n - 1000000000);
+    ts.tv_sec = (time_t) (n < (size_t) 1000000000 ? s : s + 1);
+    return pthread_mutex_timedlock(p, &ts);
 }
 
 static inline int rtJack_TryLock(CSOUND *csound, pthread_mutex_t *p)
 {
-  (void) csound;
-  return (pthread_mutex_trylock(p));
+    (void) csound;
+    return (pthread_mutex_trylock(p));
 }
 
 static inline void rtJack_Unlock(CSOUND *csound, pthread_mutex_t *p)
 {
-  (void) csound;
-  pthread_mutex_unlock(p);
+    (void) csound;
+    pthread_mutex_unlock(p);
 }
 
 static inline void rtJack_DestroyLock(CSOUND *csound, pthread_mutex_t *p)
 {
-  (void) csound;
-  pthread_mutex_unlock(p);
-  pthread_mutex_destroy(p);
+    (void) csound;
+    pthread_mutex_unlock(p);
+    pthread_mutex_destroy(p);
 }
 
 #else   /* LINUX */
 
 static inline int rtJack_CreateLock(CSOUND *csound, void **p)
 {
-  *p = csound->CreateThreadLock();
-  return (*p != NULL ? 0 : -1);
+    *p = csound->CreateThreadLock();
+    return (*p != NULL ? 0 : -1);
 }
 
 static inline void rtJack_Lock(CSOUND *csound, void **p)
 {
-  csound->WaitThreadLockNoTimeout(*p);
+    csound->WaitThreadLockNoTimeout(*p);
 }
 
 static inline int rtJack_LockTimeout(CSOUND *csound, void **p, size_t timeout)
 {
-  return csound->WaitThreadLock(*p, timeout);
+    return csound->WaitThreadLock(*p, timeout);
 }
 
 
 static inline int rtJack_TryLock(CSOUND *csound, void **p)
 {
-  return (csound->WaitThreadLock(*p, (size_t) 0));
+    return (csound->WaitThreadLock(*p, (size_t) 0));
 }
 
 static inline void rtJack_Unlock(CSOUND *csound, void **p)
 {
-  csound->NotifyThreadLock(*p);
+    csound->NotifyThreadLock(*p);
 }
 
 static inline void rtJack_DestroyLock(CSOUND *csound, void **p)
 {
-  csound->NotifyThreadLock(*p);
-  csound->DestroyThreadLock(*p);
-  *p = NULL;
+    csound->NotifyThreadLock(*p);
+    csound->DestroyThreadLock(*p);
+    *p = NULL;
 }
 
 #endif  /* !LINUX */
@@ -146,187 +146,187 @@ static int processCallback(jack_nframes_t nframes, void *arg);
 
 static int sampleRateCallback(jack_nframes_t nframes, void *arg)
 {
-  RtJackGlobals *p = (RtJackGlobals*) arg;
+    RtJackGlobals *p = (RtJackGlobals*) arg;
 
-  if (p->sampleRate != (int) nframes)
-    p->jackState = 1;
-  return 0;
+    if (p->sampleRate != (int) nframes)
+      p->jackState = 1;
+    return 0;
 }
 
 static int bufferSizeCallback(jack_nframes_t nframes, void *arg)
 {
-  RtJackGlobals *p = (RtJackGlobals*) arg;
+    RtJackGlobals *p = (RtJackGlobals*) arg;
 
-  (void) nframes;
-  /* invalidate output port buffer pointer cache */
-  if (p->outPortBufs != NULL)
-    p->outPortBufs[0] = (jack_default_audio_sample_t*) NULL;
-  return 0;
+    (void) nframes;
+    /* invalidate output port buffer pointer cache */
+    if (p->outPortBufs != NULL)
+      p->outPortBufs[0] = (jack_default_audio_sample_t*) NULL;
+    return 0;
 }
 
 #ifdef LINUX
 static void freeWheelCallback(int starting, void *arg)
 {
-  RtJackGlobals *p;
-  CSOUND *csound;
-
-  p = (RtJackGlobals*) arg;
-  csound = p->csound;
-  if (starting) {
-    if (UNLIKELY(sched_getscheduler(0) != SCHED_OTHER)) {
-      struct sched_param sp;
-      csound->Message(csound, Str(" *** WARNING: "
-                                  "disabling --sched in freewheel mode\n"));
-      memset(&sp, 0, sizeof(struct sched_param));
-      sp.sched_priority = 0;
-      sched_setscheduler(0, SCHED_OTHER, &sp);
+    RtJackGlobals *p;
+    CSOUND *csound;
+
+    p = (RtJackGlobals*) arg;
+    csound = p->csound;
+    if (starting) {
+      if (UNLIKELY(sched_getscheduler(0) != SCHED_OTHER)) {
+        struct sched_param sp;
+        csound->Message(csound, Str(" *** WARNING: "
+                                    "disabling --sched in freewheel mode\n"));
+        memset(&sp, 0, sizeof(struct sched_param));
+        sp.sched_priority = 0;
+        sched_setscheduler(0, SCHED_OTHER, &sp);
+      }
     }
-  }
 }
 #endif
 
 static int xrunCallback(void *arg)
 {
-  RtJackGlobals *p = (RtJackGlobals*) arg;
+    RtJackGlobals *p = (RtJackGlobals*) arg;
 
-  p->xrunFlag = 1;
-  return 0;
+    p->xrunFlag = 1;
+    return 0;
 }
 
 static void shutDownCallback(void *arg)
 {
-  RtJackGlobals *p = (RtJackGlobals*) arg;
-
-  p->jackState = 2;
-  if (p->bufs != NULL) {
-    int   i;
-    for (i = 0; i < p->nBuffers; i++) {
-      if (p->bufs[i] != NULL &&
-          (p->bufs[i]->inBufs != NULL || p->bufs[i]->outBufs != NULL))
-        rtJack_Unlock(p->csound, &(p->bufs[i]->csndLock));
+    RtJackGlobals *p = (RtJackGlobals*) arg;
+
+    p->jackState = 2;
+    if (p->bufs != NULL) {
+      int   i;
+      for (i = 0; i < p->nBuffers; i++) {
+        if (p->bufs[i] != NULL &&
+            (p->bufs[i]->inBufs != NULL || p->bufs[i]->outBufs != NULL))
+          rtJack_Unlock(p->csound, &(p->bufs[i]->csndLock));
+      }
     }
-  }
 }
 
 static inline size_t rtJack_AlignData(size_t ofs)
 {
-  return ((ofs + (size_t) 15) & (~((size_t) 15)));
+    return ((ofs + (size_t) 15) & (~((size_t) 15)));
 }
 
 /* allocate ring buffers */
 static void rtJack_AllocateBuffers(RtJackGlobals *p)
 {
-  CSOUND *csound = p->csound;
-  void    *ptr;
-  size_t  i, j, m, nBytes, nBytesPerBuf, ofs1, ofs2, ofs3;
-
-  m = (size_t) ((p->inputEnabled ? 1 : 0) + (p->outputEnabled ? 1 : 0));
-  if (!m)
-    return;
-  /* calculate the number of bytes to allocate */
-  ofs1 = rtJack_AlignData(sizeof(RtJackBuffer*) * (size_t) p->nBuffers);
-  ofs2 = rtJack_AlignData(sizeof(RtJackBuffer));
-  ofs3 = rtJack_AlignData(sizeof(jack_default_audio_sample_t*)
-                          * (size_t) p->nChannels * m);
-  nBytesPerBuf = ofs2 + ofs3;
-  nBytesPerBuf += rtJack_AlignData(sizeof(jack_default_audio_sample_t)
-                                   * (size_t) p->nChannels
-                                   * (size_t) p->bufSize
-                                   * m);
-  nBytes = ofs1 + (nBytesPerBuf * (size_t) p->nBuffers);
-  /* allocate memory */
-  ptr = (RtJackBuffer**) csound->Malloc(csound, nBytes);
-  if (UNLIKELY(ptr == NULL))
-    rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
-  p->bufs = (RtJackBuffer**) ptr;
-  memset((void*) ptr, 0, nBytes);
-  /* set pointer to each buffer */
-  ptr = (void*) ((char*) ptr + (long) ofs1);
-  for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
-    p->bufs[i] = ptr;
-    ptr = (void*) ((char*) ptr + (long) nBytesPerBuf);
-  }
-  for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
-    /* create lock for signaling when the process callback is done */
-    /* with the buffer */
-    if (UNLIKELY(rtJack_CreateLock(csound, &(p->bufs[i]->csndLock)) != 0))
-      rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
-    /* create lock for signaling when the Csound thread is done */
-    /* with the buffer */
-    if (UNLIKELY(rtJack_CreateLock(csound, &(p->bufs[i]->jackLock)) != 0)) {
-      rtJack_DestroyLock(csound, &(p->bufs[i]->csndLock));
+    CSOUND *csound = p->csound;
+    void    *ptr;
+    size_t  i, j, m, nBytes, nBytesPerBuf, ofs1, ofs2, ofs3;
+
+    m = (size_t) ((p->inputEnabled ? 1 : 0) + (p->outputEnabled ? 1 : 0));
+    if (!m)
+      return;
+    /* calculate the number of bytes to allocate */
+    ofs1 = rtJack_AlignData(sizeof(RtJackBuffer*) * (size_t) p->nBuffers);
+    ofs2 = rtJack_AlignData(sizeof(RtJackBuffer));
+    ofs3 = rtJack_AlignData(sizeof(jack_default_audio_sample_t*)
+                            * (size_t) p->nChannels * m);
+    nBytesPerBuf = ofs2 + ofs3;
+    nBytesPerBuf += rtJack_AlignData(sizeof(jack_default_audio_sample_t)
+                                     * (size_t) p->nChannels
+                                     * (size_t) p->bufSize
+                                     * m);
+    nBytes = ofs1 + (nBytesPerBuf * (size_t) p->nBuffers);
+    /* allocate memory */
+    ptr = (RtJackBuffer**) csound->Malloc(csound, nBytes);
+    if (UNLIKELY(ptr == NULL))
       rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
+    p->bufs = (RtJackBuffer**) ptr;
+    memset((void*) ptr, 0, nBytes);
+    /* set pointer to each buffer */
+    ptr = (void*) ((char*) ptr + (long) ofs1);
+    for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
+      p->bufs[i] = ptr;
+      ptr = (void*) ((char*) ptr + (long) nBytesPerBuf);
     }
-    ptr = (void*) p->bufs[i];
-    ptr = (void*) ((char*) ptr + (long) ofs2);
-    /* set pointers to input/output buffers */
-    if (p->inputEnabled) {
-      p->bufs[i]->inBufs = (jack_default_audio_sample_t**) ptr;
-      ptr = (void*) &(p->bufs[i]->inBufs[p->nChannels]);
-    }
-    if (p->outputEnabled)
-      p->bufs[i]->outBufs = (jack_default_audio_sample_t**) ptr;
-    ptr = (void*) p->bufs[i];
-    ptr = (void*) ((char*) ptr + (long) (ofs2 + ofs3));
-    for (j = (size_t) 0; j < (size_t) p->nChannels; j++) {
+    for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
+      /* create lock for signaling when the process callback is done */
+      /* with the buffer */
+      if (UNLIKELY(rtJack_CreateLock(csound, &(p->bufs[i]->csndLock)) != 0))
+        rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
+      /* create lock for signaling when the Csound thread is done */
+      /* with the buffer */
+      if (UNLIKELY(rtJack_CreateLock(csound, &(p->bufs[i]->jackLock)) != 0)) {
+        rtJack_DestroyLock(csound, &(p->bufs[i]->csndLock));
+        rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
+      }
+      ptr = (void*) p->bufs[i];
+      ptr = (void*) ((char*) ptr + (long) ofs2);
+      /* set pointers to input/output buffers */
       if (p->inputEnabled) {
-        p->bufs[i]->inBufs[j] = (jack_default_audio_sample_t*) ptr;
-        ptr = (void*) &(p->bufs[i]->inBufs[j][p->bufSize]);
+        p->bufs[i]->inBufs = (jack_default_audio_sample_t**) ptr;
+        ptr = (void*) &(p->bufs[i]->inBufs[p->nChannels]);
       }
-      if (p->outputEnabled) {
-        p->bufs[i]->outBufs[j] = (jack_default_audio_sample_t*) ptr;
-        ptr = (void*) &(p->bufs[i]->outBufs[j][p->bufSize]);
+      if (p->outputEnabled)
+        p->bufs[i]->outBufs = (jack_default_audio_sample_t**) ptr;
+      ptr = (void*) p->bufs[i];
+      ptr = (void*) ((char*) ptr + (long) (ofs2 + ofs3));
+      for (j = (size_t) 0; j < (size_t) p->nChannels; j++) {
+        if (p->inputEnabled) {
+          p->bufs[i]->inBufs[j] = (jack_default_audio_sample_t*) ptr;
+          ptr = (void*) &(p->bufs[i]->inBufs[j][p->bufSize]);
+        }
+        if (p->outputEnabled) {
+          p->bufs[i]->outBufs[j] = (jack_default_audio_sample_t*) ptr;
+          ptr = (void*) &(p->bufs[i]->outBufs[j][p->bufSize]);
+        }
       }
     }
-  }
 }
 
 static void listPorts(CSOUND *csound, int isOutput){
-          int i,n = listDevices(csound,NULL,isOutput);
-          CS_AUDIODEVICE *devs = (CS_AUDIODEVICE *)
-            csound->Malloc(csound, n*sizeof(CS_AUDIODEVICE));
-          listDevices(csound,devs,isOutput);
-          csound->Message(csound, "Jack %s ports:\n",
-                          isOutput ? "output" : "input");
-          for(i=0; i < n; i++)
-            csound->Message(csound, " %d: %s (dac:%s)\n",
-                            i, devs[i].device_id, devs[i].device_name);
-          csound->Free(csound,devs);
+    int i,n = listDevices(csound,NULL,isOutput);
+    CS_AUDIODEVICE *devs = (CS_AUDIODEVICE *)
+      csound->Malloc(csound, n*sizeof(CS_AUDIODEVICE));
+    listDevices(csound,devs,isOutput);
+    csound->Message(csound, "Jack %s ports:\n",
+                    isOutput ? "output" : "input");
+    for(i=0; i < n; i++)
+      csound->Message(csound, " %d: %s (dac:%s)\n",
+                      i, devs[i].device_id, devs[i].device_name);
+    csound->Free(csound,devs);
 }
 
 /* register JACK ports */
 
 static void rtJack_RegisterPorts(RtJackGlobals *p)
 {
-  char          portName[MAX_NAME_LEN + 4];
-  unsigned long flags = 0UL;
-  int           i;
-  CSOUND *csound = p->csound;
-
-  if (!(p->inputEnabled && p->outputEnabled))
-    flags = (unsigned long) JackPortIsTerminal;
-  if (p->inputEnabled) {
-    /* register input ports */
-    for (i = 0; i < p->nChannels_i; i++) {
-      snprintf(portName, MAX_NAME_LEN + 4, "%s%d", p->inputPortName, i + 1);
-      p->inPorts[i] = jack_port_register(p->client, &(portName[0]),
-                                         JACK_DEFAULT_AUDIO_TYPE,
-                                         flags | JackPortIsInput, 0UL);
-      if (UNLIKELY(p->inPorts[i] == NULL))
-        rtJack_Error(csound, -1, Str("error registering input ports"));
+    char          portName[MAX_NAME_LEN + 4];
+    unsigned long flags = 0UL;
+    int           i;
+    CSOUND *csound = p->csound;
+
+    if (!(p->inputEnabled && p->outputEnabled))
+      flags = (unsigned long) JackPortIsTerminal;
+    if (p->inputEnabled) {
+      /* register input ports */
+      for (i = 0; i < p->nChannels_i; i++) {
+        snprintf(portName, MAX_NAME_LEN + 4, "%s%d", p->inputPortName, i + 1);
+        p->inPorts[i] = jack_port_register(p->client, &(portName[0]),
+                                           JACK_DEFAULT_AUDIO_TYPE,
+                                           flags | JackPortIsInput, 0UL);
+        if (UNLIKELY(p->inPorts[i] == NULL))
+          rtJack_Error(csound, -1, Str("error registering input ports"));
+      }
     }
-  }
-  if (p->outputEnabled) {
-    /* register output ports */
-    for (i = 0; i < p->nChannels; i++) {
-      snprintf(portName, MAX_NAME_LEN + 4, "%s%d", p->outputPortName, i + 1);
-      p->outPorts[i] = jack_port_register(p->client, &(portName[0]),
-                                          JACK_DEFAULT_AUDIO_TYPE,
-                                          flags | JackPortIsOutput, 0UL);
-      if (UNLIKELY(p->outPorts[i] == NULL))
-        rtJack_Error(csound, -1, Str("error registering output ports"));
+    if (p->outputEnabled) {
+      /* register output ports */
+      for (i = 0; i < p->nChannels; i++) {
+        snprintf(portName, MAX_NAME_LEN + 4, "%s%d", p->outputPortName, i + 1);
+        p->outPorts[i] = jack_port_register(p->client, &(portName[0]),
+                                            JACK_DEFAULT_AUDIO_TYPE,
+                                            flags | JackPortIsOutput, 0UL);
+        if (UNLIKELY(p->outPorts[i] == NULL))
+          rtJack_Error(csound, -1, Str("error registering output ports"));
+      }
     }
-  }
 }
 
 
@@ -335,206 +335,208 @@ static void rtJack_RegisterPorts(RtJackGlobals *p)
 
 static void openJackStreams(RtJackGlobals *p)
 {
-  char    buf[256];
-  int     i, j, k;
-  CSOUND *csound = p->csound;
-
-  /* connect to JACK server */
-  p->client = jack_client_open(&(p->clientName[0]), JackNoStartServer, NULL);
-  if (UNLIKELY(p->client == NULL))
-    rtJack_Error(csound, -1, Str("could not connect to JACK server"));
-
-  csound->system_sr(csound, jack_get_sample_rate(p->client));
-  csound->Message(csound, "system sr: %f\n", csound->system_sr(csound,0));
-
-  /* check consistency of parameters */
-  if (UNLIKELY(p->nChannels < 1 || p->nChannels > 255))
-    rtJack_Error(csound, -1, Str("invalid number of channels"));
-  if (p->inputEnabled) {
-    if (UNLIKELY(p->nChannels_i < 1 || p->nChannels > 255))
-      rtJack_Error(csound, -1, Str("invalid number of input channels"));
-  }
-  if (UNLIKELY(p->sampleRate < 1000 || p->sampleRate > 768000))
-    rtJack_Error(csound, -1, Str("invalid sample rate"));
-  if (UNLIKELY(p->sampleRate != (int) jack_get_sample_rate(p->client))) {
-    snprintf(&(buf[0]), 256, Str("sample rate %d does not match "
-                                 "JACK sample rate %d"),
-             p->sampleRate, (int) jack_get_sample_rate(p->client));
-    rtJack_Error(p->csound, -1, &(buf[0]));
-  }
-  if (UNLIKELY(p->bufSize < 8 || p->bufSize > 32768))
-    rtJack_Error(csound, -1, Str("invalid period size (-b)"));
-  if (p->nBuffers < 2)
-    p->nBuffers = 2;
-  if (UNLIKELY((unsigned int) (p->nBuffers * p->bufSize) > (unsigned int) 65536))
-    rtJack_Error(csound, -1, Str("invalid buffer size (-B)"));
-  if (UNLIKELY(((p->nBuffers - 1) * p->bufSize)
-               < (int) jack_get_buffer_size(p->client)))
-    rtJack_Error(csound, -1, Str("buffer size (-B) is too small"));
-
-  /* register ports */
-  rtJack_RegisterPorts(p);
-
-  /* allocate ring buffers if not done yet */
-  if (p->bufs == NULL)
-    rtJack_AllocateBuffers(p);
-
-  /* initialise ring buffers */
-  p->csndBufCnt = 0;
-  p->csndBufPos = 0;
-  p->jackBufCnt = 0;
-  p->jackBufPos = 0;
-  for (i = 0; i < p->nBuffers; i++) {
-    rtJack_TryLock(p->csound, &(p->bufs[i]->csndLock));
-    rtJack_Unlock(p->csound, &(p->bufs[i]->jackLock));
-   if (p->inputEnabled) {
-    for (j = 0; j < p->nChannels_i; j++) {
-        for (k = 0; k < p->bufSize; k++)
-          p->bufs[i]->inBufs[j][k] = (jack_default_audio_sample_t) 0;
+    char    buf[256];
+    int     i, j, k;
+    CSOUND *csound = p->csound;
+
+    /* connect to JACK server */
+    p->client = jack_client_open(&(p->clientName[0]), JackNoStartServer, NULL);
+    if (UNLIKELY(p->client == NULL))
+      rtJack_Error(csound, -1, Str("could not connect to JACK server"));
+
+    csound->system_sr(csound, jack_get_sample_rate(p->client));
+    csound->Message(csound, "system sr: %f\n", csound->system_sr(csound,0));
+
+    /* check consistency of parameters */
+    if (UNLIKELY(p->nChannels < 1 || p->nChannels > 255))
+      rtJack_Error(csound, -1, Str("invalid number of channels"));
+    if (p->inputEnabled) {
+      if (UNLIKELY(p->nChannels_i < 1 || p->nChannels > 255))
+        rtJack_Error(csound, -1, Str("invalid number of input channels"));
+    }
+    if (UNLIKELY(p->sampleRate < 1000 || p->sampleRate > 768000))
+      rtJack_Error(csound, -1, Str("invalid sample rate"));
+    if (UNLIKELY(p->sampleRate != (int) jack_get_sample_rate(p->client))) {
+      snprintf(&(buf[0]), 256, Str("sample rate %d does not match "
+                                   "JACK sample rate %d"),
+               p->sampleRate, (int) jack_get_sample_rate(p->client));
+      rtJack_Error(p->csound, -1, &(buf[0]));
+    }
+    if (UNLIKELY(p->bufSize < 8 || p->bufSize > 32768))
+      rtJack_Error(csound, -1, Str("invalid period size (-b)"));
+    if (p->nBuffers < 2)
+      p->nBuffers = 2;
+    if (UNLIKELY((unsigned int) (p->nBuffers * p->bufSize) > (unsigned int) 65536))
+      rtJack_Error(csound, -1, Str("invalid buffer size (-B)"));
+    if (UNLIKELY(((p->nBuffers - 1) * p->bufSize)
+                 < (int) jack_get_buffer_size(p->client)))
+      rtJack_Error(csound, -1, Str("buffer size (-B) is too small"));
+
+    /* register ports */
+    rtJack_RegisterPorts(p);
+
+    /* allocate ring buffers if not done yet */
+    if (p->bufs == NULL)
+      rtJack_AllocateBuffers(p);
+
+    /* initialise ring buffers */
+    p->csndBufCnt = 0;
+    p->csndBufPos = 0;
+    p->jackBufCnt = 0;
+    p->jackBufPos = 0;
+    for (i = 0; i < p->nBuffers; i++) {
+      rtJack_TryLock(p->csound, &(p->bufs[i]->csndLock));
+      rtJack_Unlock(p->csound, &(p->bufs[i]->jackLock));
+      if (p->inputEnabled) {
+        for (j = 0; j < p->nChannels_i; j++) {
+          for (k = 0; k < p->bufSize; k++)
+            p->bufs[i]->inBufs[j][k] = (jack_default_audio_sample_t) 0;
+        }
       }
-   }
-   if (p->outputEnabled) {
-    for (j = 0; j < p->nChannels; j++) {
-        for (k = 0; k < p->bufSize; k++)
-          p->bufs[i]->outBufs[j][k] = (jack_default_audio_sample_t) 0;
+      if (p->outputEnabled) {
+        for (j = 0; j < p->nChannels; j++) {
+          for (k = 0; k < p->bufSize; k++)
+            p->bufs[i]->outBufs[j][k] = (jack_default_audio_sample_t) 0;
+        }
       }
     }
-  }
 
-  /* output port buffer pointer cache is invalid initially */
-  if (p->outputEnabled)
-    p->outPortBufs[0] = (jack_default_audio_sample_t*) NULL;
-
-  /* register callback functions */
-  if (UNLIKELY(jack_set_sample_rate_callback(p->client,
-                                             sampleRateCallback, (void*) p)
-               != 0))
-    rtJack_Error(csound, -1, Str("error setting sample rate callback"));
-  if (UNLIKELY(jack_set_buffer_size_callback(p->client,
-                                             bufferSizeCallback, (void*) p)
-               != 0))
-    rtJack_Error(csound, -1, Str("error setting buffer size callback"));
+    /* output port buffer pointer cache is invalid initially */
+    if (p->outputEnabled)
+      p->outPortBufs[0] = (jack_default_audio_sample_t*) NULL;
+
+    /* register callback functions */
+    if (UNLIKELY(jack_set_sample_rate_callback(p->client,
+                                               sampleRateCallback, (void*) p)
+                 != 0))
+      rtJack_Error(csound, -1, Str("error setting sample rate callback"));
+    if (UNLIKELY(jack_set_buffer_size_callback(p->client,
+                                               bufferSizeCallback, (void*) p)
+                 != 0))
+      rtJack_Error(csound, -1, Str("error setting buffer size callback"));
 #ifdef LINUX
-  if (UNLIKELY(jack_set_freewheel_callback(p->client,
-                                           freeWheelCallback, (void*) p)
-               != 0))
-    rtJack_Error(csound, -1, Str("error setting freewheel callback"));
+    if (UNLIKELY(jack_set_freewheel_callback(p->client,
+                                             freeWheelCallback, (void*) p)
+                 != 0))
+      rtJack_Error(csound, -1, Str("error setting freewheel callback"));
 #endif
-  if (UNLIKELY(jack_set_xrun_callback(p->client, xrunCallback, (void*) p) != 0))
-    rtJack_Error(csound, -1, Str("error setting xrun callback"));
-  jack_on_shutdown(p->client, shutDownCallback, (void*) p);
-  if (UNLIKELY(jack_set_process_callback(p->client,
-                                         processCallback, (void*) p) != 0))
-    rtJack_Error(csound, -1, Str("error setting process callback"));
-
-  /* activate client */
-  if (UNLIKELY(jack_activate(p->client) != 0))
-    rtJack_Error(csound, -1, Str("error activating JACK client"));
-
-  /* connect ports if requested */
-  if (p->inputEnabled) {
-    listPorts(csound,0);
-    if(p->inDevNum >= 0){
-      int num = p->inDevNum;
-      unsigned long portFlags =  JackPortIsOutput;
-      char **portNames = (char**) jack_get_ports(p->client,
-                                                 (char*) NULL,
-                                                 JACK_DEFAULT_AUDIO_TYPE,
-                                                 portFlags);
+    if (UNLIKELY(jack_set_xrun_callback(p->client, xrunCallback, (void*) p) != 0))
+      rtJack_Error(csound, -1, Str("error setting xrun callback"));
+    jack_on_shutdown(p->client, shutDownCallback, (void*) p);
+    if (UNLIKELY(jack_set_process_callback(p->client,
+                                           processCallback, (void*) p) != 0))
+      rtJack_Error(csound, -1, Str("error setting process callback"));
+
+    /* activate client */
+    if (UNLIKELY(jack_activate(p->client) != 0))
+      rtJack_Error(csound, -1, Str("error activating JACK client"));
+
+    /* connect ports if requested */
+    if (p->inputEnabled) {
+      listPorts(csound,0);
+      if (p->inDevNum >= 0){
+        int num = p->inDevNum;
+        unsigned long portFlags =  JackPortIsOutput;
+        char **portNames = (char**) jack_get_ports(p->client,
+                                                   (char*) NULL,
+                                                   JACK_DEFAULT_AUDIO_TYPE,
+                                                   portFlags);
+
+        for (i = 0; i < p->nChannels_i; i++) {
+          if (portNames[num+i] != NULL){
+            csound->Message(csound, Str("connecting channel %d to %s \n"),
+                            i,portNames[num+i]);
+            if (jack_connect(p->client, portNames[num+i],
+                             jack_port_name(p->inPorts[i])) != 0) {
+              csound->Warning(csound,
+                              Str("failed autoconnecting input channel %d \n"
+                                  "(needs manual connection)"), i+1);
+            }
+          } else
+            csound->Warning(csound, Str("jack port %d not valid \n"
+                                        "failed autoconnecting input channel %d \n"
+                                        "(needs manual connection)"), num+i, i+1);
+        }
+        jack_free(portNames);
 
-      for (i = 0; i < p->nChannels_i; i++) {
-        if(portNames[num+i] != NULL){
-          csound->Message(csound, Str("connecting channel %d to %s \n"),
-                          i,portNames[num+i]);
-          if(jack_connect(p->client, portNames[num+i],
-                          jack_port_name(p->inPorts[i])) != 0) {
-            csound->Warning(csound, Str("failed autoconnecting input channel %d \n"
-                                        "(needs manual connection)"), i+1);
-          }
-        } else
-          csound->Warning(csound, Str("jack port %d not valid \n"
-                                      "failed autoconnecting input channel %d \n"
-                                      "(needs manual connection)"), num+i, i+1);
       }
-      jack_free(portNames);
-
-    }
-    else {
-      if(strcmp(p->outDevName, "null") && p->inDevName != NULL){
-        char dev[128], *dev_final, *sp;
-        strncpy(dev, p->inDevName, 128); dev[127]='\0';
-        dev_final = dev;
-        sp = strchr(dev_final, '\0');
-        if (!isalpha(dev_final[0])) dev_final++;
-        for (i = 0; i < p->nChannels; i++) {
-          snprintf(sp, 128-(dev-sp), "%d", i + 1);
-          csound->Message(csound, Str("connecting channel %d to %s \n"),
-                          i, dev_final);
-          if (UNLIKELY(jack_connect(p->client, dev_final,
-                                    jack_port_name(p->inPorts[i])) != 0)) {
-            csound->Warning(csound,
-                            Str("not autoconnecting input channel %d \n"
-                                "(needs manual connection)"), i+1);
+      else {
+        if (strcmp(p->outDevName, "null") && p->inDevName != NULL){
+          char dev[128], *dev_final, *sp;
+          strncpy(dev, p->inDevName, 128); dev[127]='\0';
+          dev_final = dev;
+          sp = strchr(dev_final, '\0');
+          if (!isalpha(dev_final[0])) dev_final++;
+          for (i = 0; i < p->nChannels; i++) {
+            snprintf(sp, 128-(dev-sp), "%d", i + 1);
+            csound->Message(csound, Str("connecting channel %d to %s \n"),
+                            i, dev_final);
+            if (UNLIKELY(jack_connect(p->client, dev_final,
+                                      jack_port_name(p->inPorts[i])) != 0)) {
+              csound->Warning(csound,
+                              Str("not autoconnecting input channel %d \n"
+                                  "(needs manual connection)"), i+1);
+            }
           }
+          *sp = (char) 0;
         }
-        *sp = (char) 0;
+        csound->Message(csound, Str("put port not connected\n"));
       }
-      csound->Message(csound, Str("put port not connected\n"));
+
     }
+    if (p->outputEnabled) {
+      listPorts(csound,1);
+      if (p->outDevNum >= 0) {
+        int num = p->outDevNum;
+        unsigned long portFlags =  JackPortIsInput;
+        char **portNames = (char**) jack_get_ports(p->client,
+                                                   (char*) NULL,
+                                                   JACK_DEFAULT_AUDIO_TYPE,
+                                                   portFlags);
 
-  }
-  if (p->outputEnabled) {
-    listPorts(csound,1);
-    if(p->outDevNum >= 0) {
-      int num = p->outDevNum;
-      unsigned long portFlags =  JackPortIsInput;
-      char **portNames = (char**) jack_get_ports(p->client,
-                                                 (char*) NULL,
-                                                 JACK_DEFAULT_AUDIO_TYPE,
-                                                 portFlags);
+        for (i = 0; i < p->nChannels; i++) {
+          if (portNames[num+i] != NULL) {
+            csound->Message(csound, Str("connecting channel %d to %s \n"),
+                            i,portNames[num+i]);
+            if (jack_connect(p->client, jack_port_name(p->outPorts[i]),
+                             portNames[num+i]) != 0) {
+              csound->Warning(csound,
+                              Str("failed autoconnecting output channel %d \n"
+                                  "(needs manual connection)"), i+1);
+            }
+          } else
+            csound->Warning(csound, Str("jack port %d not valid \n"
+                                        "failed autoconnecting output channel %d \n"
+                                        "(needs manual connection)"), num+i, i+1);
+        }
 
-      for (i = 0; i < p->nChannels; i++) {
-        if(portNames[num+i] != NULL){
-          csound->Message(csound, Str("connecting channel %d to %s \n"),
-                          i,portNames[num+i]);
-          if(jack_connect(p->client, jack_port_name(p->outPorts[i]),
-                          portNames[num+i]) != 0) {
-            csound->Warning(csound, Str("failed autoconnecting output channel %d \n"
-                                        "(needs manual connection)"), i+1);
+        jack_free(portNames);
+      }
+      else {
+        if (p->outDevName != NULL && strcmp(p->outDevName, "null")){
+          char dev[128], *dev_final, *sp;
+          strncpy(dev, p->outDevName, 128); dev[127]='\0';
+          dev_final = dev;
+          sp = strchr(dev_final, '\0');
+          if (!isalpha(dev_final[0])) dev_final++;
+          for (i = 0; i < p->nChannels; i++) {
+            snprintf(sp, 128-(dev-sp), "%d", i + 1);
+            csound->Message(csound, Str("connecting channel %d to %s \n"),
+                            i, dev_final);
+            if (UNLIKELY(jack_connect(p->client, jack_port_name(p->outPorts[i]),
+                                      dev_final) != 0)) {
+              csound->Warning(csound, Str("failed to autoconnect output channel "
+                                          "%d \n(needs manual connection)"), i+1);
+
+            }
           }
+          *sp = (char) 0;
         } else
-          csound->Warning(csound, Str("jack port %d not valid \n"
-                                      "failed autoconnecting output channel %d \n"
-                                      "(needs manual connection)"), num+i, i+1);
+          csound->Message(csound, Str("output port not connected\n"));
       }
-
-      jack_free(portNames);
-    }
-    else {
-      if(p->outDevName != NULL && strcmp(p->outDevName, "null")){
-        char dev[128], *dev_final, *sp;
-        strncpy(dev, p->outDevName, 128); dev[127]='\0';
-        dev_final = dev;
-        sp = strchr(dev_final, '\0');
-        if(!isalpha(dev_final[0])) dev_final++;
-        for (i = 0; i < p->nChannels; i++) {
-          snprintf(sp, 128-(dev-sp), "%d", i + 1);
-          csound->Message(csound, Str("connecting channel %d to %s \n"),
-                          i, dev_final);
-          if (jack_connect(p->client, jack_port_name(p->outPorts[i]),
-                           dev_final) != 0) {
-            csound->Warning(csound, Str("failed to autoconnect output channel %d \n"
-                                        "(needs manual connection)"), i+1);
-
-          }
-        }
-        *sp = (char) 0;
-      } else
-        csound->Message(csound, Str("output port not connected\n"));
     }
-  }
-  /* stream is now active */
-  p->jackState = 0;
+    /* stream is now active */
+    p->jackState = 0;
 }
 
 /* Make a copy of the device name specified for -i adc or -o dac, */
@@ -544,59 +546,60 @@ static void openJackStreams(RtJackGlobals *p)
 static void rtJack_CopyDevParams(RtJackGlobals *p,
                                  const csRtAudioParams *parm, int isOutput)
 {
-  CSOUND  *csound;
-  char    *s;
-  size_t  nBytes;
+    CSOUND  *csound;
+    char    *s;
+    size_t  nBytes;
 
-  csound = p->csound;
+    csound = p->csound;
 
-  if (parm->devNum != 1024) {
-    if(isOutput){
-      p->outDevNum = parm->devNum;
-      p->outDevName = NULL;
-    }
-    else {
-      p->inDevNum = parm->devNum;
-      p->inDevName = NULL;
-    }
-  }
-  else {
-    if (parm->devName != NULL && parm->devName[0] != (char) 0) {
-      /* NOTE: this assumes max. 999 channels (the current limit is 255) */
-      nBytes = strlen(parm->devName) + 4;
-      s = (char*) csound->Malloc(csound, nBytes+1);
-      if (UNLIKELY(s == NULL))
-        rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
-      strcpy(s, parm->devName);
-      if(isOutput){
-        p->outDevNum = -1;
-        p->outDevName = s;
+    if (parm->devNum != 1024) {
+      if (isOutput){
+        p->outDevNum = parm->devNum;
+        p->outDevName = NULL;
       }
       else {
-        p->inDevName = s;
-        p->inDevNum = -1;
+        p->inDevNum = parm->devNum;
+        p->inDevName = NULL;
       }
     }
-    if (isOutput && p->inputEnabled) {
-      /* full duplex audio I/O: check consistency of parameters */
-      if (UNLIKELY(/*p->nChannels != parm->nChannels ||*/
-                   (unsigned int)p->bufSize != parm->bufSamp_SW))
-        rtJack_Error(csound, -1,
-                     Str("input and output parameters are not consistent"));
-      if (UNLIKELY((unsigned int)((parm->bufSamp_SW / csound->GetKsmps(csound)) *
-                                  csound->GetKsmps(csound)) != parm->bufSamp_SW))
-        rtJack_Error(csound, -1,
-                     Str("period size (-b) must be an integer multiple of ksmps"));
+    else {
+      if (parm->devName != NULL && parm->devName[0] != (char) 0) {
+        /* NOTE: this assumes max. 999 channels (the current limit is 255) */
+        nBytes = strlen(parm->devName) + 4;
+        s = (char*) csound->Malloc(csound, nBytes+1);
+        if (UNLIKELY(s == NULL))
+          rtJack_Error(csound, CSOUND_MEMORY, Str("memory allocation failure"));
+        strcpy(s, parm->devName);
+        if (isOutput){
+          p->outDevNum = -1;
+          p->outDevName = s;
+        }
+        else {
+          p->inDevName = s;
+          p->inDevNum = -1;
+        }
+      }
+      if (isOutput && p->inputEnabled) {
+        /* full duplex audio I/O: check consistency of parameters */
+        if (UNLIKELY(/*p->nChannels != parm->nChannels ||*/
+                     (unsigned int)p->bufSize != parm->bufSamp_SW))
+          rtJack_Error(csound, -1,
+                       Str("input and output parameters are not consistent"));
+        if (UNLIKELY((unsigned int)((parm->bufSamp_SW / csound->GetKsmps(csound)) *
+                                    csound->GetKsmps(csound)) != parm->bufSamp_SW))
+          rtJack_Error(csound, -1,
+                       Str("period size (-b) must be an integer "
+                           "multiple of ksmps"));
+      }
     }
-  }
-  p->sampleRate = (int) parm->sampleRate;
-  if (UNLIKELY((float) p->sampleRate != parm->sampleRate))
-    rtJack_Error(csound, -1, Str("sample rate must be an integer"));
-  if(isOutput) p->nChannels = parm->nChannels;
-  else p->nChannels_i = parm->nChannels;
+    p->sampleRate = (int) parm->sampleRate;
+    if (UNLIKELY((float) p->sampleRate != parm->sampleRate))
+      rtJack_Error(csound, -1, Str("sample rate must be an integer"));
+    if (isOutput) p->nChannels = parm->nChannels;
+    else p->nChannels_i = parm->nChannels;
 
-  p->bufSize = parm->bufSamp_SW;
-  p->nBuffers = (parm->bufSamp_HW + parm->bufSamp_SW - 1) / parm->bufSamp_SW;
+    p->bufSize = parm->bufSamp_SW;
+    p->nBuffers = (parm->bufSamp_HW + parm->bufSamp_SW - 1) / parm->bufSamp_SW;
 
 }
 
@@ -604,56 +607,56 @@ static void rtJack_CopyDevParams(RtJackGlobals *p,
 
 static int recopen_(CSOUND *csound, const csRtAudioParams *parm)
 {
-  RtJackGlobals *p;
-
-  p = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
-  if (p == NULL)
-    return -1;
-  *(csound->GetRtRecordUserData(csound)) = (void*) p;
-  rtJack_CopyDevParams(p, parm, 0);
-  p->inputEnabled = 1;
-  /* allocate pointers to input ports */
-  p->inPorts = (jack_port_t**)
-    csound->Calloc(csound, (size_t) p->nChannels_i* sizeof(jack_port_t*));
-  if (UNLIKELY(p->inPorts == NULL))
-    rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
-  /* allocate pointers to input port buffers */
-  p->inPortBufs = (jack_default_audio_sample_t**)
-    csound->Calloc(csound,
-                   (size_t) p->nChannels_i * sizeof(jack_default_audio_sample_t*));
-  if (UNLIKELY(p->inPortBufs == NULL))
-    rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
-  return 0;
+    RtJackGlobals *p;
+
+    p = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
+    if (p == NULL)
+      return -1;
+    *(csound->GetRtRecordUserData(csound)) = (void*) p;
+    rtJack_CopyDevParams(p, parm, 0);
+    p->inputEnabled = 1;
+    /* allocate pointers to input ports */
+    p->inPorts = (jack_port_t**)
+      csound->Calloc(csound, (size_t) p->nChannels_i* sizeof(jack_port_t*));
+    if (UNLIKELY(p->inPorts == NULL))
+      rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
+    /* allocate pointers to input port buffers */
+    p->inPortBufs = (jack_default_audio_sample_t**)
+      csound->Calloc(csound,
+                     (size_t)p->nChannels_i * sizeof(jack_default_audio_sample_t*));
+    if (UNLIKELY(p->inPortBufs == NULL))
+      rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
+    return 0;
 }
 
 /* open for audio output */
 
 static int playopen_(CSOUND *csound, const csRtAudioParams *parm)
 {
-  RtJackGlobals *p;
-
-  p = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
-  if (p == NULL)
-    return -1;
-  *(csound->GetRtPlayUserData(csound)) = (void*) p;
-  rtJack_CopyDevParams(p, parm, 1);
-
-  p->outputEnabled = 1;
-  /* allocate pointers to output ports */
-  p->outPorts = (jack_port_t**)
-    csound->Calloc(csound, (size_t) p->nChannels* sizeof(jack_port_t*));
-  if (UNLIKELY(p->outPorts == NULL))
-    rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
-  /* allocate pointers to output port buffers */
-  p->outPortBufs = (jack_default_audio_sample_t**)
-    csound->Calloc(csound,
-                   (size_t) p->nChannels* sizeof(jack_default_audio_sample_t*));
-  if (UNLIKELY(p->outPortBufs == NULL))
-    rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
-  /* activate client to start playback */
-  openJackStreams(p);
+    RtJackGlobals *p;
+
+    p = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
+    if (p == NULL)
+      return -1;
+    *(csound->GetRtPlayUserData(csound)) = (void*) p;
+    rtJack_CopyDevParams(p, parm, 1);
+
+    p->outputEnabled = 1;
+    /* allocate pointers to output ports */
+    p->outPorts = (jack_port_t**)
+      csound->Calloc(csound, (size_t) p->nChannels* sizeof(jack_port_t*));
+    if (UNLIKELY(p->outPorts == NULL))
+      rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
+    /* allocate pointers to output port buffers */
+    p->outPortBufs = (jack_default_audio_sample_t**)
+      csound->Calloc(csound,
+                     (size_t) p->nChannels* sizeof(jack_default_audio_sample_t*));
+    if (UNLIKELY(p->outPortBufs == NULL))
+      rtJack_Error(p->csound, CSOUND_MEMORY, Str("memory allocation failure"));
+    /* activate client to start playback */
+    openJackStreams(p);
 
-  return 0;
+    return 0;
 }
 
 /* the process callback is called by the JACK client thread, */
@@ -661,222 +664,222 @@ static int playopen_(CSOUND *csound, const csRtAudioParams *parm)
 
 static int processCallback(jack_nframes_t nframes, void *arg)
 {
-  RtJackGlobals *p;
-  int           i, j, k, l;
-
-  p = (RtJackGlobals*) arg;
-  /* get pointers to port buffers */
-  if (p->inputEnabled) {
-    for (i = 0; i < p->nChannels_i; i++)
-      p->inPortBufs[i] = (jack_default_audio_sample_t*)
-        jack_port_get_buffer(p->inPorts[i], nframes);
-  }
-  if (p->outputEnabled && p->outPortBufs[0] == NULL) {
-    for (i = 0; i < p->nChannels; i++)
-      p->outPortBufs[i] = (jack_default_audio_sample_t*)
-        jack_port_get_buffer(p->outPorts[i], nframes);
-  }
-  i = 0;
-  do {
-    /* if starting new buffer: */
-    if (p->jackBufPos == 0) {
-      /* check for xrun: */
-      if (rtJack_TryLock(p->csound, &(p->bufs[p->jackBufCnt]->jackLock))
-          != 0) {
-        p->xrunFlag = 1;
-        /* yes, discard input and fill output with zero samples */
-        if (p->outputEnabled) {
-          for (j = 0; j < p->nChannels; j++)
-            for (k = i; k < (int) nframes; k++)
-              p->outPortBufs[j][k] = (jack_default_audio_sample_t) 0;
-          return 0;
+    RtJackGlobals *p;
+    int           i, j, k, l;
+
+    p = (RtJackGlobals*) arg;
+    /* get pointers to port buffers */
+    if (p->inputEnabled) {
+      for (i = 0; i < p->nChannels_i; i++)
+        p->inPortBufs[i] = (jack_default_audio_sample_t*)
+          jack_port_get_buffer(p->inPorts[i], nframes);
+    }
+    if (p->outputEnabled && p->outPortBufs[0] == NULL) {
+      for (i = 0; i < p->nChannels; i++)
+        p->outPortBufs[i] = (jack_default_audio_sample_t*)
+          jack_port_get_buffer(p->outPorts[i], nframes);
+    }
+    i = 0;
+    do {
+      /* if starting new buffer: */
+      if (p->jackBufPos == 0) {
+        /* check for xrun: */
+        if (rtJack_TryLock(p->csound, &(p->bufs[p->jackBufCnt]->jackLock))
+            != 0) {
+          p->xrunFlag = 1;
+          /* yes, discard input and fill output with zero samples */
+          if (p->outputEnabled) {
+            for (j = 0; j < p->nChannels; j++)
+              for (k = i; k < (int) nframes; k++)
+                p->outPortBufs[j][k] = (jack_default_audio_sample_t) 0;
+            return 0;
+          }
         }
       }
-    }
-    /* copy audio data on each channel */
-    k = (int) nframes - i;
-    l = p->bufSize - p->jackBufPos;
-    l = (l < k ? l : k);      /* number of frames to copy */
-   if (p->inputEnabled) {
-     for (j = 0; j < p->nChannels_i; j++) {
-        jack_default_audio_sample_t   *srcp, *dstp;
-        srcp = &(p->inPortBufs[j][i]);
-        dstp = &(p->bufs[p->jackBufCnt]->inBufs[j][p->jackBufPos]);
-        for (k = 0; k < l; k++)
-          dstp[k] = srcp[k];
+      /* copy audio data on each channel */
+      k = (int) nframes - i;
+      l = p->bufSize - p->jackBufPos;
+      l = (l < k ? l : k);      /* number of frames to copy */
+      if (p->inputEnabled) {
+        for (j = 0; j < p->nChannels_i; j++) {
+          jack_default_audio_sample_t   *srcp, *dstp;
+          srcp = &(p->inPortBufs[j][i]);
+          dstp = &(p->bufs[p->jackBufCnt]->inBufs[j][p->jackBufPos]);
+          for (k = 0; k < l; k++)
+            dstp[k] = srcp[k];
+        }
       }
-    }
-    if (p->outputEnabled) {
-    for (j = 0; j < p->nChannels; j++) {
-        jack_default_audio_sample_t   *srcp, *dstp;
-        srcp = &(p->bufs[p->jackBufCnt]->outBufs[j][p->jackBufPos]);
-        dstp = &(p->outPortBufs[j][i]);
-        for (k = 0; k < l; k++)
-          dstp[k] = srcp[k];
+      if (p->outputEnabled) {
+        for (j = 0; j < p->nChannels; j++) {
+          jack_default_audio_sample_t   *srcp, *dstp;
+          srcp = &(p->bufs[p->jackBufCnt]->outBufs[j][p->jackBufPos]);
+          dstp = &(p->outPortBufs[j][i]);
+          for (k = 0; k < l; k++)
+            dstp[k] = srcp[k];
+        }
       }
-    }
-    p->jackBufPos += l;
-    i += l;
-    /* if done with a buffer, notify Csound thread and advance to next one */
-    if (p->jackBufPos >= p->bufSize) {
-      p->jackBufPos = 0;
-      rtJack_Unlock(p->csound, &(p->bufs[p->jackBufCnt]->csndLock));
-      if (++(p->jackBufCnt) >= p->nBuffers)
-        p->jackBufCnt = 0;
-    }
-  } while (i < (int) nframes);
-  return 0;
+      p->jackBufPos += l;
+      i += l;
+      /* if done with a buffer, notify Csound thread and advance to next one */
+      if (p->jackBufPos >= p->bufSize) {
+        p->jackBufPos = 0;
+        rtJack_Unlock(p->csound, &(p->bufs[p->jackBufCnt]->csndLock));
+        if (++(p->jackBufCnt) >= p->nBuffers)
+          p->jackBufCnt = 0;
+      }
+    } while (i < (int) nframes);
+    return 0;
 }
 
 static CS_NOINLINE CS_NORETURN void rtJack_Abort(CSOUND *csound, int err)
 {
-  switch (err) {
-  case 1:
-    rtJack_Error(csound, -1, Str("JACK sample rate changed"));
-    break;
-  default:
-    rtJack_Error(csound, -1, Str("no connection to JACK server"));
-  }
+    switch (err) {
+    case 1:
+      rtJack_Error(csound, -1, Str("JACK sample rate changed"));
+      break;
+    default:
+      rtJack_Error(csound, -1, Str("no connection to JACK server"));
+    }
 }
 
 static CS_NOINLINE void rtJack_Restart(RtJackGlobals *p)
 {
-  CSOUND  *csound = p->csound;
+    CSOUND  *csound = p->csound;
 
-  csound->ErrorMsg(csound, Str(" *** rtjack: connection to JACK "
-                               "server was lost, reconnecting..."));
-  p->jackState = -1;
-  jack_client_close(p->client);
-  openJackStreams(p);
+    csound->ErrorMsg(csound, Str(" *** rtjack: connection to JACK "
+                                 "server was lost, reconnecting..."));
+    p->jackState = -1;
+    jack_client_close(p->client);
+    openJackStreams(p);
 }
 
 /* get samples from ADC */
 
 static int rtrecord_(CSOUND *csound, MYFLT *inbuf_, int bytes_)
 {
-  RtJackGlobals *p;
-  int           i, j, k, nframes, bufpos, bufcnt;
-
-  p = (RtJackGlobals*) *(csound->GetRtPlayUserData(csound));
-  if (UNLIKELY(p==NULL)) rtJack_Abort(csound, 0);
-  if (p->jackState != 0) {
-    if (p->jackState < 0)
-      openJackStreams(p);     /* open audio input */
-    else if (p->jackState == 2)
-      rtJack_Restart(p);
-    else
-      rtJack_Abort(csound, p->jackState);
-  }
-  nframes = bytes_ / (p->nChannels_i * (int) sizeof(MYFLT));
-  bufpos = p->csndBufPos;
-  bufcnt = p->csndBufCnt;
-  for (i = j = 0; i < nframes; i++) {
-    if (bufpos == 0) {
-      /* wait until there is enough data in ring buffer */
-      /* VL 28.03.15 -- timeout after wait for 10 buffer
-         lengths */
-      int ret = rtJack_LockTimeout(csound, &(p->bufs[bufcnt]->csndLock),
-                                   10000*(nframes/csound->GetSr(csound)));
-      if(ret) {
-        memset(inbuf_, 0, bytes_);
-        OPARMS oparms;
-        csound->GetOParms(csound, &oparms);
-        if (oparms.msglevel & 4)
-          csound->Warning(csound, Str("rtjack: input audio timeout"));
-        return bytes_;
+    RtJackGlobals *p;
+    int           i, j, k, nframes, bufpos, bufcnt;
+
+    p = (RtJackGlobals*) *(csound->GetRtPlayUserData(csound));
+    if (UNLIKELY(p==NULL)) rtJack_Abort(csound, 0);
+    if (p->jackState != 0) {
+      if (p->jackState < 0)
+        openJackStreams(p);     /* open audio input */
+      else if (p->jackState == 2)
+        rtJack_Restart(p);
+      else
+        rtJack_Abort(csound, p->jackState);
+    }
+    nframes = bytes_ / (p->nChannels_i * (int) sizeof(MYFLT));
+    bufpos = p->csndBufPos;
+    bufcnt = p->csndBufCnt;
+    for (i = j = 0; i < nframes; i++) {
+      if (bufpos == 0) {
+        /* wait until there is enough data in ring buffer */
+        /* VL 28.03.15 -- timeout after wait for 10 buffer
+           lengths */
+        int ret = rtJack_LockTimeout(csound, &(p->bufs[bufcnt]->csndLock),
+                                     10000*(nframes/csound->GetSr(csound)));
+        if (ret) {
+          memset(inbuf_, 0, bytes_);
+          OPARMS oparms;
+          csound->GetOParms(csound, &oparms);
+          if (UNLIKELY(oparms.msglevel & 4))
+            csound->Warning(csound, Str("rtjack: input audio timeout"));
+          return bytes_;
+        }
+      }
+      /* copy audio data */
+      for (k = 0; k < p->nChannels_i; k++)
+        inbuf_[j++] = (MYFLT) p->bufs[bufcnt]->inBufs[k][i];
+      if (++bufpos >= p->bufSize) {
+        bufpos = 0;
+        /* notify JACK callback that this buffer has been consumed */
+        if (!p->outputEnabled)
+          rtJack_Unlock(csound, &(p->bufs[bufcnt]->jackLock));
+        /* advance to next buffer */
+        if (++bufcnt >= p->nBuffers)
+          bufcnt = 0;
       }
     }
-    /* copy audio data */
-    for (k = 0; k < p->nChannels_i; k++)
-      inbuf_[j++] = (MYFLT) p->bufs[bufcnt]->inBufs[k][i];
-    if (++bufpos >= p->bufSize) {
-      bufpos = 0;
-      /* notify JACK callback that this buffer has been consumed */
-      if (!p->outputEnabled)
-        rtJack_Unlock(csound, &(p->bufs[bufcnt]->jackLock));
-      /* advance to next buffer */
-      if (++bufcnt >= p->nBuffers)
-        bufcnt = 0;
+    if (!p->outputEnabled) {
+      p->csndBufPos = bufpos;
+      p->csndBufCnt = bufcnt;
+    }
+    if (p->xrunFlag) {
+      p->xrunFlag = 0;
+      OPARMS oparms;
+      csound->GetOParms(csound, &oparms);
+      if (UNLIKELY(oparms.msglevel & 4))
+        csound->Warning(csound, Str("rtjack: xrun in real time audio"));
     }
-  }
-  if (!p->outputEnabled) {
-    p->csndBufPos = bufpos;
-    p->csndBufCnt = bufcnt;
-  }
-  if (p->xrunFlag) {
-    p->xrunFlag = 0;
-    OPARMS oparms;
-    csound->GetOParms(csound, &oparms);
-    if (oparms.msglevel & 4)
-      csound->Warning(csound, Str("rtjack: xrun in real time audio"));
-  }
 
-  return bytes_;
+    return bytes_;
 }
 
 /* put samples to DAC */
 
 static void rtplay_(CSOUND *csound, const MYFLT *outbuf_, int bytes_)
 {
-  RtJackGlobals *p;
-  int           i, j, k, nframes;
-
-  p = (RtJackGlobals*) *(csound->GetRtPlayUserData(csound));
-  if (p == NULL)
-    return;
-  if (p->jackState != 0) {
-    if (p->jackState == 2)
-      rtJack_Restart(p);
-    else
-      rtJack_Abort(csound, p->jackState);
-    return;
-  }
-  nframes = bytes_ / (p->nChannels * (int) sizeof(MYFLT));
-  for (i = j = 0; i < nframes; i++) {
-    if (p->csndBufPos == 0) {
-      /* wait until there is enough free space in ring buffer */
-      if (!p->inputEnabled)
-        /* **** COVERITY: claims this is a double lock **** */
-        rtJack_Lock(csound, &(p->bufs[p->csndBufCnt]->csndLock));
+    RtJackGlobals *p;
+    int           i, j, k, nframes;
+
+    p = (RtJackGlobals*) *(csound->GetRtPlayUserData(csound));
+    if (p == NULL)
+      return;
+    if (p->jackState != 0) {
+      if (p->jackState == 2)
+        rtJack_Restart(p);
+      else
+        rtJack_Abort(csound, p->jackState);
+      return;
     }
-    /* copy audio data */
-    for (k = 0; k < p->nChannels; k++)
-      p->bufs[p->csndBufCnt]->outBufs[k][i] =
-        (jack_default_audio_sample_t) outbuf_[j++];
-    if (++(p->csndBufPos) >= p->bufSize) {
-      p->csndBufPos = 0;
-      /* notify JACK callback that this buffer is now filled */
-      rtJack_Unlock(csound, &(p->bufs[p->csndBufCnt]->jackLock));
-      /* advance to next buffer */
-      if (++(p->csndBufCnt) >= p->nBuffers)
-        p->csndBufCnt = 0;
+    nframes = bytes_ / (p->nChannels * (int) sizeof(MYFLT));
+    for (i = j = 0; i < nframes; i++) {
+      if (p->csndBufPos == 0) {
+        /* wait until there is enough free space in ring buffer */
+        if (!p->inputEnabled)
+          /* **** COVERITY: claims this is a double lock **** */
+          rtJack_Lock(csound, &(p->bufs[p->csndBufCnt]->csndLock));
+      }
+      /* copy audio data */
+      for (k = 0; k < p->nChannels; k++)
+        p->bufs[p->csndBufCnt]->outBufs[k][i] =
+          (jack_default_audio_sample_t) outbuf_[j++];
+      if (++(p->csndBufPos) >= p->bufSize) {
+        p->csndBufPos = 0;
+        /* notify JACK callback that this buffer is now filled */
+        rtJack_Unlock(csound, &(p->bufs[p->csndBufCnt]->jackLock));
+        /* advance to next buffer */
+        if (++(p->csndBufCnt) >= p->nBuffers)
+          p->csndBufCnt = 0;
+      }
+    }
+    if (p->xrunFlag) {
+      p->xrunFlag = 0;
+      csound->Warning(csound, Str("rtjack: xrun in real time audio"));
     }
-  }
-  if (p->xrunFlag) {
-    p->xrunFlag = 0;
-    csound->Warning(csound, Str("rtjack: xrun in real time audio"));
-  }
 }
 
 /* release ring buffers */
 
 static void rtJack_DeleteBuffers(RtJackGlobals *p)
 {
-  RtJackBuffer  **bufs;
-  size_t        i;
-
-  if (p->bufs == (RtJackBuffer**) NULL)
-    return;
-  bufs = p->bufs;
-  p->bufs = (RtJackBuffer**) NULL;
-  for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
-    if (bufs[i]->inBufs == (jack_default_audio_sample_t**) NULL &&
-        bufs[i]->outBufs == (jack_default_audio_sample_t**) NULL)
-      continue;
-    rtJack_DestroyLock(p->csound, &(bufs[i]->csndLock));
-    rtJack_DestroyLock(p->csound, &(bufs[i]->jackLock));
-  }
-  p->csound->Free(p->csound,(void*) bufs);
+    RtJackBuffer  **bufs;
+    size_t        i;
+
+    if (p->bufs == (RtJackBuffer**) NULL)
+      return;
+    bufs = p->bufs;
+    p->bufs = (RtJackBuffer**) NULL;
+    for (i = (size_t) 0; i < (size_t) p->nBuffers; i++) {
+      if (bufs[i]->inBufs == (jack_default_audio_sample_t**) NULL &&
+          bufs[i]->outBufs == (jack_default_audio_sample_t**) NULL)
+        continue;
+      rtJack_DestroyLock(p->csound, &(bufs[i]->csndLock));
+      rtJack_DestroyLock(p->csound, &(bufs[i]->jackLock));
+    }
+    p->csound->Free(p->csound,(void*) bufs);
 }
 
 /* close the I/O device entirely  */
@@ -884,63 +887,63 @@ static void rtJack_DeleteBuffers(RtJackGlobals *p)
 
 static CS_NOINLINE void rtclose_(CSOUND *csound)
 {
-  RtJackGlobals p;
-  RtJackGlobals *pp;
-  int           i;
-
-  pp = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
-  if (pp == NULL)
-    return;
-  *(csound->GetRtPlayUserData(csound))  = NULL;
-  *(csound->GetRtRecordUserData(csound))  = NULL;
-  memcpy(&p, pp, sizeof(RtJackGlobals));
-  /* free globals */
-
-  if (p.client != (jack_client_t*) NULL) {
-    /* deactivate client */
-    //if (p.jackState != 2) {
-    //if (p.jackState == 0)
-    //  csound->Sleep((size_t)
-    //                ((int) ((double) (p.bufSize * p.nBuffers)
-    //                        * 1000.0 / (double) p.sampleRate + 0.999)));
-    jack_deactivate(p.client);
-    //}
-    csound->Sleep((size_t) 50);
-    /* unregister and free all ports */
-    if (p.inPorts != NULL) {
-      for (i = 0; i < p.nChannels_i; i++) {
-        if (p.inPorts[i] != NULL && p.jackState != 2)
-          jack_port_unregister(p.client, p.inPorts[i]);
+    RtJackGlobals p;
+    RtJackGlobals *pp;
+    int           i;
+
+    pp = (RtJackGlobals*) csound->QueryGlobalVariable(csound, "_rtjackGlobals");
+    if (pp == NULL)
+      return;
+    *(csound->GetRtPlayUserData(csound))  = NULL;
+    *(csound->GetRtRecordUserData(csound))  = NULL;
+    memcpy(&p, pp, sizeof(RtJackGlobals));
+    /* free globals */
+
+    if (p.client != (jack_client_t*) NULL) {
+      /* deactivate client */
+      //if (p.jackState != 2) {
+      //if (p.jackState == 0)
+      //  csound->Sleep((size_t)
+      //                ((int) ((double) (p.bufSize * p.nBuffers)
+      //                        * 1000.0 / (double) p.sampleRate + 0.999)));
+      jack_deactivate(p.client);
+      //}
+      csound->Sleep((size_t) 50);
+      /* unregister and free all ports */
+      if (p.inPorts != NULL) {
+        for (i = 0; i < p.nChannels_i; i++) {
+          if (p.inPorts[i] != NULL && p.jackState != 2)
+            jack_port_unregister(p.client, p.inPorts[i]);
+        }
       }
-    }
-    if (p.outPorts != NULL) {
-      for (i = 0; i < p.nChannels; i++) {
-        if (p.outPorts[i] != NULL && p.jackState != 2)
-          jack_port_unregister(p.client, p.outPorts[i]);
+      if (p.outPorts != NULL) {
+        for (i = 0; i < p.nChannels; i++) {
+          if (p.outPorts[i] != NULL && p.jackState != 2)
+            jack_port_unregister(p.client, p.outPorts[i]);
+        }
+      }
+      /* close connection */
+      if (p.jackState != 2) {
+        jack_client_close(p.client);
       }
     }
-    /* close connection */
-    if (p.jackState != 2) {
-      jack_client_close(p.client);
-    }
-  }
-  /* free copy of input and output device name */
-  if (p.inDevName != NULL)
-    csound->Free(csound,p.inDevName);
-  if (p.outDevName != NULL)
-    csound->Free(csound,p.outDevName);
-  /* free ports and port buffer pointers */
-  if (p.inPorts != NULL)
-    csound->Free(csound,p.inPorts);
-  if (p.inPortBufs != NULL)
-    csound->Free(csound,p.inPortBufs);
-  if (p.outPorts != NULL)
-    csound->Free(csound,p.outPorts);
-  if (p.outPortBufs != NULL)
-    csound->Free(csound,p.outPortBufs);
-  /* free ring buffers */
-  rtJack_DeleteBuffers(&p);
-  csound->DestroyGlobalVariable(csound, "_rtjackGlobals");
+    /* free copy of input and output device name */
+    if (p.inDevName != NULL)
+      csound->Free(csound,p.inDevName);
+    if (p.outDevName != NULL)
+      csound->Free(csound,p.outDevName);
+    /* free ports and port buffer pointers */
+    if (p.inPorts != NULL)
+      csound->Free(csound,p.inPorts);
+    if (p.inPortBufs != NULL)
+      csound->Free(csound,p.inPortBufs);
+    if (p.outPorts != NULL)
+      csound->Free(csound,p.outPorts);
+    if (p.outPortBufs != NULL)
+      csound->Free(csound,p.outPortBufs);
+    /* free ring buffers */
+    rtJack_DeleteBuffers(&p);
+    csound->DestroyGlobalVariable(csound, "_rtjackGlobals");
 }
 
 /* print error message, close connection, and terminate performance */
@@ -948,57 +951,57 @@ static CS_NOINLINE void rtclose_(CSOUND *csound)
 static CS_NORETURN void rtJack_Error(CSOUND *csound,
                                      int errCode, const char *msg)
 {
-  csound->ErrorMsg(csound, " *** rtjack: %s", msg);
-  rtclose_(csound);
-  csound->LongJmp(csound, errCode);
+    csound->ErrorMsg(csound, " *** rtjack: %s", msg);
+    rtclose_(csound);
+    csound->LongJmp(csound, errCode);
 }
 
 int listDevices(CSOUND *csound, CS_AUDIODEVICE *list, int isOutput){
 
-  char            **portNames = (char**) NULL, port[64];
-  unsigned long   portFlags;
-  int             i, n, cnt=0;
-  jack_client_t *jackClient;
-  RtJackGlobals* p =
-    (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                        "_rtjackGlobals");
+    char            **portNames = (char**) NULL, port[64];
+    unsigned long   portFlags;
+    int             i, n, cnt=0;
+    jack_client_t *jackClient;
+    RtJackGlobals* p =
+      (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                          "_rtjackGlobals");
 
-  if(p->listclient == NULL)
-    p->listclient = jack_client_open("list", JackNoStartServer, NULL);
+    if (p->listclient == NULL)
+      p->listclient = jack_client_open("list", JackNoStartServer, NULL);
 
-  jackClient  = p->listclient;
+    jackClient  = p->listclient;
 
-  if(jackClient == NULL) return 0;
-  portFlags = (isOutput ? (unsigned long) JackPortIsInput
-               : (unsigned long) JackPortIsOutput);
+    if (jackClient == NULL) return 0;
+    portFlags = (isOutput ? (unsigned long) JackPortIsInput
+                 : (unsigned long) JackPortIsOutput);
 
-  portNames = (char**) jack_get_ports(jackClient,
-                                      (char*) NULL,
-                                      JACK_DEFAULT_AUDIO_TYPE,
-                                      portFlags);
-  if(portNames == NULL) {
-    jack_client_close(jackClient);
-    p->listclient = NULL;
-    return 0;
-  }
+    portNames = (char**) jack_get_ports(jackClient,
+                                        (char*) NULL,
+                                        JACK_DEFAULT_AUDIO_TYPE,
+                                        portFlags);
+    if (portNames == NULL) {
+      jack_client_close(jackClient);
+      p->listclient = NULL;
+      return 0;
+    }
 
-  memset(port, '\0', 64);
-  for(i=0; portNames[i] != NULL; i++, cnt++) {
-    n = (int) strlen(portNames[i]);
-    strncpy(port, portNames[i], n);
-    port[n] = '\0';
-    if (list != NULL) {
-      strncpy(list[cnt].device_name, port, 63);
-      snprintf(list[cnt].device_id, 63, "%s%d",
-               isOutput ? "dac" : "adc", cnt);
-      list[cnt].max_nchnls = 1;
-      list[cnt].isOutput = isOutput;
+    memset(port, '\0', 64);
+    for(i=0; portNames[i] != NULL; i++, cnt++) {
+      n = (int) strlen(portNames[i]);
+      strncpy(port, portNames[i], n);
+      port[n] = '\0';
+      if (list != NULL) {
+        strncpy(list[cnt].device_name, port, 63);
+        snprintf(list[cnt].device_id, 63, "%s%d",
+                 isOutput ? "dac" : "adc", cnt);
+        list[cnt].max_nchnls = 1;
+        list[cnt].isOutput = isOutput;
+      }
     }
-  }
-  jack_free(portNames);
-  jack_client_close(jackClient);
-  p->listclient = NULL;
-  return cnt;
+    jack_free(portNames);
+    jack_client_close(jackClient);
+    p->listclient = NULL;
+    return cnt;
 }
 
 typedef struct RtJackMIDIGlobals_ {
@@ -1011,118 +1014,118 @@ typedef struct RtJackMIDIGlobals_ {
 /* module interface functions */
 PUBLIC int csoundModuleCreate(CSOUND *csound)
 {
-  RtJackGlobals   *p;
-  int             i, j;
-  OPARMS oparms;
-  csound->GetOParms(csound, &oparms);
-
-  /* allocate and initialise globals */
-  if (oparms.msglevel & 0x400)
-    csound->Message(csound, Str("JACK real-time audio module for Csound\n"));
-  if (csound->CreateGlobalVariable(csound, "_rtjackGlobals",
-                                   sizeof(RtJackGlobals)) != 0) {
-    csound->ErrorMsg(csound, Str(" *** rtjack: error allocating globals"));
-    return -1;
-  }
-  p = (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                          "_rtjackGlobals");
-  p->csound = csound;
-  p->jackState = -1;
-  strcpy(&(p->clientName[0]), "csound6");
-  strcpy(&(p->inputPortName[0]), "input");
-  strcpy(&(p->outputPortName[0]), "output");
-  p->sleepTime = 1000;        /* this is not actually used */
-  p->inDevName = (char*) NULL;
-  p->outDevName = (char*) NULL;
-  p->client = (jack_client_t*) NULL;
-  p->inPorts = (jack_port_t**) NULL;
-  p->inPortBufs = (jack_default_audio_sample_t**) NULL;
-  p->outPorts = (jack_port_t**) NULL;
-  p->outPortBufs = (jack_default_audio_sample_t**) NULL;
-  p->bufs = (RtJackBuffer**) NULL;
-  /* register options: */
-  /*   client name */
-  i = jack_client_name_size();
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_client",
-                                      (void*) &(p->clientName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK client name (default: csound6)"),
-                                      NULL);
-  /*   input port name */
-  i = jack_port_name_size() - 3;
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_inportname",
-                                      (void*) &(p->inputPortName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK input port name prefix "
-                                          "(default: input)"), NULL);
-  /*   output port name */
-  i = jack_port_name_size() - 3;
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_outportname",
-                                      (void*) &(p->outputPortName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK output port name prefix"
-                                          " (default: output)"), NULL);
-  /* sleep time */
-  i = 250; j = 25000;         /* min/max value */
-  csound->CreateConfigurationVariable(csound, "jack_sleep_time",
-                                      (void*) &(p->sleepTime),
-                                      CSOUNDCFG_INTEGER, 0, &i, &j,
-                                      Str("Deprecated"), NULL);
-  /* done */
-  p->listclient = NULL;
-
-
-  RtJackMIDIGlobals *pm;
-  if (oparms.msglevel & 0x400)
-    csound->Message(csound, Str("JACK MIDI module for Csound\n"));
-  if (csound->CreateGlobalVariable(csound, "_rtjackMIDIGlobals",
-                                   sizeof(RtJackMIDIGlobals)) != 0) {
-    csound->ErrorMsg(csound, Str(" *** rtjack MIDI: error allocating globals"));
-    return -1;
-  }
-  pm = (RtJackMIDIGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                               "_rtjackMIDIGlobals");
-
-  strcpy(&(pm->clientName[0]), "csound6-midi");
-  strcpy(&(pm->inputPortName[0]), "port");
-  strcpy(&(pm->outputPortName[0]), "port");
-  /*   client name */
-  i = jack_client_name_size();
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_midi_client",
-                                      (void*) &(pm->clientName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK MIDI client name prefix"
-                                          " (default: csound6-midi)"),
-                                      NULL);
-
-  /*   input port name */
-  i = jack_port_name_size() - 3;
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_midi_inportname",
-                                      (void*) &(pm->inputPortName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK MIDI input port name"
-                                          "(default: port)"), NULL);
-  /*   output port name */
-  i = jack_port_name_size() - 3;
-  if (i > (MAX_NAME_LEN + 1))
-    i = (MAX_NAME_LEN + 1);
-  csound->CreateConfigurationVariable(csound, "jack_midi_outportname",
-                                      (void*) &(pm->outputPortName[0]),
-                                      CSOUNDCFG_STRING, 0, NULL, &i,
-                                      Str("JACK MIDI output port name"
-                                          " (default: port)"), NULL);
+    RtJackGlobals   *p;
+    int             i, j;
+    OPARMS oparms;
+    csound->GetOParms(csound, &oparms);
 
-  return 0;
+    /* allocate and initialise globals */
+    if (UNLIKELY(oparms.msglevel & 0x400))
+      csound->Message(csound, Str("JACK real-time audio module for Csound\n"));
+    if (UNLIKELY(csound->CreateGlobalVariable(csound, "_rtjackGlobals",
+                                              sizeof(RtJackGlobals)) != 0)) {
+      csound->ErrorMsg(csound, Str(" *** rtjack: error allocating globals"));
+      return -1;
+    }
+    p = (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                            "_rtjackGlobals");
+    p->csound = csound;
+    p->jackState = -1;
+    strcpy(&(p->clientName[0]), "csound6");
+    strcpy(&(p->inputPortName[0]), "input");
+    strcpy(&(p->outputPortName[0]), "output");
+    p->sleepTime = 1000;        /* this is not actually used */
+    p->inDevName = (char*) NULL;
+    p->outDevName = (char*) NULL;
+    p->client = (jack_client_t*) NULL;
+    p->inPorts = (jack_port_t**) NULL;
+    p->inPortBufs = (jack_default_audio_sample_t**) NULL;
+    p->outPorts = (jack_port_t**) NULL;
+    p->outPortBufs = (jack_default_audio_sample_t**) NULL;
+    p->bufs = (RtJackBuffer**) NULL;
+    /* register options: */
+    /*   client name */
+    i = jack_client_name_size();
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_client",
+                                        (void*) &(p->clientName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK client name (default: csound6)"),
+                                        NULL);
+    /*   input port name */
+    i = jack_port_name_size() - 3;
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_inportname",
+                                        (void*) &(p->inputPortName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK input port name prefix "
+                                            "(default: input)"), NULL);
+    /*   output port name */
+    i = jack_port_name_size() - 3;
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_outportname",
+                                        (void*) &(p->outputPortName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK output port name prefix"
+                                            " (default: output)"), NULL);
+    /* sleep time */
+    i = 250; j = 25000;         /* min/max value */
+    csound->CreateConfigurationVariable(csound, "jack_sleep_time",
+                                        (void*) &(p->sleepTime),
+                                        CSOUNDCFG_INTEGER, 0, &i, &j,
+                                        Str("Deprecated"), NULL);
+    /* done */
+    p->listclient = NULL;
+
+
+    RtJackMIDIGlobals *pm;
+    if (oparms.msglevel & 0x400)
+      csound->Message(csound, Str("JACK MIDI module for Csound\n"));
+    if (csound->CreateGlobalVariable(csound, "_rtjackMIDIGlobals",
+                                     sizeof(RtJackMIDIGlobals)) != 0) {
+      csound->ErrorMsg(csound, Str(" *** rtjack MIDI: error allocating globals"));
+      return -1;
+    }
+    pm = (RtJackMIDIGlobals*)
+      csound->QueryGlobalVariableNoCheck(csound, "_rtjackMIDIGlobals");
+
+    strcpy(&(pm->clientName[0]), "csound6-midi");
+    strcpy(&(pm->inputPortName[0]), "port");
+    strcpy(&(pm->outputPortName[0]), "port");
+    /*   client name */
+    i = jack_client_name_size();
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_midi_client",
+                                        (void*) &(pm->clientName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK MIDI client name prefix"
+                                            " (default: csound6-midi)"),
+                                        NULL);
+
+    /*   input port name */
+    i = jack_port_name_size() - 3;
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_midi_inportname",
+                                        (void*) &(pm->inputPortName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK MIDI input port name"
+                                            "(default: port)"), NULL);
+    /*   output port name */
+    i = jack_port_name_size() - 3;
+    if (i > (MAX_NAME_LEN + 1))
+      i = (MAX_NAME_LEN + 1);
+    csound->CreateConfigurationVariable(csound, "jack_midi_outportname",
+                                        (void*) &(pm->outputPortName[0]),
+                                        CSOUNDCFG_STRING, 0, NULL, &i,
+                                        Str("JACK MIDI output port name"
+                                            " (default: port)"), NULL);
+
+    return 0;
 }
 
 #define JACK_MIDI_BUFFSIZE 1024
@@ -1135,21 +1138,21 @@ typedef struct jackMidiDevice_ {
 
 int MidiInProcessCallback(jack_nframes_t nframes, void *userData){
 
-  jack_midi_event_t event;
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  CSOUND *csound = dev->csound;
-  int n = 0;
-  while(jack_midi_event_get(&event,
-                            jack_port_get_buffer(dev->port,nframes),
-                            n++) == 0) {
-    if(csound->WriteCircularBuffer(csound,dev->cb,
-                                   event.buffer,event.size)
-       != (int) event.size){
-      csound->Warning(csound, Str("Jack MIDI module: buffer overflow"));
-      return 1;
+    jack_midi_event_t event;
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    CSOUND *csound = dev->csound;
+    int n = 0;
+    while(jack_midi_event_get(&event,
+                              jack_port_get_buffer(dev->port,nframes),
+                              n++) == 0) {
+      if (UNLIKELY(csound->WriteCircularBuffer(csound,dev->cb,
+                                              event.buffer,event.size)
+                  != (int) event.size)){
+        csound->Warning(csound, Str("Jack MIDI module: buffer overflow"));
+        return 1;
+      }
     }
-  }
-  return 0;
+    return 0;
 }
 
 
@@ -1157,339 +1160,343 @@ static int midi_in_open(CSOUND *csound,
                         void **userData,
                         const char *devName){
 
-  jack_client_t *jack_client;
-  jack_port_t  *jack_port;
-  jackMidiDevice *dev;
-  RtJackMIDIGlobals *pm;
-  char clientName[MAX_NAME_LEN+3];
-
-  pm = (RtJackMIDIGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                               "_rtjackMIDIGlobals");
-
-  sprintf(clientName, "%s_in", pm->clientName);
-  if((jack_client =
-      jack_client_open(clientName, 0, NULL)) == NULL){
-    *userData = NULL;
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to create client for input"));
-    return NOTOK;
-  }
+    jack_client_t *jack_client;
+    jack_port_t  *jack_port;
+    jackMidiDevice *dev;
+    RtJackMIDIGlobals *pm;
+    char clientName[MAX_NAME_LEN+3];
+
+    pm =
+      (RtJackMIDIGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                              "_rtjackMIDIGlobals");
+
+    sprintf(clientName, "%s_in", pm->clientName);
+    if (UNLIKELY((jack_client =
+                 jack_client_open(clientName, 0, NULL)) == NULL)){
+      *userData = NULL;
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to create client for input"));
+      return NOTOK;
+    }
 
 
-  if((jack_port = jack_port_register(jack_client,pm->inputPortName,
-                                     JACK_DEFAULT_MIDI_TYPE,
-                                     JackPortIsInput | JackPortIsTerminal,
-                                     0)) == NULL){
-    jack_client_close(jack_client);
-    *userData = NULL;
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to register input port"));
-    return NOTOK;
-  }
+    if (UNLIKELY((jack_port = jack_port_register(jack_client,pm->inputPortName,
+                                                JACK_DEFAULT_MIDI_TYPE,
+                                                JackPortIsInput|JackPortIsTerminal,
+                                                0)) == NULL)){
+      jack_client_close(jack_client);
+      *userData = NULL;
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to register input port"));
+      return NOTOK;
+    }
 
-  dev = (jackMidiDevice *) csound->Calloc(csound,sizeof(jackMidiDevice));
-  dev->client = jack_client;
-  dev->port = jack_port;
-  dev->csound = csound;
-  dev->cb = csound->CreateCircularBuffer(csound,
-                                         JACK_MIDI_BUFFSIZE,
-                                         sizeof(char));
-
-  if(jack_set_process_callback(jack_client,
-                               MidiInProcessCallback,
-                               (void*) dev) != 0){
-    jack_client_close(jack_client);
-    csound->DestroyCircularBuffer(csound, dev->cb);
-    csound->Free(csound, dev);
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to set input"
-                         " process callback"));
-    return NOTOK;
-  }
+    dev = (jackMidiDevice *) csound->Calloc(csound,sizeof(jackMidiDevice));
+    dev->client = jack_client;
+    dev->port = jack_port;
+    dev->csound = csound;
+    dev->cb = csound->CreateCircularBuffer(csound,
+                                           JACK_MIDI_BUFFSIZE,
+                                           sizeof(char));
+
+    if (UNLIKELY(jack_set_process_callback(jack_client,
+                                          MidiInProcessCallback,
+                                          (void*) dev) != 0)){
+      jack_client_close(jack_client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to set input"
+                           " process callback"));
+      return NOTOK;
+    }
 
-  if(jack_activate(jack_client) != 0){
-    jack_client_close(jack_client);
-    csound->DestroyCircularBuffer(csound, dev->cb);
-    csound->Free(csound, dev);
-    *userData = NULL;
-    csound->ErrorMsg(csound, Str("Jack MIDI module: failed to activate input"));
-    return NOTOK;
-  }
+    if (UNLIKELY(jack_activate(jack_client) != 0)){
+      jack_client_close(jack_client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+      *userData = NULL;
+      csound->ErrorMsg(csound, Str("Jack MIDI module: failed to activate input"));
+      return NOTOK;
+    }
 
-  if(strcmp(devName,"0")){
-    if(jack_connect(jack_client,devName,jack_port_name(dev->port)) != 0){
-      csound->Warning(csound, Str("Jack MIDI module: failed to connect to: %s"),
-                      devName);
+    if (strcmp(devName,"0")){
+      if (UNLIKELY(jack_connect(jack_client,devName,
+                                jack_port_name(dev->port)) != 0)){
+        csound->Warning(csound, Str("Jack MIDI module: failed to connect to: %s"),
+                        devName);
+      }
     }
-  }
 
-  *userData = (void *) dev;
-  return OK;
+    *userData = (void *) dev;
+    return OK;
 }
 
 static int midi_in_read(CSOUND *csound,
                         void *userData, unsigned char *buf, int nbytes)
 {
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  return csound->ReadCircularBuffer(csound,dev->cb,buf,nbytes);
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    return csound->ReadCircularBuffer(csound,dev->cb,buf,nbytes);
 }
 
 static int midi_in_close(CSOUND *csound, void *userData){
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  if(dev != NULL) {
-    jack_port_disconnect(dev->client, dev->port);
-    jack_client_close(dev->client);
-    csound->DestroyCircularBuffer(csound, dev->cb);
-    csound->Free(csound, dev);
-  }
-  return OK;
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    if(dev != NULL) {
+      jack_port_disconnect(dev->client, dev->port);
+      jack_client_close(dev->client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+    }
+    return OK;
 }
 
 int MidiOutProcessCallback(jack_nframes_t nframes, void *userData){
 
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  CSOUND *csound = dev->csound;
-  jack_midi_data_t buf[JACK_MIDI_BUFFSIZE];
-  int n;
-  jack_midi_clear_buffer(jack_port_get_buffer(dev->port,nframes));
-  while((n = csound->ReadCircularBuffer(csound,dev->cb,
-                                        buf,
-                                        JACK_MIDI_BUFFSIZE)) != 0) {
-    if(jack_midi_event_write(jack_port_get_buffer(dev->port,nframes),
-                             0, buf,n) != 0){
-      csound->Warning(csound, Str("Jack MIDI module: out buffer overflow"));
-      return 1;
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    CSOUND *csound = dev->csound;
+    jack_midi_data_t buf[JACK_MIDI_BUFFSIZE];
+    int n;
+    jack_midi_clear_buffer(jack_port_get_buffer(dev->port,nframes));
+    while((n = csound->ReadCircularBuffer(csound,dev->cb,
+                                          buf,
+                                          JACK_MIDI_BUFFSIZE)) != 0) {
+      if(UNLIKELY(jack_midi_event_write(jack_port_get_buffer(dev->port,nframes),
+                                        0, buf,n) != 0)){
+        csound->Warning(csound, Str("Jack MIDI module: out buffer overflow"));
+        return 1;
+      }
     }
-  }
-  return 0;
+    return 0;
 }
 
 
 static int midi_out_open(CSOUND *csound, void **userData,
                          const char *devName)
 {
-  jack_client_t *jack_client;
-  jack_port_t  *jack_port;
-  jackMidiDevice *dev;
-  RtJackMIDIGlobals *pm;
-  char clientName[MAX_NAME_LEN+4];
-
-  pm = (RtJackMIDIGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                               "_rtjackMIDIGlobals");
-  sprintf(clientName, "%s_out", pm->clientName);
-  if((jack_client =
-      jack_client_open(clientName, 0, NULL)) == NULL){
-    *userData = NULL;
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to create client for output"));
-    return NOTOK;
-  }
+    jack_client_t *jack_client;
+    jack_port_t  *jack_port;
+    jackMidiDevice *dev;
+    RtJackMIDIGlobals *pm;
+    char clientName[MAX_NAME_LEN+4];
+
+    pm =
+      (RtJackMIDIGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                              "_rtjackMIDIGlobals");
+    sprintf(clientName, "%s_out", pm->clientName);
+    if(UNLIKELY((jack_client =
+                 jack_client_open(clientName, 0, NULL)) == NULL)){
+      *userData = NULL;
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to create client for output"));
+      return NOTOK;
+    }
 
 
-  if((jack_port = jack_port_register(jack_client,pm->outputPortName,
-                                     JACK_DEFAULT_MIDI_TYPE,
-                                     JackPortIsOutput,
-                                     0)) == NULL){
-    jack_client_close(jack_client);
-    *userData = NULL;
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to register output port"));
-    return NOTOK;
-  }
+    if(UNLIKELY((jack_port = jack_port_register(jack_client,pm->outputPortName,
+                                                JACK_DEFAULT_MIDI_TYPE,
+                                                JackPortIsOutput,
+                                                0)) == NULL)){
+      jack_client_close(jack_client);
+      *userData = NULL;
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to register output port"));
+      return NOTOK;
+    }
 
-  dev = (jackMidiDevice *) csound->Calloc(csound,sizeof(jackMidiDevice));
-  dev->client = jack_client;
-  dev->port = jack_port;
-  dev->csound = csound;
-  dev->cb = csound->CreateCircularBuffer(csound,
-                                         JACK_MIDI_BUFFSIZE,
-                                         sizeof(char));
-
-  if(jack_set_process_callback(jack_client,
-                               MidiOutProcessCallback,
-                               (void*) dev) != 0){
-    jack_client_close(jack_client);
-    csound->DestroyCircularBuffer(csound, dev->cb);
-    csound->Free(csound, dev);
-    csound->ErrorMsg(csound,
-                     Str("Jack MIDI module: failed to set input"
-                         " process callback"));
-    return NOTOK;
-  }
+    dev = (jackMidiDevice *) csound->Calloc(csound,sizeof(jackMidiDevice));
+    dev->client = jack_client;
+    dev->port = jack_port;
+    dev->csound = csound;
+    dev->cb = csound->CreateCircularBuffer(csound,
+                                           JACK_MIDI_BUFFSIZE,
+                                           sizeof(char));
+
+    if(UNLIKELY(jack_set_process_callback(jack_client,
+                                          MidiOutProcessCallback,
+                                          (void*) dev) != 0)){
+      jack_client_close(jack_client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+      csound->ErrorMsg(csound,
+                       Str("Jack MIDI module: failed to set input"
+                           " process callback"));
+      return NOTOK;
+    }
 
-  if(jack_activate(jack_client) != 0){
-    jack_client_close(jack_client);
-    csound->DestroyCircularBuffer(csound, dev->cb);
-    csound->Free(csound, dev);
-    *userData = NULL;
-    csound->ErrorMsg(csound, Str("Jack MIDI module: failed to activate output"));
-    return NOTOK;
-  }
+    if(UNLIKELY(jack_activate(jack_client) != 0)){
+      jack_client_close(jack_client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+      *userData = NULL;
+      csound->ErrorMsg(csound, Str("Jack MIDI module: failed to activate output"));
+      return NOTOK;
+    }
 
-  if(strcmp(devName,"0")){
-    if(jack_connect(jack_client,jack_port_name(dev->port),devName) != 0){
-      csound->Warning(csound,
-                      Str("Jack MIDI out module: failed to connect to: %s"),
-                      devName);
+    if(strcmp(devName,"0")){
+      if(UNLIKELY(jack_connect(jack_client,
+                               jack_port_name(dev->port),devName) != 0)){
+        csound->Warning(csound,
+                        Str("Jack MIDI out module: failed to connect to: %s"),
+                        devName);
+      }
     }
-  }
 
-  *userData = (void *) dev;
-  return OK;
+    *userData = (void *) dev;
+    return OK;
 }
 
 static int midi_out_write(CSOUND *csound,
                           void *userData, const unsigned char *buf, int nbytes)
 {
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  return csound->WriteCircularBuffer(csound,dev->cb,buf,nbytes);
-  return OK;
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    return csound->WriteCircularBuffer(csound,dev->cb,buf,nbytes);
+    return OK;
 }
 
 static int midi_out_close(CSOUND *csound, void *userData){
-  jackMidiDevice *dev = (jackMidiDevice *) userData;
-  if(dev != NULL) {
-  jack_port_disconnect(dev->client, dev->port);
-  jack_client_close(dev->client);
-  csound->DestroyCircularBuffer(csound, dev->cb);
-  csound->Free(csound, dev);
-  }
-  return OK;
+    jackMidiDevice *dev = (jackMidiDevice *) userData;
+    if(dev != NULL) {
+      jack_port_disconnect(dev->client, dev->port);
+      jack_client_close(dev->client);
+      csound->DestroyCircularBuffer(csound, dev->cb);
+      csound->Free(csound, dev);
+    }
+    return OK;
 }
 
 static int listDevicesM(CSOUND *csound, CS_MIDIDEVICE *list,
                         int isOutput){
-  char            **portNames = (char**) NULL, port[64];
-  unsigned long   portFlags;
-  int             i, n, cnt=0;
-  jack_client_t *jackClient;
-  RtJackGlobals* p =
-    (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                        "_rtjackGlobals");
-  char *drv = (char*) (csound->QueryGlobalVariable(csound, "_RTMIDI"));
+    char            **portNames = (char**) NULL, port[64];
+    unsigned long   portFlags;
+    int             i, n, cnt=0;
+    jack_client_t *jackClient;
+    RtJackGlobals* p =
+      (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                          "_rtjackGlobals");
+    char *drv = (char*) (csound->QueryGlobalVariable(csound, "_RTMIDI"));
 
-  if(p->listclient == NULL)
-    p->listclient = jack_client_open("list", JackNoStartServer, NULL);
+    if(p->listclient == NULL)
+      p->listclient = jack_client_open("list", JackNoStartServer, NULL);
 
-  jackClient  = p->listclient;
+    jackClient  = p->listclient;
 
-  if(jackClient == NULL) return 0;
-  portFlags = (isOutput ? (unsigned long) JackPortIsInput
-               : (unsigned long) JackPortIsOutput);
+    if(jackClient == NULL) return 0;
+    portFlags = (isOutput ? (unsigned long) JackPortIsInput
+                 : (unsigned long) JackPortIsOutput);
 
-  portNames = (char**) jack_get_ports(jackClient,
-                                      (char*) NULL,
-                                      JACK_DEFAULT_MIDI_TYPE,
-                                      portFlags);
-  if(portNames == NULL) {
+    portNames = (char**) jack_get_ports(jackClient,
+                                        (char*) NULL,
+                                        JACK_DEFAULT_MIDI_TYPE,
+                                        portFlags);
+    if(portNames == NULL) {
+      jack_client_close(jackClient);
+      p->listclient = NULL;
+      return 0;
+    }
+
+    memset(port, '\0', 64);
+    for(i=0; portNames[i] != NULL; i++, cnt++) {
+      n = (int) strlen(portNames[i]);
+      strncpy(port, portNames[i], n);
+      port[n] = '\0';
+      if (list != NULL) {
+        strncpy(list[cnt].device_name, port, 63);
+        snprintf(list[cnt].device_id, 63, "%d", cnt);
+        list[cnt].isOutput = isOutput;
+        strcpy(list[i].interface_name, "");
+        strncpy(list[i].midi_module, drv, 63);
+      }
+    }
+    jack_free(portNames);
     jack_client_close(jackClient);
     p->listclient = NULL;
+    return cnt;
     return 0;
-  }
-
-  memset(port, '\0', 64);
-  for(i=0; portNames[i] != NULL; i++, cnt++) {
-    n = (int) strlen(portNames[i]);
-    strncpy(port, portNames[i], n);
-    port[n] = '\0';
-    if (list != NULL) {
-      strncpy(list[cnt].device_name, port, 63);
-      snprintf(list[cnt].device_id, 63, "%d", cnt);
-      list[cnt].isOutput = isOutput;
-      strcpy(list[i].interface_name, "");
-      strncpy(list[i].midi_module, drv, 63);
-    }
-  }
-  jack_free(portNames);
-  jack_client_close(jackClient);
-  p->listclient = NULL;
-  return cnt;
-  return 0;
 }
 
 /*
-static int listDevices(CSOUND *csound, CS_MIDIDEVICE *list, int isOutput){
+  static int listDevices(CSOUND *csound, CS_MIDIDEVICE *list, int isOutput){
   int i, cnt;
   PmDeviceInfo  *info;
   char tmp[64];
   char *drv = (char*) (csound->QueryGlobalVariable(csound, "_RTMIDI"));
 
   if (UNLIKELY(start_portmidi(csound) != 0))
-      return 0;
+  return 0;
 
   cnt = portMidi_getDeviceCount(isOutput);
   if (list == NULL) return cnt;
   for (i = 0; i < cnt; i++) {
-      info = portMidi_getDeviceInfo(i, isOutput);
-      if(info->name != NULL)
-      strncpy(list[i].device_name, info->name, 63);
-      snprintf(tmp, 64, "%d", i);
-      strncpy(list[i].device_id, tmp, 63);
-      list[i].isOutput = isOutput;
-      if (info->interf != NULL)
-         strncpy(list[i].interface_name, info->interf, 63);
-      else strcpy(list[i].interface_name, "");
-     strncpy(list[i].midi_module, drv, 63);
+  info = portMidi_getDeviceInfo(i, isOutput);
+  if(info->name != NULL)
+  strncpy(list[i].device_name, info->name, 63);
+  snprintf(tmp, 64, "%d", i);
+  strncpy(list[i].device_id, tmp, 63);
+  list[i].isOutput = isOutput;
+  if (info->interf != NULL)
+  strncpy(list[i].interface_name, info->interf, 63);
+  else strcpy(list[i].interface_name, "");
+  strncpy(list[i].midi_module, drv, 63);
   }
   return cnt;
-}
+  }
 */
 
 
 PUBLIC int csoundModuleDestroy(CSOUND *csound)
 {
-  RtJackGlobals* p =
-    (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
-                                                        "_rtjackGlobals");
-  if(p && p->listclient) {
-    jack_client_close(p->listclient);
-    p->listclient = NULL;
-  }
-  return OK;
+    RtJackGlobals* p =
+      (RtJackGlobals*) csound->QueryGlobalVariableNoCheck(csound,
+                                                          "_rtjackGlobals");
+    if(p && p->listclient) {
+      jack_client_close(p->listclient);
+      p->listclient = NULL;
+    }
+    return OK;
 }
 
 
 
 PUBLIC int csoundModuleInit(CSOUND *csound)
 {
-  char    *drv;
-  csound->module_list_add(csound,"jack", "audio");
-  drv = (char*) csound->QueryGlobalVariable(csound, "_RTAUDIO");
-  if (drv == NULL)
-    return 0;
-  if (!(strcmp(drv, "jack") == 0 || strcmp(drv, "Jack") == 0 ||
-        strcmp(drv, "JACK") == 0))
-    return 0;
-  csound->Message(csound, Str("rtaudio: JACK module enabled\n"));
-  {
-    /* register Csound interface functions */
-    csound->SetPlayopenCallback(csound, playopen_);
-    csound->SetRecopenCallback(csound, recopen_);
-    csound->SetRtplayCallback(csound, rtplay_);
-    csound->SetRtrecordCallback(csound, rtrecord_);
-    csound->SetRtcloseCallback(csound, rtclose_);
-    csound->SetAudioDeviceListCallback(csound, listDevices);
-  }
+    char    *drv;
+    csound->module_list_add(csound,"jack", "audio");
+    drv = (char*) csound->QueryGlobalVariable(csound, "_RTAUDIO");
+    if (drv == NULL)
+      return 0;
+    if (!(strcmp(drv, "jack") == 0 || strcmp(drv, "Jack") == 0 ||
+          strcmp(drv, "JACK") == 0))
+      return 0;
+    csound->Message(csound, Str("rtaudio: JACK module enabled\n"));
+    {
+      /* register Csound interface functions */
+      csound->SetPlayopenCallback(csound, playopen_);
+      csound->SetRecopenCallback(csound, recopen_);
+      csound->SetRtplayCallback(csound, rtplay_);
+      csound->SetRtrecordCallback(csound, rtrecord_);
+      csound->SetRtcloseCallback(csound, rtclose_);
+      csound->SetAudioDeviceListCallback(csound, listDevices);
+    }
 
-  drv = (char*) csound->QueryGlobalVariable(csound, "_RTMIDI");
-  if (drv == NULL)
-    return 0;
-  if (!(strcmp(drv, "jack") == 0 || strcmp(drv, "Jack") == 0 ||
-        strcmp(drv, "JACK") == 0))
-    return 0;
+    drv = (char*) csound->QueryGlobalVariable(csound, "_RTMIDI");
+    if (drv == NULL)
+      return 0;
+    if (!(strcmp(drv, "jack") == 0 || strcmp(drv, "Jack") == 0 ||
+          strcmp(drv, "JACK") == 0))
+      return 0;
 
-  csound->Message(csound, Str("rtmidi: JACK module enabled\n"));
-  {
-    csound->SetExternalMidiInOpenCallback(csound, midi_in_open);
-    csound->SetExternalMidiReadCallback(csound, midi_in_read);
-    csound->SetExternalMidiInCloseCallback(csound, midi_in_close);
-    csound->SetExternalMidiOutOpenCallback(csound, midi_out_open);
-    csound->SetExternalMidiWriteCallback(csound, midi_out_write);
-    csound->SetExternalMidiOutCloseCallback(csound, midi_out_close);
-    csound->SetMIDIDeviceListCallback(csound,listDevicesM);
-  }
+    csound->Message(csound, Str("rtmidi: JACK module enabled\n"));
+    {
+      csound->SetExternalMidiInOpenCallback(csound, midi_in_open);
+      csound->SetExternalMidiReadCallback(csound, midi_in_read);
+      csound->SetExternalMidiInCloseCallback(csound, midi_in_close);
+      csound->SetExternalMidiOutOpenCallback(csound, midi_out_open);
+      csound->SetExternalMidiWriteCallback(csound, midi_out_write);
+      csound->SetExternalMidiOutCloseCallback(csound, midi_out_close);
+      csound->SetMIDIDeviceListCallback(csound,listDevicesM);
+    }
 
-  return 0;
+    return 0;
 }
 
 PUBLIC int csoundModuleInfo(void)
diff --git a/InOut/rtpa.c b/InOut/rtpa.c
index a3f2aad..f23853b 100644
--- a/InOut/rtpa.c
+++ b/InOut/rtpa.c
@@ -88,7 +88,7 @@ static int initPortAudio(CSOUND *csound)
                                        "::PortAudio::NeedsTerminate", 1) != 0)
         return -1;
       err = (int) Pa_Initialize();
-      if (err != (int) paNoError) {
+      if (UNLIKELY(err != (int) paNoError)) {
         return pa_PrintErrMsg(csound, "%d: %s",
                                       err, Pa_GetErrorText((PaError) err));
       }
@@ -101,7 +101,8 @@ static int initPortAudio(CSOUND *csound)
 
 /* list available input or output devices; returns the number of devices */
 int listDevices(CSOUND *csound, CS_AUDIODEVICE *list, int isOutput){
-     PaDeviceInfo  *dev_info;
+    PaDeviceInfo  *dev_info;
+    PaHostApiInfo *api_info;
     int           i, j, ndev;
     char          tmp[256], *s;
 
@@ -120,25 +121,28 @@ int listDevices(CSOUND *csound, CS_AUDIODEVICE *list, int isOutput){
     }
     if (!j) return 0;
     if(list!=NULL) {
-    for (i = j = 0; i < ndev; i++) {
-      dev_info = (PaDeviceInfo*) Pa_GetDeviceInfo((PaDeviceIndex) i);
-      if ((isOutput && dev_info->maxOutputChannels > 0) ||
-          (!isOutput && dev_info->maxInputChannels > 0)) {
-        strncpy(list[j].device_name, dev_info->name, 63);
-        if (isOutput) {
-          snprintf(tmp, 256, "dac%d", j);
-        } else {
-          snprintf(tmp, 256, "adc%d", j);
+      for (i = j = 0; i < ndev; i++) {
+        dev_info = (PaDeviceInfo*) Pa_GetDeviceInfo((PaDeviceIndex) i);
+        api_info = (PaHostApiInfo*) Pa_GetHostApiInfo(dev_info->hostApi);
+        if ((isOutput && dev_info->maxOutputChannels > 0) ||
+            (!isOutput && dev_info->maxInputChannels > 0)) {
+          //strncpy(list[j].device_name, dev_info->name, 63);
+          snprintf(list[j].device_name, 63, "%s [%s]",
+                   dev_info->name, api_info->name);
+          if (isOutput) {
+            snprintf(tmp, 256, "dac%d", j);
+          } else {
+            snprintf(tmp, 256, "adc%d", j);
+          }
+          strncpy(list[j].device_id, tmp, 63);
+          strncpy(list[j].rt_module, s, 63);
+          list[j].max_nchnls =
+            isOutput ?  dev_info->maxOutputChannels : dev_info->maxInputChannels;
+          list[j].isOutput = isOutput;
+          j++;
         }
-        strncpy(list[j].device_id, tmp, 63);
-        strncpy(list[j].rt_module, s, 63);
-        list[j].max_nchnls =
-          isOutput ?  dev_info->maxOutputChannels : dev_info->maxInputChannels;
-        list[j].isOutput = isOutput;
-        j++;
       }
     }
-    }
     return j;
 }
 
@@ -235,7 +239,7 @@ static int pa_SetStreamParameters(CSOUND *csound, PaStreamParameters *sp,
     int dev;
 
     memset(sp, 0, sizeof(PaStreamParameters));
-    if (parm->devName != NULL && parm->devName[0] != '\0') {
+    if (UNLIKELY(parm->devName != NULL && parm->devName[0] != '\0')) {
       return pa_PrintErrMsg(csound,
                             Str("Must specify a device number, not a name"));
     }
@@ -268,15 +272,15 @@ static int paBlockingReadWriteOpen(CSOUND *csound)
                                                              "_rtpaGlobals");
     if (pabs == NULL)
       return -1;
-   if (initPortAudio(csound) != 0)
+    if (UNLIKELY(initPortAudio(csound) != 0))
       goto err_return;
 
-    if ((int) Pa_GetDeviceCount() <= 0) {
+    if (UNLIKELY((int) Pa_GetDeviceCount() <= 0)) {
       pa_PrintErrMsg(csound, Str("No sound device is available"));
       goto err_return;
     }
 
-    if (pabs->mode & 1) {
+    if (UNLIKELY(pabs->mode & 1)) {
       if (pa_SetStreamParameters(csound, &(pabs->inputPaParameters),
                                          &(pabs->inParm), 0) != 0)
         goto err_return;
@@ -285,31 +289,31 @@ static int paBlockingReadWriteOpen(CSOUND *csound)
       pabs->inputBuffer = (float*) csound->Calloc(csound,
                                                   (size_t) pabs->inBufSamples*
                                                   sizeof(float));
-      if (pabs->inputBuffer == NULL) {
+      if (UNLIKELY(pabs->inputBuffer == NULL)) {
         pa_PrintErrMsg(csound, Str("Memory allocation failure"));
         goto err_return;
       }
     }
     if (pabs->mode & 2) {
-      if (pa_SetStreamParameters(csound, &(pabs->outputPaParameters),
-                                         &(pabs->outParm), 1) != 0)
+      if (UNLIKELY(pa_SetStreamParameters(csound, &(pabs->outputPaParameters),
+                                          &(pabs->outParm), 1) != 0))
         goto err_return;
       pabs->outBufSamples = pabs->outParm.bufSamp_SW
                             * (int) pabs->outputPaParameters.channelCount;
       pabs->outputBuffer = (float*) csound->Calloc(csound,
                                                    (size_t) pabs->outBufSamples*
                                                    sizeof(float));
-      if (pabs->outputBuffer == NULL) {
+      if (UNLIKELY(pabs->outputBuffer == NULL)) {
         pa_PrintErrMsg(csound, Str("Memory allocation failure"));
         goto err_return;
       }
     }
     if ((pabs->mode & 3) == 3) {
-      if (pabs->inParm.bufSamp_SW != pabs->outParm.bufSamp_SW) {
+      if (UNLIKELY(pabs->inParm.bufSamp_SW != pabs->outParm.bufSamp_SW)) {
         pa_PrintErrMsg(csound, Str("Inconsistent full-duplex buffer sizes"));
         goto err_return;
       }
-      if (pabs->inParm.sampleRate != pabs->outParm.sampleRate) {
+      if (UNLIKELY(pabs->inParm.sampleRate != pabs->outParm.sampleRate)) {
         pa_PrintErrMsg(csound, Str("Inconsistent full-duplex sample rates"));
         goto err_return;
       }
@@ -325,10 +329,10 @@ static int paBlockingReadWriteOpen(CSOUND *csound)
     }
 
     pabs->paLock = csound->CreateThreadLock();
-    if (pabs->paLock == NULL)
+    if (UNLIKELY(pabs->paLock == NULL))
       goto err_return;
     pabs->clientLock = csound->CreateThreadLock();
-    if (pabs->clientLock == NULL)
+    if (UNLIKELY(pabs->clientLock == NULL))
       goto err_return;
 #if NO_FULLDUPLEX_PA_LOCK
     if (!pabs->noPaLock)
@@ -361,13 +365,13 @@ static int paBlockingReadWriteOpen(CSOUND *csound)
                          (PaStreamFlags) paNoFlag : (PaStreamFlags) paDitherOff),
                         paBlockingReadWriteStreamCallback,
                         (void*) pabs);
-    if (err != paNoError) {
+    if (UNLIKELY(err != paNoError)) {
       pa_PrintErrMsg(csound, "%d: %s", (int) err, Pa_GetErrorText(err));
       goto err_return;
     }
 
     err = Pa_StartStream(stream);
-    if (err != paNoError) {
+    if (UNLIKELY(err != paNoError)) {
       Pa_CloseStream(stream);
       pa_PrintErrMsg(csound, "%d: %s", (int) err, Pa_GetErrorText(err));
       goto err_return;
@@ -413,13 +417,13 @@ static int paBlockingReadWriteStreamCallback(const void *input,
     }
 
 #ifdef WIN32
-if (pabs->paStream == NULL
-      || pabs->paused
-) {
-if (pabs->mode & 2)
+    if (pabs->paStream == NULL
+        || pabs->paused
+        ) {
+      if (pabs->mode & 2)
         paClearOutputBuffer(pabs, paOutput);
-return paContinue;
-}
+      return paContinue;
+    }
 #endif
 
 #if NO_FULLDUPLEX_PA_LOCK
@@ -479,7 +483,7 @@ static int rtrecord_(CSOUND *csound, MYFLT *buffer, int nbytes)
       return nbytes;
     }
     if (pabs->paStream == NULL) {
-      if (paBlockingReadWriteOpen(csound) != 0)
+      if (UNLIKELY(paBlockingReadWriteOpen(csound) != 0))
         csound->Die(csound, Str("Failed to initialise real time audio input"));
     }
 
@@ -649,7 +653,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev,
     memset(dev, 0, sizeof(DEVPARAMS));
     memset(&streamParams, 0, sizeof(PaStreamParameters));
     streamParams.hostApiSpecificStreamInfo = NULL;
-    if (parm->devName != NULL && parm->devName[0] != '\0') {
+    if (UNLIKELY(parm->devName != NULL && parm->devName[0] != '\0')) {
 #if !defined(LINUX)
       listPortAudioDevices_blocking(p, 1, play);
       pa_PrintErrMsg(p, Str("Must specify a device number, not a name"));
@@ -691,7 +695,7 @@ static int set_device_params(CSOUND *csound, DEVPARAMS *dev,
                                 (unsigned long) parm->bufSamp_SW,
                                 paNoFlag, NULL, NULL);
     }
-    if (err != (int) paNoError) {
+    if (UNLIKELY(err != (int) paNoError)) {
       pa_PrintErrMsg(p, "%d: %s", err, Pa_GetErrorText((PaError) err));
       return -1;
     }
@@ -767,7 +771,7 @@ static int rtrecord_blocking(CSOUND *csound, MYFLT *inbuf, int nbytes)
     /* calculate the number of samples to record */
     n = nbytes / (dev->nchns * (int) sizeof(MYFLT));
     err = (int) Pa_ReadStream(dev->handle, dev->buf, (unsigned long) n);
-    if (err != (int) paNoError && (csound->GetMessageLevel(csound) & 4))
+    if (UNLIKELY(err != (int) paNoError && (csound->GetMessageLevel(csound) & 4)))
       csound->Warning(csound, Str("Buffer overrun in real-time audio input"));
     /* convert samples to MYFLT */
     for (i = 0; i < (n * dev->nchns); i++)
@@ -790,7 +794,7 @@ static void rtplay_blocking(CSOUND *csound, const MYFLT *outbuf, int nbytes)
     for (i = 0; i < (n * dev->nchns); i++)
       dev->buf[i] = (float) outbuf[i];
     err = (int) Pa_WriteStream(dev->handle, dev->buf, (unsigned long) n);
-    if (err != (int) paNoError && (csound->GetMessageLevel(csound) & 4))
+    if (UNLIKELY(err != (int) paNoError && (csound->GetMessageLevel(csound) & 4)))
       csound->Warning(csound, Str("Buffer underrun in real-time audio output"));
 }
 
diff --git a/InOut/rtpulse.c b/InOut/rtpulse.c
index dbbeed4..4409b1f 100644
--- a/InOut/rtpulse.c
+++ b/InOut/rtpulse.c
@@ -49,8 +49,8 @@ PUBLIC int csoundModuleCreate(CSOUND *csound)
       csound->Message(csound, Str("PulseAudio client RT IO module for Csound"
                                   "by Victor Lazzarini\n"));
 
-    if (csound->CreateGlobalVariable(csound, "_pulse_globals",
-                                     sizeof(pulse_globals)) != 0) {
+    if (UNLIKELY(csound->CreateGlobalVariable(csound, "_pulse_globals",
+                                              sizeof(pulse_globals)) != 0)) {
       csound->ErrorMsg(csound, Str(" *** rtpulse: error allocating globals"));
       return -1;
     }
@@ -137,7 +137,7 @@ static int pulse_playopen(CSOUND *csound, const csRtAudioParams *parm)
                                &pulserror
                                ) ;
 
-    if (pulse->ps){
+    if (LIKELY(pulse->ps)){
       csound->Message(csound, Str("pulseaudio output open\n"));
       return 0;
     }
@@ -233,7 +233,7 @@ static int pulse_recopen(CSOUND *csound, const csRtAudioParams *parm)
                                /*&attr*/ NULL,
                                &pulserror );
 
-    if (pulse->ps) return 0;
+    if (LIKELY(pulse->ps)) return 0;
     else {
       csound->ErrorMsg(csound,Str("Pulse audio module error: %s\n"),
                        pa_strerror(pulserror));
diff --git a/InOut/virtual_keyboard/virtual_keyboard.cpp b/InOut/virtual_keyboard/virtual_keyboard.cpp
index c3124db..172c136 100644
--- a/InOut/virtual_keyboard/virtual_keyboard.cpp
+++ b/InOut/virtual_keyboard/virtual_keyboard.cpp
@@ -413,7 +413,7 @@ const OENTRY widgetOpcodes_[] = {
 PUBLIC int csoundModuleCreate(CSOUND *csound)
 {
     /* nothing to do, report success */
-    csound->Message(csound, "virtual_keyboard real time MIDI plugin for Csound\n");
+    //csound->Message(csound, "virtual_keyboard real time MIDI plugin for Csound\n");
     return 0;
 }
 
diff --git a/InOut/widgets.cpp b/InOut/widgets.cpp
index 91d80af..d87ce8b 100644
--- a/InOut/widgets.cpp
+++ b/InOut/widgets.cpp
@@ -22,7 +22,10 @@
 */
 
 #if defined(WIN32)
-#include <FL/Fl_Output.H>
+# include <FL/Fl_Output.H>
+#endif
+#ifndef _MSC_VER
+# include <unistd.h>
 #endif
 #if !defined(_MSC_VER)
 #include <unistd.h>
@@ -1345,7 +1348,7 @@ SNAPSHOT::SNAPSHOT (vector<ADDR_SET_VALUE>& valuators, int snapGroup)
 
 int SNAPSHOT::get(vector<ADDR_SET_VALUE>& valuators, int snapGroup)
 {
-    if (is_empty == 1) {
+    if (UNLIKELY(is_empty == 1)) {
       /*  FIXME: should have CSOUND* pointer here */
       /*  return csound->InitError(csound, Str("empty snapshot")); */
       return -1;
@@ -1939,7 +1942,6 @@ public:
   }
   virtual int handle(int evt)
   {
-      CSOUND* csound = csound_; //gab
       switch (evt) {
       case FL_FOCUS:
         Fl::focus(this);
@@ -3219,9 +3221,9 @@ extern "C" {
       return OK;
   }
 
-  static int fl_box_(CSOUND *csound, FL_BOX *p)
+  static int fl_box_(CSOUND *csound, FL_BOX *p, char *text)
   {
-      char *text = p->itext->data;
+      //char *text = p->itext->data;
       Fl_Box *o =  new Fl_Box((int)*p->ix, (int)*p->iy,
                               (int)*p->iwidth, (int)*p->iheight, text);
       widget_attributes(csound, o);
@@ -3287,6 +3289,19 @@ extern "C" {
       return OK;
   }
 
+  static int fl_box_s(CSOUND *csound, FL_BOX *p)
+  {
+    return fl_box_(csound, p, p->itext->data);
+  }
+  static int fl_box_i(CSOUND *csound, FL_BOX *p)
+  {
+    int i = (int)*((MYFLT*)p->itext);
+    char* text;
+    if (i<0 || i>csound->GetStrsmax(csound)) text = (char *) "???";
+    else if ((text=csound->GetStrsets(csound,i))==NULL) text = (char *) "???";
+    return fl_box_(csound, p, text);
+  }
+
   static int fl_setText(CSOUND *csound, FL_SET_TEXT *p)
   {
       WIDGET_GLOBALS *widgetGlobals =
@@ -3298,6 +3313,20 @@ extern "C" {
       return OK;
   }
 
+  static int fl_setTexti(CSOUND *csound, FL_SET_TEXTi *p)
+  {
+      WIDGET_GLOBALS *widgetGlobals =
+        (WIDGET_GLOBALS *)csound->QueryGlobalVariable(csound, "WIDGET_GLOBALS");
+      int i = (int)(*p->ndx);
+      char *text ;
+      ADDR_SET_VALUE v = widgetGlobals->AddrSetValue[(int) *p->ihandle];
+      Fl_Widget *o = (Fl_Widget *) v.WidgAddress;
+      if (i<0 || i>csound->GetStrsmax(csound)) text = (char *) "???";
+      else if ((text=csound->GetStrsets(csound,i))==NULL) text = (char *) "???";
+      o->label(text);
+      return OK;
+  }
+
   static int fl_setSize(CSOUND *csound, FL_SET_SIZE *p)
   {
       WIDGET_GLOBALS *widgetGlobals =
@@ -3541,8 +3570,8 @@ extern "C" {
             o->callback((Fl_Callback*)fl_callbackTableSlider,(void *) p);
         }
       }
-      widgetGlobals->AddrSetValue.push_back(ADDR_SET_VALUE(iexp, *p->imin, *p->imax,
-                                                (void *) o, (void*) p));
+      widgetGlobals->AddrSetValue.push_back(ADDR_SET_VALUE(iexp, *p->imin,
+                                                *p->imax, (void *) o, (void*) p));
       /*widgetGlobals->currentSnapGroup;*/
       *p->ihandle = widgetGlobals->AddrSetValue.size()-1;
       return OK;
@@ -5321,7 +5350,7 @@ extern "C" {
                                  Str("FLsldBnkSet: invalid table number"));
       }
       // *startInd, *startSlid, *numSlid
-      if (UNLIKELY( ftp->flen < startInd + numslid)) {
+      if (UNLIKELY( (int) ftp->flen < startInd + numslid)) {
         return csound->InitError(csound,
                                  Str("FLslidBnkSet: table too short!"));
       }
@@ -5390,7 +5419,7 @@ extern "C" {
                                  Str("FLsldBnkSet: invalid table number"));
       }
       // *startInd, *startSlid, *numSlid
-      if (UNLIKELY( ftp->flen < startInd + numslid)) {
+      if (UNLIKELY((int) ftp->flen < startInd + numslid)) {
         return csound->InitError(csound,
                                  Str("FLslidBnkSet: table too short!"));
       }
@@ -5470,7 +5499,7 @@ extern "C" {
                                   Str("FLsldBnkSetk: invalid table number"));
       }
       // *startInd, *startSlid, *numSlid
-      if (UNLIKELY( ftp->flen < p->startind + p->numslid)) {
+      if (UNLIKELY( (int) ftp->flen < p->startind + p->numslid)) {
         return csound->InitError(csound,
                                  Str("FLslidBnkSetk: table too short!"));
       }
@@ -5563,7 +5592,7 @@ extern "C" {
                                  Str("FLslidBnkSetk: invalid table number"));
       }
       // *startInd, *startSlid, *numSlid
-      if (UNLIKELY( ftp->flen < p->startind + p->numslid)) {
+      if (UNLIKELY( (int) ftp->flen < p->startind + p->numslid)) {
         return csound->InitError(csound,
                                  Str("FLslidBnkSetk: table too short!"));
       }
@@ -5590,8 +5619,6 @@ extern "C" {
 
   static int fl_slider_bank_setVal_k(CSOUND *csound, FLSLDBNK_SETK *p)
   {
-      WIDGET_GLOBALS *widgetGlobals =
-        (WIDGET_GLOBALS *) csound->QueryGlobalVariable(csound, "WIDGET_GLOBALS");
       if (*p->kflag) {
         FLSLIDERBANK *q = p->q;
         MYFLT *table=p->table;
@@ -5953,8 +5980,10 @@ const OENTRY widgetOpcodes_[] = {
     (SUBR) fl_setFont,              (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLsetTextType", S(FL_SET_FONT), 0, 1,  (char*)"",     (char*)"ii",
     (SUBR) fl_setTextType,          (SUBR) NULL,              (SUBR) NULL },
-  { (char*)"FLsetText",   S(FL_SET_TEXT),  0, 1,  (char*)"",     (char*)"Ti",
+  { (char*)"FLsetText",   S(FL_SET_TEXT),  0, 1,  (char*)"",     (char*)"Si",
     (SUBR) fl_setText,              (SUBR) NULL,              (SUBR) NULL },
+  { (char*)"FLsetText",   S(FL_SET_TEXTi),  0, 1,  (char*)"",     (char*)"ii",
+    (SUBR) fl_setTexti,              (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLsetSize",   S(FL_SET_SIZE),  0, 1,  (char*)"",     (char*)"iii",
     (SUBR) fl_setSize,              (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLsetPosition", S(FL_SET_POSITION), 0, 1,  (char*)"", (char*)"iii",
@@ -5968,7 +5997,9 @@ const OENTRY widgetOpcodes_[] = {
   { (char*)"FLsetAlign",  S(FL_TALIGN),    0, 1,  (char*)"",     (char*)"ii",
     (SUBR) fl_align,                (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLbox",       S(FL_BOX),       0, 1,  (char*)"i", (char*)"Siiiiiii",
-    (SUBR) fl_box_,                  (SUBR) NULL,              (SUBR) NULL },
+    (SUBR) fl_box_s,                  (SUBR) NULL,              (SUBR) NULL },
+  { (char*)"FLbox",       S(FL_BOX),       0, 1,  (char*)"i", (char*)"iiiiiiii",
+    (SUBR) fl_box_i,                  (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLvalue",     S(FLVALUE),      0, 1,  (char*)"i",    (char*)"Sjjjj",
     (SUBR) fl_value,                (SUBR) NULL,              (SUBR) NULL },
   { (char*)"FLpanel",     S(FLPANEL),      0, 1,  (char*)"",  (char*)"Sjjjoooo",
diff --git a/InOut/widgets.h b/InOut/widgets.h
index 31e4550..37be5ec 100644
--- a/InOut/widgets.h
+++ b/InOut/widgets.h
@@ -1,7 +1,7 @@
 /*
     widgets.h:
 
-    Copyright (C) 1002 Gabriel Maldonado
+    Copyright (C) 2002 Gabriel Maldonado
 
     This file is part of Csound.
 
@@ -166,12 +166,18 @@ typedef struct {
 
 typedef struct {
     OPDS    h;
-  STRINGDAT  *itext;
-  MYFLT *ihandle;
+    STRINGDAT  *itext;
+    MYFLT   *ihandle;
 } FL_SET_TEXT;
 
 typedef struct {
     OPDS    h;
+    MYFLT   *ndx;
+    MYFLT   *ihandle;
+} FL_SET_TEXTi;
+
+typedef struct {
+    OPDS    h;
     MYFLT   *itype, *ihandle;
 } FL_TALIGN;
 
@@ -467,7 +473,7 @@ class Fl_Spin : public Fl_Valuator {
 class Fl_Value_Input_Spin : public Fl_Valuator {
  private:
     CSOUND * csound;
-    int ix, iy, drag, indrag, sldrag;
+    int ix, iy, drag;
     int delta, deltadir;
     char soft_;
     uchar mouseobj;
diff --git a/InOut/widglobals.h b/InOut/widglobals.h
index c28fb0f..83f3866 100644
--- a/InOut/widglobals.h
+++ b/InOut/widglobals.h
@@ -165,7 +165,7 @@ struct ADDR_SET_VALUE { /*: ADDR*/
                    void *new_WidgAddress, void *new_opcode,  int grp = 0) :
         exponential(new_exponential),min(new_min), max(new_max),
         WidgAddress(new_WidgAddress),opcode(new_opcode),
-        widg_type(FL_WIDG), group(grp), joy(FL_JOY) {}
+        widg_type(FL_WIDG), joy(FL_JOY), group(grp) {}
     ADDR_SET_VALUE()
     {
         exponential=LIN_;
diff --git a/InOut/winEPS.c b/InOut/winEPS.c
index 89df983..72a4705 100644
--- a/InOut/winEPS.c
+++ b/InOut/winEPS.c
@@ -131,7 +131,7 @@ void PS_MakeGraph(CSOUND *csound, WINDAT *wdptr, const char *name)
     strlcat(pathnam, ".eps", 1024);
     pp->psfd = csound->FileOpen2(csound, &(pp->psFile), CSFILE_STD, pathnam,
                                    "w", "SFDIR", CSFTYPE_POSTSCRIPT, 0);
-    if (pp->psfd == NULL) {
+    if (UNLIKELY(pp->psfd == NULL)) {
       csound->Message(csound, Str("** Warning **  PostScript file %s "
                                   "cannot be opened\n"), pathnam);
       csound->winEPS_globals = NULL;
diff --git a/InOut/winFLTK.c b/InOut/winFLTK.c
index a4b44e0..f0cb295 100644
--- a/InOut/winFLTK.c
+++ b/InOut/winFLTK.c
@@ -74,8 +74,8 @@ PUBLIC int csoundModuleInit(CSOUND *csound)
 
     if (csound->QueryGlobalVariable(csound,
                                     "FLTK_Flags") == (void*) 0) {
-      if (csound->CreateGlobalVariable(csound,
-                                       "FLTK_Flags", sizeof(int)) != 0)
+      if (UNLIKELY(csound->CreateGlobalVariable(csound,
+                                                "FLTK_Flags", sizeof(int)) != 0))
         csound->Die(csound, "%s",
                     Str("widgets.cpp: error allocating FLTK flags"));
       initFlags = 1;
diff --git a/InOut/windin.c b/InOut/windin.c
index 788dbee..936eefd 100644
--- a/InOut/windin.c
+++ b/InOut/windin.c
@@ -29,6 +29,7 @@
 int xyinset(CSOUND *csound, XYIN *p)
 {
     // This is not the way to do it; set _QQ in interlocks
+    IGN(p);
     return csound->InitError(csound,
                              Str("xyin opcode has been deprecated in Csound6."));
 }
diff --git a/OOps/aops.c b/OOps/aops.c
index f6c092f..f14953a 100644
--- a/OOps/aops.c
+++ b/OOps/aops.c
@@ -91,6 +91,7 @@ int assign(CSOUND *csound, ASSIGN *p)
 
 int aassign(CSOUND *csound, ASSIGN *p, int islocal)
 {
+    IGN(csound);
     uint32_t nsmps = CS_KSMPS;
     if (LIKELY(nsmps!=1)) {
       uint32_t offset = p->h.insdshead->ksmps_offset;
@@ -118,6 +119,7 @@ int laassign(CSOUND *csound, ASSIGN *p)
 
 int ainit(CSOUND *csound, ASSIGN *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     MYFLT aa = *p->a;
@@ -187,15 +189,16 @@ int mainit(CSOUND *csound, ASSIGNM *p)
 
 int signum(CSOUND *csound, ASSIGN *p)
 {
+    IGN(csound);
     MYFLT a = *p->a;
     int ans = (a==FL(0.0) ? 0 : a<FL(0.0) ? -1 : 1);
     *p->r = (MYFLT) ans;
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int asignum(CSOUND *csound, ASSIGN *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     unsigned int   i, nsmps = CS_KSMPS;
@@ -203,7 +206,8 @@ int asignum(CSOUND *csound, ASSIGN *p)
     memset(p->r, '\0', nsmps*sizeof(MYFLT));
     early = nsmps-early;
     for (i=offset; i<early; i++) {
-      int ans = (a[i]==FL(0.0) ? 0 : a[i]<FL(0.0) ? -1 : 1);
+      MYFLT aa = a[i];
+      int ans = (aa==FL(0.0) ? 0 : aa<FL(0.0) ? -1 : 1);
       p->r[i] = (MYFLT) ans;
     }
     return OK;
@@ -211,7 +215,8 @@ int asignum(CSOUND *csound, ASSIGN *p)
 
 #define RELATN(OPNAME,OP)                               \
   int OPNAME(CSOUND *csound, RELAT *p)                  \
-  { IGN(csound); *p->rbool = (*p->a OP *p->b) ? 1 : 0;  return OK; }
+  {   IGN(csound); *p->rbool = (*p->a OP *p->b) ? 1 : 0; \
+       return OK; }
 
 RELATN(gt,>)
 RELATN(ge,>=)
@@ -220,9 +225,13 @@ RELATN(le,<=)
 RELATN(eq,==)
 RELATN(ne,!=)
 
+int b_not(CSOUND *csound, LOGCL *p)
+{
+    IGN(csound); *p->rbool = (*p->ibool) ? 0 : 1; return OK; }
+
 #define LOGCLX(OPNAME,OP)                                       \
   int OPNAME(CSOUND *csound, LOGCL *p)                          \
-  {  IGN(csound);*p->rbool = (*p->ibool OP *p->jbool) ? 1 : 0; return OK; }
+  { IGN(csound);*p->rbool = (*p->ibool OP *p->jbool) ? 1 : 0; return OK; }
 
 LOGCLX(and,&&)
 LOGCLX(or,||)
@@ -264,11 +273,12 @@ int modkk(CSOUND *csound, AOP *p)
     return OK;
 }
 
-#define KA(OPNAME,OP)                           \
-  int OPNAME(CSOUND *csound, AOP *p) {          \
-    uint32_t n, nsmps = CS_KSMPS;                    \
-    if (LIKELY(nsmps!=1)) {                     \
-      MYFLT   *r, a, *b;                          \
+#define KA(OPNAME,OP)                                  \
+  int OPNAME(CSOUND *csound, AOP *p) {                 \
+    uint32_t n, nsmps = CS_KSMPS;                      \
+    IGN(csound); \
+    if (LIKELY(nsmps!=1)) {                            \
+      MYFLT   *r, a, *b;                               \
       uint32_t offset = p->h.insdshead->ksmps_offset;  \
       uint32_t early  = p->h.insdshead->ksmps_no_end;  \
       r = p->r;                                        \
@@ -295,9 +305,9 @@ KA(subka,-)
 KA(mulka,*)
 KA(divka,/)
 
-/* ********COULD BE IMPROVED******** */
 int modka(CSOUND *csound, AOP *p)
 {
+    IGN(csound);
     MYFLT   *r, a, *b;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -319,6 +329,7 @@ int modka(CSOUND *csound, AOP *p)
 #define AK(OPNAME,OP)                           \
   int OPNAME(CSOUND *csound, AOP *p) {          \
     uint32_t n, nsmps = CS_KSMPS;               \
+    IGN(csound); \
     if (LIKELY(nsmps != 1)) {                   \
       MYFLT   *r, *a, b;                        \
       uint32_t offset = p->h.insdshead->ksmps_offset;  \
@@ -377,9 +388,9 @@ int divak(CSOUND *csound, AOP *p) {
 }
 
 
-/* ********COULD BE IMPROVED******** */
 int modak(CSOUND *csound, AOP *p)
 {
+    IGN(csound);
     MYFLT   *r, *a, b;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -401,6 +412,7 @@ int modak(CSOUND *csound, AOP *p)
 #define AA(OPNAME,OP)                           \
   int OPNAME(CSOUND *csound, AOP *p) {          \
   MYFLT   *r, *a, *b;                           \
+  IGN(csound); \
   uint32_t n, nsmps = CS_KSMPS;                 \
   if (LIKELY(nsmps!=1)) {                       \
     uint32_t offset = p->h.insdshead->ksmps_offset;       \
@@ -470,10 +482,10 @@ AA(mulaa,*)
 AA(divaa,/)
 #endif
 
-/* ********COULD BE IMPROVED******** */
 int modaa(CSOUND *csound, AOP *p)
 {
     MYFLT   *r, *a, *b;
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
@@ -497,11 +509,11 @@ int divzkk(CSOUND *csound, DIVZ *p)
     *p->r = (*p->b != FL(0.0) ? *p->a / *p->b : *p->def);
     return OK;
 }
-/* ********COULD BE IMPROVED******** */
 
 int divzka(CSOUND *csound, DIVZ *p)
 {
     uint32_t n;
+    IGN(csound);
     MYFLT    *r, a, *b, def;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -516,15 +528,17 @@ int divzka(CSOUND *csound, DIVZ *p)
       nsmps -= early;
       memset(&r[nsmps], '\0', early*sizeof(MYFLT));
     }
-    for (n=offset; n<nsmps; n++)
-      r[n] = (b[n]==FL(0.0) ? def : a / b[n]);
+    for (n=offset; n<nsmps; n++) {
+      MYFLT bb = b[n];
+      r[n] = (bb==FL(0.0) ? def : a / bb);
+    }
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int divzak(CSOUND *csound, DIVZ *p)
 {
     uint32_t n;
+    IGN(csound);
     MYFLT    *r, *a, b, def;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -548,10 +562,10 @@ int divzak(CSOUND *csound, DIVZ *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int divzaa(CSOUND *csound, DIVZ *p)
 {
     uint32_t n;
+    IGN(csound);
     MYFLT    *r, *a, *b, def;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -566,8 +580,10 @@ int divzaa(CSOUND *csound, DIVZ *p)
       nsmps -= early;
       memset(&r[nsmps], '\0', early*sizeof(MYFLT));
     }
-    for (n=offset; n<nsmps; n++)
-      r[n] = (b[n]==FL(0.0) ? def : a[n] / b[n]);
+    for (n=offset; n<nsmps; n++) {
+      MYFLT bb=b[n];
+      r[n] = (bb==FL(0.0) ? def : a[n] / bb);
+    }
     return OK;
 }
 
@@ -581,12 +597,12 @@ int conval(CSOUND *csound, CONVAL *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int aconval(CSOUND *csound, CONVAL *p)
 {
     uint32_t offset = p->h.insdshead->ksmps_offset*sizeof(MYFLT);
     uint32_t early  = p->h.insdshead->ksmps_no_end*sizeof(MYFLT);
     MYFLT   *r, *s;
+    IGN(csound);
 
     r = p->r;
     if (*p->cond)
@@ -609,13 +625,13 @@ int int1(CSOUND *csound, EVAL *p)               /* returns signed whole no. */
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int int1a(CSOUND *csound, EVAL *p)              /* returns signed whole no. */
 {
     MYFLT        intpart, *a=p->a, *r=p->r;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -638,13 +654,13 @@ int frac1(CSOUND *csound, EVAL *p)              /* returns positive frac part */
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int frac1a(CSOUND *csound, EVAL *p)             /* returns positive frac part */
 {
     MYFLT intpart, fracpart, *r = p->r, *a = p->a;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -675,13 +691,13 @@ int int1_round(CSOUND *csound, EVAL *p)         /* round to nearest integer */
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int int1a_round(CSOUND *csound, EVAL *p)        /* round to nearest integer */
 {
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
     MYFLT *r=p->r, *a=p->a;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -700,13 +716,13 @@ int int1_floor(CSOUND *csound, EVAL *p)         /* round down */
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int int1a_floor(CSOUND *csound, EVAL *p)        /* round down */
 {
     MYFLT    *a=p->a, *r=p->r;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -725,13 +741,13 @@ int int1_ceil(CSOUND *csound, EVAL *p)          /* round up */
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int int1a_ceil(CSOUND *csound, EVAL *p)         /* round up */
 {
     MYFLT    *a=p->a, *r=p->r;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -786,8 +802,8 @@ int atan21(CSOUND *csound, AOP *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 #define LIBA(OPNAME,LIBNAME) int OPNAME(CSOUND *csound, EVAL *p) {      \
+    IGN(csound); \
     uint32_t offset = p->h.insdshead->ksmps_offset;                     \
     uint32_t early  = p->h.insdshead->ksmps_no_end;                     \
     uint32_t n, nsmps =CS_KSMPS;                                        \
@@ -819,14 +835,13 @@ LIBA(tanha,TANH)
 LIBA(log10a,LOG10)
 LIBA(log2a,LOG2)
 
-/* ********COULD BE IMPROVED******** */
 int atan2aa(CSOUND *csound, AOP *p)
 {
     MYFLT   *r, *a, *b;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
-
+    IGN(csound);
     r = p->r;
     a = p->a;
     b = p->b;
@@ -860,6 +875,7 @@ int aampdb(CSOUND *csound, EVAL *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS;
     MYFLT   *r = p->r, *a = p->a;
+    IGN(csound);
 
     if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -883,7 +899,6 @@ int ampdbfs(CSOUND *csound, EVAL *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int aampdbfs(CSOUND *csound, EVAL *p)
 {
     uint32_t offset = p->h.insdshead->ksmps_offset;
@@ -1242,7 +1257,6 @@ int powoftwo(CSOUND *csound, EVAL *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int powoftwoa(CSOUND *csound, EVAL *p)
 {                                   /* by G.Maldonado, liberalised by JPff */
     MYFLT    *a=p->a, *r=p->r;
@@ -1296,7 +1310,6 @@ int cent(CSOUND *csound, EVAL *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int acent(CSOUND *csound, EVAL *p)        /* JPff */
 {
     MYFLT *r, *a;
@@ -1325,7 +1338,6 @@ int db(CSOUND *csound, EVAL *p)
     return OK;
 }
 
-/* ********COULD BE IMPROVED******** */
 int dba(CSOUND *csound, EVAL *p)          /* JPff */
 {
     MYFLT *r, *a;
@@ -1391,7 +1403,10 @@ int in(CSOUND *csound, INM *p)
 {
     uint32_t offset = p->h.insdshead->ksmps_offset*sizeof(MYFLT);
     uint32_t early  = p->h.insdshead->ksmps_no_end;
-
+    if (csound->inchnls != 1)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     if (UNLIKELY(offset)) memset(p->ar, '\0', offset);
     memcpy(&p->ar[offset], CS_SPIN, (CS_KSMPS-early) * sizeof(MYFLT)-offset);
@@ -1413,8 +1428,9 @@ int inarray(CSOUND *csound, INA *p)
 
     if ((int)n>csound->inchnls) n = csound->inchnls;
     CSOUND_SPIN_SPINLOCK
-    if (UNLIKELY(offset)) for (i = 0; i < n; i++)
-                  memset(&data[i*ksmps], '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(offset))
+      for (i = 0; i < n; i++)
+        memset(&data[i*ksmps], '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
       nsmps -= early;
       for (i = 0; i < n; i++)
@@ -1434,6 +1450,9 @@ int ins(CSOUND *csound, INS *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS, k;
+    if(csound->inchnls != 2)
+      return csound->PerfError(csound, p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     sp = CS_SPIN;
     ar1 = p->ar1;
@@ -1444,7 +1463,7 @@ int ins(CSOUND *csound, INS *p)
     }
     if (UNLIKELY(early)) {
       nsmps -= early;
-      memset(&p->ar1[nsmps],'\0',  early * sizeof(MYFLT));
+      memset(&p->ar1[nsmps], '\0', early * sizeof(MYFLT));
       memset(&p->ar2[nsmps], '\0', early * sizeof(MYFLT));
     }
     for (n=offset, k=0; n<nsmps; n++, k+=2) {
@@ -1462,6 +1481,10 @@ int inq(CSOUND *csound, INQ *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS, k;
+     if(csound->inchnls != 4)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     if (UNLIKELY(offset)) {
       memset(ar1, '\0', offset*sizeof(MYFLT));
@@ -1493,6 +1516,10 @@ int inh(CSOUND *csound, INH *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS, k;
+     if(csound->inchnls != 6)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     if (UNLIKELY(offset)) {
       memset(ar1, '\0', offset*sizeof(MYFLT));
@@ -1531,6 +1558,10 @@ int ino(CSOUND *csound, INO *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps =CS_KSMPS, k;
+     if(csound->inchnls != 8)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     if (UNLIKELY(offset)) {
       memset(ar1, '\0', offset*sizeof(MYFLT));
@@ -1573,6 +1604,10 @@ static int inn(CSOUND *csound, INALL *p, uint32_t n)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t m, nsmps =CS_KSMPS, i;
+    if(csound->inchnls != (int) n)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
 
     CSOUND_SPIN_SPINLOCK
     if (UNLIKELY(offset)) for (i = 0; i < n; i++)
@@ -1602,6 +1637,7 @@ int in32(CSOUND *csound, INALL *p)
 
 int inch1_set(CSOUND *csound, INCH1 *p)
 {
+    IGN(csound);
     p->init = 1;
     return OK;
 }
@@ -1645,6 +1681,7 @@ int inch_opcode1(CSOUND *csound, INCH1 *p)
 
 int inch_set(CSOUND *csound, INCH *p)
 {
+   IGN(csound);
     p->init = 1;
     return OK;
 }
@@ -1698,6 +1735,10 @@ int inall_opcode(CSOUND *csound, INALL *p)
     uint32_t    i,j = 0, k = 0, nsmps = CS_KSMPS;
     uint32_t early  = nsmps - p->h.insdshead->ksmps_no_end;
     MYFLT *spin = CS_SPIN;
+    if(csound->inchnls != (int) n)
+      return csound->PerfError(csound,
+                               p->h.insdshead,
+                               "Wrong numnber of input channels\n");
     CSOUND_SPIN_SPINLOCK
     m = (n < (uint32_t)csound->inchnls ? n : (uint32_t)csound->inchnls);
     for (j=0; j<nsmps; j++)
@@ -1745,14 +1786,14 @@ int outs1(CSOUND *csound, OUTM *p)
     return OK;
 }
 
-#define OUTCN(n) if (n>csound->nchnls) return           \
+#define OUTCN(n)  if (n>csound->nchnls) return           \
                             csound->InitError(csound,   \
                                               Str("Channel greater than nchnls")); \
   return OK;
 
-int och2(CSOUND *csound, OUTM *p) { OUTCN(2) }
-int och3(CSOUND *csound, OUTM *p) { OUTCN(3) }
-int och4(CSOUND *csound, OUTM *p) { OUTCN(4) }
+int och2(CSOUND *csound, OUTM *p) { IGN(p); OUTCN(2) }
+int och3(CSOUND *csound, OUTM *p) { IGN(p); OUTCN(3) }
+int och4(CSOUND *csound, OUTM *p) { IGN(p); OUTCN(4) }
 
 int outs2(CSOUND *csound, OUTM *p)
 {
@@ -1773,6 +1814,7 @@ int outs2(CSOUND *csound, OUTM *p)
       csound->spoutactive = 1;
     }
     else {
+      sp +=nsmps;
       for (n=offset; n<early; n++) {
         sp[n] += ap2[n];
       }
@@ -1967,7 +2009,7 @@ int outch(CSOUND *csound, OUTCH *p)
     CSOUND_SPOUT_SPINLOCK
     for (j = 0; j < count; j += 2) {
       ch = (int)(*args[j] + FL(0.5));
-      if(ch < 1) ch = 1;
+      if (ch < 1) ch = 1;
       apn = args[j + 1];
       if (ch > nchnls) continue;
       if (!csound->spoutactive) {
@@ -1997,6 +2039,7 @@ int is_NaN(CSOUND *csound, ASSIGN *p)
 /* ********COULD BE IMPROVED******** */
 int is_NaNa(CSOUND *csound, ASSIGN *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t k, nsmps = CS_KSMPS;
     uint32_t early  = nsmps - p->h.insdshead->ksmps_no_end;
@@ -2017,6 +2060,7 @@ int is_inf(CSOUND *csound, ASSIGN *p)
 /* ********COULD BE IMPROVED******** */
 int is_infa(CSOUND *csound, ASSIGN *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t k, nsmps = CS_KSMPS;
     uint32_t early  = nsmps-p->h.insdshead->ksmps_no_end;
@@ -2132,11 +2176,13 @@ int hw_channels(CSOUND *csound, ASSIGN *p){
     if (dachans == NULL) {
       csound->Warning(csound, Str("number of hardware output channels"
                                   " not currently available"));
-    } else *p->r = *dachans;
+    }
+    else *p->r = *dachans;
     dachans = (int *) csound->QueryGlobalVariable(csound, "_ADC_CHANNELS_");
     if (dachans == NULL) {
       csound->Warning(csound, Str("number of hardware input channels"
                                   " not currently available"));
-    } else *p->a = *dachans;
+    }
+    else *p->a = *dachans;
     return OK;
 }
diff --git a/OOps/bus.c b/OOps/bus.c
index b0326f7..7a8c985 100644
--- a/OOps/bus.c
+++ b/OOps/bus.c
@@ -306,7 +306,7 @@ int pvsout_perf(CSOUND *csound, FCHAN *p)
 static int delete_channel_db(CSOUND *csound, void *p)
 {
     CONS_CELL *head, *values;
-
+    IGN(p);
     if (csound->chn_db == NULL) {
       return 0;
     }
@@ -672,7 +672,14 @@ static int chnget_opcode_perf_k(CSOUND *csound, CHNGET *p)
       print_chn_err_perf(p, err);
   }
 
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+    volatile union {
+    MYFLT d;
+    MYFLT_INT_TYPE i;
+    } x;
+    x.i = InterlockedExchangeAdd64((MYFLT_INT_TYPE *) p->fp, 0);
+    *(p->arg) = x.d;
+#elif defined(HAVE_ATOMIC_BUILTIN)
     volatile union {
     MYFLT d;
     MYFLT_INT_TYPE i;
@@ -734,7 +741,16 @@ int chnget_opcode_init_i(CSOUND *csound, CHNGET *p)
                               CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL);
     if (UNLIKELY(err))
       return print_chn_err(p, err);
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+    {
+    union {
+        MYFLT d;
+        MYFLT_INT_TYPE i;
+    } x;
+    x.i = InterlockedExchangeAdd64((MYFLT_INT_TYPE *)p->fp, 0);
+    *(p->arg) = x.d;
+    }
+#elif defined(HAVE_ATOMIC_BUILTIN)
     {
     union {
     MYFLT d;
@@ -845,7 +861,25 @@ int chnget_opcode_perf_S(CSOUND *csound, CHNGET *p)
 
 static int chnset_opcode_perf_k(CSOUND *csound, CHNGET *p)
 {
-#ifdef HAVE_ATOMIC_BUILTIN
+ if(strncmp(p->chname, p->iname->data, MAX_CHAN_NAME)){
+    int err = csoundGetChannelPtr(csound, &(p->fp), (char*) p->iname->data,
+                              CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL);
+    if(err == 0) {
+    p->lock = csoundGetChannelLock(csound, (char*) p->iname->data);
+    strncpy(p->chname, p->iname->data, MAX_CHAN_NAME);
+    }
+    else
+      print_chn_err_perf(p, err);
+  }
+
+#if defined(MSVC)
+    volatile union {
+      MYFLT d;
+      MYFLT_INT_TYPE i;
+    } x;
+    x.d = *(p->arg);
+    InterlockedExchange64((MYFLT_INT_TYPE *) p->fp, x.i);
+#elif defined(HAVE_ATOMIC_BUILTIN)
     union {
       MYFLT d;
       MYFLT_INT_TYPE i;
@@ -895,6 +929,7 @@ static int chnset_opcode_perf_a(CSOUND *csound, CHNGET *p)
 static int chnmix_opcode_perf(CSOUND *csound, CHNGET *p)
 {
     uint32_t n = 0;
+    IGN(csound);
     uint32_t nsmps = CS_KSMPS;
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
@@ -913,6 +948,7 @@ static int chnmix_opcode_perf(CSOUND *csound, CHNGET *p)
 static int chnclear_opcode_perf(CSOUND *csound, CHNCLEAR *p)
 {
     /* Need lock for the channel */
+    IGN(csound);
     csoundSpinLock(p->lock);
     memset(p->fp, 0, CS_KSMPS*sizeof(MYFLT)); /* Should this leave start? */
     csoundSpinUnLock(p->lock);
@@ -931,7 +967,14 @@ int chnset_opcode_init_i(CSOUND *csound, CHNGET *p)
       return print_chn_err(p, err);
 
 
-#ifdef HAVE_ATOMIC_BUILTIN
+#if defined(MSVC)
+    volatile union {
+      MYFLT d;
+      MYFLT_INT_TYPE i;
+    } x;
+    x.d = *(p->arg);
+    InterlockedExchange64((MYFLT_INT_TYPE *) p->fp, x.i);
+#elif defined(HAVE_ATOMIC_BUILTIN)
     union {
       MYFLT d;
       MYFLT_INT_TYPE i;
@@ -1027,9 +1070,11 @@ int chnset_opcode_init_S(CSOUND *csound, CHNGET *p)
     err = csoundGetChannelPtr(csound, &(p->fp), (char*) p->iname->data,
                               CSOUND_STRING_CHANNEL | CSOUND_OUTPUT_CHANNEL);
     // size = csoundGetChannelDatasize(csound, p->iname->data);
-    if (UNLIKELY(err))
+    if (UNLIKELY(err)) {
       return print_chn_err(p, err);
 
+    }
+
     if (s==NULL) return NOTOK;
     p->lock = lock =
       csoundGetChannelLock(csound, (char*) p->iname->data);
@@ -1039,6 +1084,7 @@ int chnset_opcode_init_S(CSOUND *csound, CHNGET *p)
         csound->Free(csound, ((STRINGDAT *)p->fp)->data);
       ((STRINGDAT *)p->fp)->data = cs_strdup(csound, s);
       ((STRINGDAT *)p->fp)->size = strlen(s)+1;
+
       //set_channel_data_ptr(csound, p->iname->data,p->fp, strlen(s)+1);
     }
     else if(((STRINGDAT *)p->fp)->data != NULL)
@@ -1072,9 +1118,10 @@ int chnset_opcode_perf_S(CSOUND *csound, CHNGET *p)
       ((STRINGDAT *)p->fp)->data = cs_strdup(csound, s);
       ((STRINGDAT *)p->fp)->size = strlen(s)+1;
       //set_channel_data_ptr(csound, p->iname->data,p->fp, strlen(s)+1);
+      //printf("p: %s: %s \n", p->iname->data, ((STRINGDAT *)p->fp)->data);
     }
     else if(((STRINGDAT *)p->fp)->data != NULL)
-            strcpy(((STRINGDAT *)p->fp)->data, s);
+        strcpy(((STRINGDAT *)p->fp)->data, s);
     csoundSpinUnLock(lock);
     //printf("%s \n", (char *)p->fp);
     return OK;
diff --git a/OOps/compile_ops.c b/OOps/compile_ops.c
index a76bf71..14be4cd 100644
--- a/OOps/compile_ops.c
+++ b/OOps/compile_ops.c
@@ -22,6 +22,8 @@
 
 #include "compile_ops.h"
 #include <stdio.h>
+int csoundCompileOrcInternal(CSOUND *csound, const char *str, int async);
+int csoundReadScoreInternal(CSOUND *csound, const char *str);
 
 int compile_orc_i(CSOUND *csound, COMPILE *p){
     FILE *fp;
@@ -43,8 +45,8 @@ int compile_orc_i(CSOUND *csound, COMPILE *p){
     if(size==0) {
       fclose(fp);
       *p->res = (MYFLT)(CSOUND_ERROR);
-      csound->InitError(csound, Str("compileorc: could not read %s\n"), name);
-      return NOTOK;
+      return
+        csound->InitError(csound, Str("compileorc: could not read %s\n"), name);
     }
 
     orc = (char *) csound->Calloc(csound, size+1);
@@ -54,7 +56,7 @@ int compile_orc_i(CSOUND *csound, COMPILE *p){
       csound->Free(csound,orc);
       return NOTOK;
     }
-    *p->res = (MYFLT)(csoundCompileOrc(csound, orc));
+    *p->res = (MYFLT)(csoundCompileOrcInternal(csound, orc, 0));
     fclose(fp);
     csound->Free(csound,orc);
     return OK;
@@ -66,16 +68,18 @@ int compile_csd_i(CSOUND *csound, COMPILE *p){
 }
 
 int compile_str_i(CSOUND *csound, COMPILE *p){
-    void csp_orc_sa_print_list(CSOUND*);
+  //void csp_orc_sa_print_list(CSOUND*);
     //printf("START\n");
-    *p->res = (MYFLT)(csoundCompileOrc(csound, ((STRINGDAT *)p->str)->data));
+    *p->res = (MYFLT)(csoundCompileOrcInternal(csound,
+                                               ((STRINGDAT *)p->str)->data, 0));
     //printf("END\n");
     //csp_orc_sa_print_list(csound);
     return OK;
 }
 
 int read_score_i(CSOUND *csound, COMPILE *p){
-    *p->res = (MYFLT)(csoundReadScore(csound, ((STRINGDAT *)p->str)->data));
+    *p->res = (MYFLT)(csoundReadScoreInternal(csound,
+                                              ((STRINGDAT *)p->str)->data));
     return OK;
 }
 
diff --git a/OOps/diskin2.c b/OOps/diskin2.c
index f307521..ced1c6d 100644
--- a/OOps/diskin2.c
+++ b/OOps/diskin2.c
@@ -467,10 +467,10 @@ static int diskin2_init_(CSOUND *csound, DISKIN2 *p, int stringname)
       if (UNLIKELY((csound->oparms_.msglevel & 7) == 7)) {
         csound->Message(csound, Str("diskin2: opened (asynchronously) '%s':\n"
                                     "         %d Hz, %d channel(s), "
-                                    "%ld sample frames\n"),
+                                    "%lld sample frames\n"),
                         csound->GetFileName(fd),
-                        (int)sfinfo.samplerate, (int)sfinfo.channels,
-                        (int32) sfinfo.frames);
+                        sfinfo.samplerate, sfinfo.channels,
+                        sfinfo.frames);
       }
     }
     else {
@@ -481,10 +481,10 @@ static int diskin2_init_(CSOUND *csound, DISKIN2 *p, int stringname)
       if (UNLIKELY((csound->oparms_.msglevel & 7) == 7)) {
         csound->Message(csound, Str("diskin2: opened '%s':\n"
                                     "         %d Hz, %d channel(s), "
-                                    "%ld sample frames\n"),
+                                    "%lld sample frames\n"),
                         csound->GetFileName(fd),
-                        (int)sfinfo.samplerate, (int)sfinfo.channels,
-                        (int32) sfinfo.frames);
+                        sfinfo.samplerate, sfinfo.channels,
+                        sfinfo.frames);
       }
     }
 
@@ -1725,8 +1725,10 @@ static int diskin2_init_array(CSOUND *csound, DISKIN2_ARRAY *p, int stringname)
                                         "DISKIN_THREAD_START_ARRAY")) == 0) {
         uintptr_t diskin_io_thread_array(void *p);
         // TOFIX: this variable (thread) is not referenced
+        #if 0
         void **thread = csound->QueryGlobalVariable(csound,
                                                        "DISKIN_PTHREAD_ARRAY");
+        #endif
         *start = 1;
         csound->CreateThread(diskin_io_thread_array, *top);
       }
@@ -1739,10 +1741,10 @@ static int diskin2_init_array(CSOUND *csound, DISKIN2_ARRAY *p, int stringname)
       if (UNLIKELY((csound->oparms_.msglevel & 7) == 7)) {
         csound->Message(csound, Str("diskin2: opened (asynchronously) '%s':\n"
                                     "         %d Hz, %d channel(s), "
-                                    "%ld sample frames\n"),
+                                    "%lld sample frames\n"),
                         csound->GetFileName(fd),
-                        (int)sfinfo.samplerate, (int)sfinfo.channels,
-                        (int32) sfinfo.frames);
+                        sfinfo.samplerate, sfinfo.channels,
+                        sfinfo.frames);
       }
     }
     else {
@@ -1753,10 +1755,10 @@ static int diskin2_init_array(CSOUND *csound, DISKIN2_ARRAY *p, int stringname)
       if (UNLIKELY((csound->oparms_.msglevel & 7) == 7)) {
         csound->Message(csound, Str("diskin2: opened '%s':\n"
                                     "         %d Hz, %d channel(s), "
-                                    "%ld sample frames\n"),
+                                    "%lld sample frames\n"),
                         csound->GetFileName(fd),
-                        (int)sfinfo.samplerate, (int)sfinfo.channels,
-                        (int32) sfinfo.frames);
+                        sfinfo.samplerate, sfinfo.channels,
+                        sfinfo.frames);
       }
     }
 
diff --git a/OOps/fftlib.c b/OOps/fftlib.c
index c870ee5..4c4603e 100644
--- a/OOps/fftlib.c
+++ b/OOps/fftlib.c
@@ -3370,7 +3370,7 @@ void pffft_execute(CSOUND_FFT_SETUP *setup,
     sig[i] = buf[i]/s;
 }
 
-#if defined(__MACH__) // && !defined(IOS)
+#if defined(__MACH__)
 /* vDSP FFT implementation */
 #include <Accelerate/Accelerate.h>
 static
@@ -3419,9 +3419,10 @@ void *align_alloc(CSOUND *csound, size_t nb_bytes){
 }
 
 int setupDispose(CSOUND *csound, void *pp){
+  IGN(csound);
   CSOUND_FFT_SETUP *setup =(CSOUND_FFT_SETUP *) pp;
   switch(setup->lib){
-#if defined(__MACH__) && !defined(IOS)
+#if defined(__MACH__)
   case VDSP_LIB:
     vDSP_destroy_fftsetupD(
 #ifdef USE_DOUBLE
@@ -3461,7 +3462,7 @@ void *csoundRealFFT2Setup(CSOUND *csound,
   setup->N = FFTsize;
   setup->p2 = isPowTwo(FFTsize);
   switch(lib){
-#if defined(__MACH__) && !defined(IOS)
+#if defined(__MACH__)
   case VDSP_LIB:
     setup->M = ConvertFFTSize(csound, FFTsize);
     setup->setup = (void *)
@@ -3501,7 +3502,7 @@ void csoundRealFFT2(CSOUND *csound,
   CSOUND_FFT_SETUP *setup =
         (CSOUND_FFT_SETUP *) p;
   switch(setup->lib) {
-#if defined(__MACH__) && !defined(IOS)
+#if defined(__MACH__)
   case VDSP_LIB:
     vDSP_execute(setup,sig);
     break;
@@ -3536,6 +3537,7 @@ void *csoundDCTSetup(CSOUND *csound,
 
 void pffft_DCT_execute(CSOUND *csound,
                      void *p, MYFLT *sig){
+  IGN(csound);
   CSOUND_FFT_SETUP *setup =
         (CSOUND_FFT_SETUP *) p;
   int i,j, N= setup->N;
@@ -3578,9 +3580,10 @@ void pffft_DCT_execute(CSOUND *csound,
   }
 }
 
-#if defined(__MACH__) && !defined(IOS)
+#if defined(__MACH__)
 void vDSP_DCT_execute(CSOUND *csound,
                      void *p, MYFLT *sig){
+  IGN(csound);
   CSOUND_FFT_SETUP *setup =
         (CSOUND_FFT_SETUP *) p;
   int i,j, N= setup->N;
@@ -3680,7 +3683,7 @@ void csoundDCT(CSOUND *csound,
 CSOUND_FFT_SETUP *setup =
         (CSOUND_FFT_SETUP *) p;
   switch(setup->lib) {
-#if defined(__MACH__) && !defined(IOS)
+#if defined(__MACH__)
   case VDSP_LIB:
     vDSP_DCT_execute(csound,setup,sig);
     break;
diff --git a/OOps/goto_ops.c b/OOps/goto_ops.c
index ecba1e9..5dadeaa 100644
--- a/OOps/goto_ops.c
+++ b/OOps/goto_ops.c
@@ -123,12 +123,13 @@ int reinit(CSOUND *csound, GOTO *p)
     csound->curip = p->h.insdshead;
     csound->ids = p->lblblk->prvi;        /* now, despite ANSI C warning:  */
     if (csound->realtime_audio_flag == 0) {
-    while ((csound->ids = csound->ids->nxti) != NULL &&
-           csound->ids->iopadr != (SUBR) rireturn)
-      (*csound->ids->iopadr)(csound, csound->ids);
-     csound->reinitflag = p->h.insdshead->reinitflag = 0;
-     } else {
-    csound->curip->init_done = 0;
+      while ((csound->ids = csound->ids->nxti) != NULL &&
+             (csound->ids->iopadr != (SUBR) rireturn))
+        (*csound->ids->iopadr)(csound, csound->ids);
+      csound->reinitflag = p->h.insdshead->reinitflag = 0;
+    }
+    else {
+      csound->curip->init_done = 0;
     }
     return OK;
 }
@@ -149,8 +150,9 @@ int tigoto(CSOUND *csound, GOTO *p)     /* I-time only, NOP at reinit */
 
 int tival(CSOUND *csound, EVAL *p)      /* I-time only, NOP at reinit */
 {
+  IGN(csound);
   if (!p->h.insdshead->reinitflag)
-    *p->r = p->h.insdshead->tieflag;
+      *p->r = p->h.insdshead->tieflag;
     /* *p->r = (csound->tieflag ? FL(1.0) : FL(0.0)); */
     return OK;
 }
@@ -172,7 +174,7 @@ int turnoff(CSOUND *csound, LINK *p)    /* terminate the current instrument  */
     if (p->h.insdshead->actflg) {
     /* IV - Oct 16 2002: check for subinstr and user opcode */
     /* find top level instrument instance */
-    while (lcurip->opcod_iobufs)
+      while (lcurip->opcod_iobufs)
       lcurip = ((OPCOD_IOBUFS*) lcurip->opcod_iobufs)->parent_ip;
     xturnoff(csound, lcurip);
     if (lcurip->xtratim <= 0)
@@ -189,10 +191,10 @@ int turnoff2(CSOUND *csound, TURNOFF2 *p, int isStringArg)
     INSDS *ip, *ip2, *nip;
     int   mode, insno, allow_release;
 
-    if (isStringArg){
+    if (isStringArg) {
       p1 = (MYFLT) strarg2insno(csound, ((STRINGDAT *)p->kInsNo)->data, 1);
     }
-    else  if (csound->ISSTRCOD(*p->kInsNo)) {
+    else if (csound->ISSTRCOD(*p->kInsNo)) {
       p1 = (MYFLT) strarg2insno(csound, get_arg_string(csound, *p->kInsNo), 1);
     }
     else p1 = *(p->kInsNo);
diff --git a/OOps/midiops.c b/OOps/midiops.c
index 710bb58..436e098 100644
--- a/OOps/midiops.c
+++ b/OOps/midiops.c
@@ -745,7 +745,7 @@ int midiarp(CSOUND *csound, MIDIARP *p)
           csound->Message(csound,
                           Str("Invalid arp mode selected:"
                               " %d. Valid modes are 0, 1, 2, and 3\n"),
-                          *p->arpMode);
+                          (int)*p->arpMode);
         }
       }
     }
diff --git a/OOps/midiout.c b/OOps/midiout.c
index 5243f95..9f70a1a 100644
--- a/OOps/midiout.c
+++ b/OOps/midiout.c
@@ -68,6 +68,7 @@ int release(CSOUND *csound, REL *p)
 
 int xtratim(CSOUND *csound, XTRADUR *p)
 {
+    IGN(csound);
     int *xtra = &(p->h.insdshead->xtratim);
     int tim = (int)(*p->extradur * p->h.insdshead->ekr);
     if (*xtra < tim)  /* gab-a5 revised */
@@ -77,6 +78,7 @@ int xtratim(CSOUND *csound, XTRADUR *p)
 
 int mclock_set(CSOUND *csound, MCLOCK *p)
 {
+    IGN(csound);
     p->period= CS_EKR / *p->freq;
     p->clock_tics = p->period;
     p->beginning_flag = TRUE;
@@ -85,7 +87,7 @@ int mclock_set(CSOUND *csound, MCLOCK *p)
 
 int mclock(CSOUND *csound, MCLOCK *p)
 {
-    if (p->beginning_flag) {    /* first time */
+    if (UNLIKELY(p->beginning_flag)) {    /* first time */
       send_midi_message(csound, 0xF8, 0, 0);    /* clock message */
       p->beginning_flag=FALSE;
       return OK;
@@ -116,7 +118,7 @@ int mrtmsg(CSOUND *csound, MRT *p)
       send_midi_message(csound, 0xFE, 0, 0); /* active_sensing */
       break;
     default:
-      csound->InitError(csound, Str("illegal mrtmsg argument"));
+      return csound->InitError(csound, Str("illegal mrtmsg argument"));
     }
     return OK;
 }
@@ -197,6 +199,7 @@ int iout_on_dur2(CSOUND *csound, OUT_ON_DUR *p)
 
 int moscil_set(CSOUND *csound, MOSCIL *p)
 {
+    IGN(csound);
     if (p->h.insdshead->xtratim < EXTRA_TIME)
       /* if not initialised by another opcode */
       p->h.insdshead->xtratim = EXTRA_TIME;
diff --git a/OOps/mxfft.c b/OOps/mxfft.c
index c38b324..58d47aa 100644
--- a/OOps/mxfft.c
+++ b/OOps/mxfft.c
@@ -842,6 +842,7 @@ static void reals_(CSOUND *csound, MYFLT *a, MYFLT *b, int n, int isn)
   /* See IEEE book for a long comment here on usage */
 
 {
+    IGN(csound);
     int inc,
       j,
       k,
diff --git a/OOps/oscils.c b/OOps/oscils.c
index 4610021..0589188 100644
--- a/OOps/oscils.c
+++ b/OOps/oscils.c
@@ -86,6 +86,7 @@ int oscils_set(CSOUND *csound, OSCILS *p)
 
 int oscils(CSOUND *csound, OSCILS *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
@@ -141,12 +142,14 @@ int lphasor_set(CSOUND *csound, LPHASOR *p)
 
 int lphasor(CSOUND *csound, LPHASOR *p)
 {
+    IGN(csound);
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
     int loop_mode, dir;
     MYFLT   *ar, *xtrns;
     double  trns, phs, lps, lpe, lpt;
+    int     assxtr = IS_ASIG_ARG(p->xtrns);
 
     /* copy object data to local variables */
     ar = p->ar; xtrns = p->xtrns;
@@ -161,7 +164,7 @@ int lphasor(CSOUND *csound, LPHASOR *p)
       memset(&ar[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      if (IS_ASIG_ARG(p->xtrns)) trns = (double)xtrns[n];
+      if (assxtr) trns = (double)xtrns[n];
       ar[n] = (MYFLT) phs;
       phs += (p->dir ? trns : -trns);
       if (loop_mode) {
@@ -225,6 +228,7 @@ int tablexkt(CSOUND *csound, TABLEXKT *p)
     MYFLT   *ar, *xndx, ndx_f, a0, a1, a2, a3, v0, v1, v2, v3, *ftable;
     MYFLT   onedwarp, win_fact;
     FUNC    *ftp;
+    int     asgx = IS_ASIG_ARG(p->xndx);
 
     /* window size */
     wsize = p->wsize;
@@ -267,7 +271,7 @@ int tablexkt(CSOUND *csound, TABLEXKT *p)
     }
     for (n=offset; n<nsmps; n++) {
       ndx = (double)*xndx;
-      if (IS_ASIG_ARG(p->xndx)) xndx++;
+      if (asgx) xndx++;
       /* calculate table index */
       if (!(p->raw_ndx)) {
         ndx += (double)*(p->ixoff);
diff --git a/OOps/pstream.c b/OOps/pstream.c
index 4f55156..18d7a44 100644
--- a/OOps/pstream.c
+++ b/OOps/pstream.c
@@ -1,7 +1,7 @@
 /*
     pstream.c:
 
-    Copyright (C) 2001 Richard Dobson
+    Copyright (C) 2001 Richard Dobson, John ffitch
 
     This file is part of Csound.
 
@@ -100,17 +100,14 @@ int fassign(CSOUND *csound, FASSIGN *p)
       return OK;
     }
 
-
-
-
     framesize = p->fsrc->N + 2;
 
     if (p->fout->framecount == p->fsrc->framecount) {/* avoid duplicate copying*/
-    memcpy(fout, fsrc, framesize*sizeof(float));
-    p->fout->framecount++;
+      memcpy(fout, fsrc, framesize*sizeof(float));
+      p->fout->framecount++;
     }
 
-     return OK;
+    return OK;
 }
 
 /************* OSCBANK SYNTH ***********/
@@ -402,7 +399,7 @@ static int pvsfreadset_(CSOUND *csound, PVSFREAD *p, int stringname)
     p->membase = (float*) pp.data;
 
     if (UNLIKELY(p->overlap < (int)CS_KSMPS || p->overlap < 10))
-      csound->InitError(csound, Str("Sliding version not yet available"));
+      return csound->InitError(csound, Str("Sliding version not yet available"));
     if (UNLIKELY(p->nframes <= 0))
       return csound->InitError(csound, Str("pvsfread: file is empty!\n"));
     /* special case if only one frame - it is an impulse response */
@@ -667,7 +664,7 @@ int pvsftwset(CSOUND *csound, PVSFTW *p)
     if (UNLIKELY(p->outfna==NULL))
       return NOTOK;
     if (UNLIKELY(p->fsrc->sliding))
-      csound->InitError(csound, Str("Sliding version not yet available"));
+      return csound->InitError(csound, Str("Sliding version not yet available"));
     fsrc = (float *) p->fsrc->frame.auxp;               /* RWD MUST be 32bit */
     /* init table, one presumes with zero amps */
     nbins = p->fftsize/2 + 1;
@@ -783,7 +780,7 @@ int pvsftrset(CSOUND *csound, PVSFTR *p)
         return csound->InitError(csound, Str("pvsftr: amps ftable too small.\n"));
     }
     if (UNLIKELY(p->overlap < (int)CS_KSMPS || p->overlap < 10))
-      csound->InitError(csound, Str("Sliding version not yet available"));
+      return csound->InitError(csound, Str("Sliding version not yet available"));
     fdest = (float *) p->fdest->frame.auxp;             /* RWD MUST be 32bit */
 
     /*** setup first frame ?? */
@@ -839,6 +836,7 @@ int pvsftr(CSOUND *csound, PVSFTR *p)
 
 int pvsinfo(CSOUND *csound, PVSINFO *p)
 {
+   IGN(csound);
 #ifdef _DEBUG
     /* init stage opcode : this should always be a proper fsig */
     assert(p->fsrc->frame.auxp != NULL);
diff --git a/OOps/pvsanal.c b/OOps/pvsanal.c
index 19e35e1..edee934 100644
--- a/OOps/pvsanal.c
+++ b/OOps/pvsanal.c
@@ -102,6 +102,7 @@ int pvssanalset(CSOUND *csound, PVSANAL *p)
     int i;
     int wintype = MYFLT2LRND(*p->wintype);
 
+    if (N<=0) return csound->InitError(csound, Str("Invalid window size"));
     /* deal with iinit and iformat later on! */
 
     N = N + N%2;               /* Make N even */
diff --git a/OOps/schedule.c b/OOps/schedule.c
index 966b4e3..da519c9 100644
--- a/OOps/schedule.c
+++ b/OOps/schedule.c
@@ -22,16 +22,22 @@
     02111-1307 USA
 */
 
-#include "csoundCore.h"
-#include "schedule.h"
 #include <math.h>
+#include "csoundCore.h"
 #include "namedins.h"
 #include "linevent.h"
+/* Keep Microsoft's schedule.h from being used instead of our schedule.h. */
+#ifdef _MSC_VER
+#include "H/schedule.h"
+#else
+#include "schedule.h"
+#endif
 
-
+extern void csoundInputMessageInternal(CSOUND *, const char *);
 int eventOpcodeI_(CSOUND *csound, LINEVENT *p, int s, char p1);
 int eventOpcode_(CSOUND *csound, LINEVENT *p, int s, char p1);
 
+
 int schedule(CSOUND *csound, SCHED *p)
 {
     LINEVENT pp;
@@ -50,6 +56,25 @@ int schedule(CSOUND *csound, SCHED *p)
     return eventOpcodeI_(csound, &pp, 0, 'i');
 }
 
+static void add_string_arg(char *s, const char *arg) {
+  int offs = strlen(s) ;
+  //char *c = s;
+  s += offs;
+  *s++ = ' ';
+
+  *s++ ='\"';
+  while(*arg != '\0') {
+    if(*arg == '\"')
+      *s++ = '\\';
+    *s++ = *arg++;
+  }
+
+  *s++ = '\"';
+  *s = '\0';
+  //printf("%s \n", c);
+}
+
+
 int schedule_N(CSOUND *csound, SCHED *p)
 {
     int i;
@@ -58,11 +83,15 @@ int schedule_N(CSOUND *csound, SCHED *p)
     sprintf(s, "i %f %f %f", *p->which, *p->when, *p->dur);
     for (i=4; i < argno ; i++) {
        MYFLT *arg = p->argums[i-4];
-         if (csoundGetTypeForArg(arg) == &CS_VAR_TYPE_S)
-           sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
-         else sprintf(s, "%s %f", s,  *arg);
+       if (csoundGetTypeForArg(arg) == &CS_VAR_TYPE_S) {
+           add_string_arg(s, ((STRINGDAT *)arg)->data);
+           //sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
+       }
+       else sprintf(s, "%s %f", s,  *arg);
+
     }
-    csoundInputMessage(csound, s);
+
+    csoundInputMessageInternal(csound, s);
     return OK;
 }
 
@@ -75,10 +104,12 @@ int schedule_SN(CSOUND *csound, SCHED *p)
     for (i=4; i < argno ; i++) {
        MYFLT *arg = p->argums[i-4];
          if (csoundGetTypeForArg(arg) == &CS_VAR_TYPE_S)
-           sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
+           //sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
+           add_string_arg(s, ((STRINGDAT *)arg)->data);
          else sprintf(s, "%s %f", s,  *arg);
     }
-    csoundInputMessage(csound, s);
+    //printf("%s\n", s);
+    csoundInputMessageInternal(csound, s);
     return OK;
 }
 
diff --git a/OOps/sndinfUG.c b/OOps/sndinfUG.c
index 4447af2..a0fc409 100644
--- a/OOps/sndinfUG.c
+++ b/OOps/sndinfUG.c
@@ -53,8 +53,8 @@ static int getsndinfo(CSOUND *csound, SNDINFO *p, SF_INFO *hdr, int strin)
     sfname = soundiname;
     if (strcmp(sfname, "-i") == 0) {    /* get info on the -i    */
       if (UNLIKELY(!csound->oparms->infilename)) {  /* commandline inputfile */
-        csound->InitError(csound, Str("no infile specified in the commandline"));
-        return NOTOK;
+        return
+          csound->InitError(csound, Str("no infile specified in the commandline"));
       }
       sfname = csound->oparms->infilename;
     }
@@ -63,8 +63,7 @@ static int getsndinfo(CSOUND *csound, SNDINFO *p, SF_INFO *hdr, int strin)
       s = csoundFindInputFile(csound, sfname, "SADIR");
       if (UNLIKELY(s == NULL)) {
         /* RWD 5:2001 better to exit in this situation ! */
-        csound->InitError(csound, Str("diskinfo cannot open %s"), sfname);
-        return NOTOK;
+        return csound->InitError(csound, Str("diskinfo cannot open %s"), sfname);
       }
     }
     sfname = s;                         /* & record fullpath filnam */
@@ -128,8 +127,7 @@ static int getsndinfo(CSOUND *csound, SNDINFO *p, SF_INFO *hdr, int strin)
       }
     }
     if (UNLIKELY(sf == NULL && csFileType == CSFTYPE_UNKNOWN)) {
-      csound->InitError(csound, Str("diskinfo cannot open %s"), sfname);
-      return NOTOK;
+      return csound->InitError(csound, Str("diskinfo cannot open %s"), sfname);
     }
     if (sf != NULL) {
       csFileType = sftype2csfiletype(sfinfo.format);
@@ -291,7 +289,8 @@ int filepeak_(CSOUND *csound, SNDINFOPEAK *p, char *soundiname)
       double  *peaks;
       size_t  nBytes;
       if (UNLIKELY(channel > sfinfo.channels))
-        return csound->InitError(csound, Str("Input channel for peak exceeds number "
+        return csound->InitError(csound,
+                                 Str("Input channel for peak exceeds number "
                                 "of channels in file"));
       nBytes = sizeof(double)* sfinfo.channels;
       peaks = (double*)csound->Malloc(csound, nBytes);
diff --git a/OOps/str_ops.c b/OOps/str_ops.c
index 05ece89..496595c 100644
--- a/OOps/str_ops.c
+++ b/OOps/str_ops.c
@@ -54,6 +54,7 @@ int s_opcode(CSOUND *csound, STRGET_OP *p){
 }
 
 int s_opcode_k(CSOUND *csound, STRGET_OP *p){
+     IGN(csound);
     snprintf(p->r->data, p->r->size, "%f", *p->indx);
     return OK;
 }
@@ -207,12 +208,14 @@ int strcpy_opcode_S(CSOUND *csound, STRCPY_OP *p)
 
 int strassign_opcode_S(CSOUND *csound, STRCPY_OP *p)
 {
+   IGN(csound);
     p->r->data = p->str->data;
     p->r->size = p->str->size;
     return OK;
 }
 int strassign_opcode_Sk(CSOUND *csound, STRCPY_OP *p)
 {
+    IGN(csound);
     if (strcmp(p->r->data, p->str->data)!=0){
       p->r->data = p->str->data;
       p->r->size = p->str->size;
@@ -638,6 +641,7 @@ int strtod_opcode_p(CSOUND *csound, STRTOD_OP *p)
 
 int strtod_opcode_S(CSOUND *csound, STRSET_OP *p)
 {
+    IGN(csound);
     char    *s = NULL, *tmp;
     double  x;
     s = (char*) p->str->data;
@@ -654,6 +658,7 @@ int strtod_opcode_S(CSOUND *csound, STRSET_OP *p)
 
 int strtol_opcode_S(CSOUND *csound, STRSET_OP *p)
 {
+    IGN(csound);
     char  *s = NULL;
     int   sgn = 0, radix = 10;
     int32  x = 0L;
@@ -1126,7 +1131,7 @@ int str_from_url(CSOUND *csound, STRCPY_OP *p)
       }
       else strcpy((char*) p->r->data, corfile_body(mm));
     cleanup:
-      corfile_rm(&mm);
+      corfile_rm(csound, &mm);
       return OK;
     }
 }
diff --git a/OOps/ugens1.c b/OOps/ugens1.c
index 9e89b98..bdbe485 100644
--- a/OOps/ugens1.c
+++ b/OOps/ugens1.c
@@ -136,9 +136,8 @@ int lsgset(CSOUND *csound, LINSEG *p)
     MYFLT       **argp;
     double val;
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -387,7 +386,7 @@ int madsrset(CSOUND *csound, LINSEG *p)
 int lsgrset(CSOUND *csound, LINSEG *p)
 {
     int32 relestim;
-    if(lsgset(csound,p) == OK){
+    if (lsgset(csound,p) == OK){
     relestim = (p->cursegp + p->segsrem - 1)->cnt;
     p->xtra = relestim;  /* VL 4-1-2011 was -1, making all linsegr
                             releases in an instr => xtratim
@@ -489,9 +488,8 @@ int xsgset(CSOUND *csound, EXXPSEG *p)
     MYFLT       d, **argp, val, dur, nxtval;
     int         n=0;
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)) {
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -544,9 +542,8 @@ int xsgset_bkpt(CSOUND *csound, EXXPSEG *p)
     int         n=0;
 
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -605,9 +602,8 @@ int xsgset2b(CSOUND *csound, EXPSEG2 *p)
     int         n;
 
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -667,9 +663,8 @@ int xsgset2(CSOUND *csound, EXPSEG2 *p)   /*gab-A1 (G.Maldonado) */
     int         n;
 
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -882,9 +877,8 @@ int xsgrset(CSOUND *csound, EXPSEG *p)
     MYFLT   **argp, prvpt;
 
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     //p->xtra = -1;
@@ -1153,6 +1147,7 @@ int linen(CSOUND *csound, LINEN *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t flag=0, n, nsmps = CS_KSMPS;
     MYFLT *rs,*sg,val;
+    int    asgsg = IS_ASIG_ARG(p->sig);
 
     val = p->val;
     rs = p->rslt;
@@ -1190,13 +1185,13 @@ int linen(CSOUND *csound, LINEN *p)
 
 
     if (flag) {
-      if (IS_ASIG_ARG(p->sig))
+      if (asgsg)
           rs[n] = sg[n] * val;
       else
           rs[n] = *sg * val;
       }
     else {
-      if (IS_ASIG_ARG(p->sig))
+      if (asgsg)
         rs[n] = sg[n];
       else rs[n] = *sg;
       }
@@ -1277,7 +1272,7 @@ int linenr(CSOUND *csound, LINENR *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t flag=0, n, nsmps = CS_KSMPS;
     MYFLT *rs,*sg,val;
-
+    int    asgsg = IS_ASIG_ARG(p->sig);
     val = p->val;
     rs = p->rslt;
     sg = p->sig;
@@ -1300,13 +1295,13 @@ int linenr(CSOUND *csound, LINENR *p)
       p->val2 *= p->mlt2;
     }
     if (flag) {
-      if (IS_ASIG_ARG(p->sig))
+      if (asgsg)
           rs[n] = sg[n] * val;
       else
           rs[n] = *sg * val;
       }
     else {
-      if (IS_ASIG_ARG(p->sig)) rs[n] = sg[n];
+      if (asgsg) rs[n] = sg[n];
       else rs[n] = *sg;
       }
     }
@@ -1511,7 +1506,7 @@ int envlpx(CSOUND *csound, ENVLPX *p)
     uint32_t n, nsmps = CS_KSMPS;
     long pos, lobits, lomask;
     MYFLT      fact, *xamp, *rslt, val, asym, mlt, mlt2, v1, fract, *ftab, lodiv;
-
+    int        asgsg = IS_ASIG_ARG(p->xamp);
     xamp = p->xamp;
     rslt = p->rslt;
     val  = p->val;
@@ -1563,7 +1558,7 @@ int envlpx(CSOUND *csound, ENVLPX *p)
       }
       else val *= mlt2;
     }
-    if (IS_ASIG_ARG(p->xamp))
+    if (asgsg)
         rslt[n] = xamp[n] * fact;
     else
         rslt[n] = *xamp * fact;
@@ -1740,6 +1735,7 @@ int envlpxr(CSOUND *csound, ENVLPR *p)
     int32  rlscnt;
     long lobits, lomask, pos, phs = p->phs;
     MYFLT fact, *xamp, *rslt, val, asym, mlt, v1, fract, *ftab, lodiv;
+    int    asgsg = IS_ASIG_ARG(p->xamp);
 
     xamp = p->xamp;
     rslt = p->rslt;
@@ -1800,7 +1796,7 @@ int envlpxr(CSOUND *csound, ENVLPR *p)
       else
         fact = val *= p->mlt2;     /* else do seg 3 decay  */
 
-      if (IS_ASIG_ARG(p->xamp))
+      if (asgsg)
         rslt[n] = xamp[n] * fact;
       else
         rslt[n] = *xamp * fact;
@@ -1817,9 +1813,8 @@ int csgset(CSOUND *csound, COSSEG *p)
     double val, y1, y2;
 
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)){
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     /* count segs & alloc if nec */
@@ -1879,7 +1874,7 @@ int csgset_bkpt(CSOUND *csound, COSSEG *p)
     cnt = p->curcnt;
     nsegs = p->segsrem-1;
     segp = p->cursegp;
-    if(IS_ASIG_ARG(p->rslt))
+    if (IS_ASIG_ARG(p->rslt))
     do {
       if (UNLIKELY(cnt > segp->acnt))
         return csound->InitError(csound, Str("Breakpoint %d not valid"), bkpt);
@@ -1906,7 +1901,7 @@ int csgset_bkpt(CSOUND *csound, COSSEG *p)
 int csgrset(CSOUND *csound, COSSEG *p)
 {
     int32 relestim;
-    if(csgset(csound,p) != 0) return NOTOK;
+    if (csgset(csound,p) != 0) return NOTOK;
     relestim = (p->cursegp + p->segsrem-2)->cnt;
     p->xtra = relestim;
     if (relestim > p->h.insdshead->xtratim)
@@ -2039,7 +2034,7 @@ int cossegr(CSOUND *csound, COSSEG *p)
           //      p->segsrem, segp, segp->cnt,val1, segp->nxtpt);
           goto newi;                          /*   and set new curinc */
         }
-        if(p->segsrem == 1 && !p->h.insdshead->relesing) {
+        if (p->segsrem == 1 && !p->h.insdshead->relesing) {
           goto putk;
         }
         if (--p->curcnt <= 0) {             /*  if done cur segment */
@@ -2170,7 +2165,7 @@ int kcssegr(CSOUND *csound, COSSEG *p)
         p->y1 = val1 = val;
         goto newi;                         /*   and set new curinc */
       }
-      if(p->segsrem == 1 && !p->h.insdshead->relesing) {
+      if (p->segsrem == 1 && !p->h.insdshead->relesing) {
        goto putk;
       }
       if (--p->curcnt <= 0) {             /*  if done cur segment */
diff --git a/OOps/ugens2.c b/OOps/ugens2.c
index 735abd2..5df6885 100644
--- a/OOps/ugens2.c
+++ b/OOps/ugens2.c
@@ -94,11 +94,11 @@ int ephsor(CSOUND *csound, EPHSOR *p)
         b *= R;
         if (UNLIKELY(phase >= 1.0)) {
           phase -= 1.0;
-          b = pow(R, 1+phase);
+          b = pow(R, 1.0+phase);
         }
         else if (UNLIKELY(phase < 0.0)) {
           phase += 1.0;
-          b = pow(R, 1+phase);
+          b = pow(R, 1.0+phase);
         }
       }
     }
@@ -111,11 +111,11 @@ int ephsor(CSOUND *csound, EPHSOR *p)
         b *= R;
         if (UNLIKELY(phase >= 1.0)) {
           phase -= 1.0;
-          b =  pow(R, 1+phase);
+          b =  pow(R, 1.0+phase);
         }
         else if (UNLIKELY(phase < 0.0)) {
           phase += 1.0;
-          b = pow(R, 1+phase);
+          b = pow(R, 1.0+phase);
         }
       }
     }
@@ -158,11 +158,11 @@ int phsor(CSOUND *csound, PHSOR *p)
         incr = (double)(cps[n] * onedsr);
         rs[n] = (MYFLT)phase;
         phase += incr;
-        if (UNLIKELY((MYFLT)phase >= 1.0)) /* VL convert to MYFLT
-                                              to avoid rounded output
-                                              exceeding 1.0 on float version */
+        if (UNLIKELY((MYFLT)phase >= FL(1.0))) /* VL convert to MYFLT
+                                                  to avoid rounded output
+                                                  exceeding 1.0 on float version */
           phase -= 1.0;
-        else if (UNLIKELY((MYFLT)phase < 0.0))
+        else if (UNLIKELY((MYFLT)phase < FL(0.0)))
           phase += 1.0;
       }
     }
@@ -171,10 +171,10 @@ int phsor(CSOUND *csound, PHSOR *p)
       for (n=offset; n<nsmps; n++) {
         rs[n] = (MYFLT)phase;
         phase += incr;
-        if (UNLIKELY((MYFLT)phase >= 1.0)){
+        if (UNLIKELY((MYFLT)phase >= FL(1.0))) {
           phase -= 1.0;
         }
-        else if (UNLIKELY((MYFLT)phase < 0.0))
+        else if (UNLIKELY((MYFLT)phase < FL(0.0)))
           phase += 1.0;
       }
     }
@@ -421,7 +421,7 @@ int ktable(CSOUND *csound, TABLE   *p)
      * - already denormalised - by tblchk().
      * xbmul = 1 or table length depending on state of ixmode.  */
 
-    ndx = ( ndx * p->xbmul) + p->offset;
+    ndx = (ndx * p->xbmul) + p->offset;
 
     /* ndx now includes the offset and is ready to address the table.
      *
diff --git a/OOps/ugens2a.c b/OOps/ugens2a.c
deleted file mode 100644
index a931e49..0000000
--- a/OOps/ugens2a.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-    ugens2a.c:
-
-    Copyright (C) 2012 John ffitch
-    Based in part on code from Vercoe and Whittle
-
-    This file is part of Csound.
-
-    The Csound Library is free software; you can redistribute it
-    and/or modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    Csound is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with Csound; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-    02111-1307 USA
-*/
-
-#include "csoundCore.h" /*                              UGENS2.C        */
-#include "ugens2.h"
-#include "ugrw1.h"
-#include <math.h>
-
-#define MYFLOOR(x) (x >= FL(0.0) ? (int32)x : (int32)((double)x - 0.99999999))
-
-
-
-int itblchkw(CSOUND *csound, TABLEW *p)
-{
-    /* Get pointer to the function table data structure of the table
-     * number specified in xfn. Return 0 if it cannot be found.
-     *
-     * csoundFTFind() generates an error message if the table cannot be
-     * found. This works OK at init time.  It also deactivates the
-     * instrument.
-     *
-     * It also checks for numbers < 0, and table 0 is never valid, so we
-     * do not need to check here for the table number being < 1.  */
-
-    if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->xfn)) == NULL))
-      return NOTOK;
-    /* Although TABLEW has an integer variable for the table number
-     * (p->pfn) we do not need to * write it.  We know that the * k
-     * and a rate functions * which will follow will not * be
-     * expecting a changed * table number.
-     *
-     * p->pfn exists only for checking * table number changes for
-     * functions * which are expecting a k rate * table number.  */
-
-    /* Set denormalisation factor to 1 or table length, depending on
-     * the state of ixmode.  1L means a 32 bit 1.  */
-    /* JPff.............................^...not so; could be any length */
-    if (*p->ixmode)
-            p->xbmul = p->ftp->flen;
-    else    p->xbmul = 1L;
-    /* Multiply the ixoff value by the xbmul denormalisation
-     * factor and then check it is between 0 and the table length.  */
-      if (UNLIKELY((p->offset = p->xbmul * *p->ixoff) < FL(0.0)
-                   || p->offset > p->ftp->flen)) {
-      return csound->InitError(csound,
-                               Str("Table write offset %f < 0 or > tablelength"),
-                               p->offset);
-    }
-    p->iwgm   = (int)*p->iwgmode;
-    return OK;
-}
-
-
-int pktablew(CSOUND *, TABLEW*);
-int pitablew(CSOUND *csound, TABLEW *p)
-{
-    if (LIKELY(itblchkw(csound, p) == OK))
-      return pktablew(csound, p);
-    return NOTOK;
-}
-
-/*---------------------------------------------------------------------------*/
-
-/* pktablew is called with p pointing to the TABLEW data structure -
- * which contains the input arguments.  */
-
-int pktablew(CSOUND *csound, TABLEW   *p)
-{
-/* Pointer to data structure for accessing the table we will be
- * writing to.
- */
-    FUNC        *ftp;
-    int32        indx, length;
-    MYFLT       ndx;            /*  for calculating index of read.  */
-    MYFLT       *ptab;          /* Where we will write */
-
-    /*-----------------------------------*/
-    /* Assume that TABLEW has been set up correctly.  */
-
-    ftp    = p->ftp;
-    ndx    = *p->xndx;
-    length = ftp->flen;
-    /* Multiply ndx by denormalisation factor.  and add in the
-     * offset - already denormalised - by tblchkw().
-     * xbmul = 1 or table length depending on state of ixmode.  */
-
-    ndx = (ndx * p->xbmul) + p->offset;
-
-    /* ndx now includes the offset and is ready to address the table.
-     * However we have three modes to consider:
-     * igwm = 0     Limit mode.
-     *        1     Wrap mode.
-     *        2     Guardpoint mode.
-     */
-    if (p->iwgm == 0) {
-      /* Limit mode - when igmode = 0.
-       *
-       * Limit the final index to 0 and the last location in the table.
-       */
-      indx = (int32) MYFLOOR(ndx); /* Limit to (table length - 1) */
-      if (UNLIKELY(indx > length - 1))
-        indx = length - 1;      /* Limit the high values. */
-      else if (UNLIKELY(indx < 0L)) indx = 0L; /* limit negative values to zero. */
-    }
-    /* Wrap and guard point mode.
-     * In guard point mode only, add 0.5 to the index. */
-    else {
-      if (p->iwgm == 2) ndx += FL(0.5);
-      indx = (int32) MYFLOOR(ndx);
-
-      /* Both wrap and guard point mode.
-       * The following code uses an AND with an integer like 0000 0111 to wrap
-       * the current index within the range of the table. */
-      if (UNLIKELY(indx>=length)) indx %= length;
-      else if (UNLIKELY(indx<0)) indx = length-(-indx)%length;
-    }
-                                /* Calculate the address of where we
-                                 * want to write to, from indx and the
-                                 * starting address of the table.
-                                 */
-    ptab = ftp->ftable + indx;
-    *ptab = *p->xsig;           /* Write the input value to the table. */
-                                /* If this is guard point mode and we
-                                 * have just written to location 0,
-                                 * then also write to the guard point.
-                                 */
-    if ((p->iwgm == 2) && indx == 0) { /* Fix -- JPff 2000/1/5 */
-      ptab += ftp->flen;
-      *ptab = *p->xsig;
-    }
-    return OK;
-}
-
-/*---------------------------------------------------------------------------*/
-
-/* tablew() is similar to ktablew()  above, except that it processes
- * two arrays of input values and indexes.  These arrays are ksmps long. */
-int ptablew(CSOUND *csound, TABLEW *p)
-{
-    FUNC        *ftp;   /* Pointer to function table data structure. */
-    MYFLT       *psig;  /* Array of input values to be written to table. */
-    MYFLT       *pxndx; /* Array of input index values */
-    MYFLT       *ptab;  /* Pointer to start of table we will write. */
-    MYFLT       *pwrite;/* Pointer to location in table where we will write */
-    int32        indx;   /* Used to read table. */
-    int32        length; /* Length of table */
-    int         liwgm;          /* Local copy of iwgm for speed */
-    uint32_t koffset = p->h.insdshead->ksmps_offset;
-    uint32_t early  = p->h.insdshead->ksmps_no_end;
-    uint32_t n, nsmps = CS_KSMPS;
-    MYFLT       ndx, xbmul, offset;
-                                /*-----------------------------------*/
-    /* Assume that TABLEW has been set up correctly. */
-
-    ftp    = p->ftp;
-    psig   = p->xsig;
-    pxndx  = p->xndx;
-    ptab   = ftp->ftable;
-    length = ftp->flen;
-    liwgm  = p->iwgm;
-    xbmul  = (MYFLT)p->xbmul;
-    offset = p->offset;
-                /* Main loop - for the number of a samples in a k cycle. */
-    nsmps -= early;
-    for (n=koffset; n<nsmps; n++) {
-      /* Read in the next raw index and increment the pointer ready for the
-         next cycle.  Then multiply the ndx by the denormalising factor and
-         add in the offset.  */
-      ndx = (pxndx[n] * xbmul) + offset;
-      if (liwgm == 0) {         /* Limit mode - when igmode = 0. */
-        indx = (int32) MYFLOOR(ndx);
-        if (UNLIKELY(indx > length - 1)) indx = length - 1;
-        else if (UNLIKELY(indx < 0L)) indx = 0L;
-      }
-      else {
-        if (liwgm == 2) ndx += FL(0.5);
-        indx = (int32) MYFLOOR(ndx);
-        /* Both wrap and guard point mode. */
-        if (UNLIKELY(indx>=length)) indx %= length;
-        else if (UNLIKELY(indx<0)) indx = length-(-indx)%length;
-      }
-      pwrite = ptab + indx;
-      *pwrite = psig[n];
-                                        /* If this is guard point mode and we
-                                         * have just written to location 0,
-                                         * then also write to the guard point.
-                                         */
-      if ((liwgm == 2) && indx == 0) {  /* Fix -- JPff 2000/1/5 */
-                                        /* Note that since pwrite is a pointer
-                                         * to a float, adding length to it
-                                         * adds (4 * length) to its value since
-                                         * the length of a float is 4 bytes.
-                                         */
-        pwrite += length;
-                                        /* Decrement psig to make it point
-                                         * to the same input value.
-                                         * Write to guard point.
-                                         */
-        *pwrite = psig[n];
-      }
-    }
-    return OK;
-}
diff --git a/OOps/ugens3.c b/OOps/ugens3.c
index 3238596..888d1e3 100644
--- a/OOps/ugens3.c
+++ b/OOps/ugens3.c
@@ -220,7 +220,7 @@ int losset(CSOUND *csound, LOSC *p)
         p->cpscvt = FL(261.62561); /* Middle C */
         csound->Warning(csound, Str("no legal base frequency"));
       }
-      ///printf("****cpscvt = %g\n", p->cpscvt);
+      //printf("****cpscvt = %g\n", p->cpscvt);
       if ((p->mod1 = (int16) *p->imod1) < 0) {
         if (UNLIKELY((p->mod1 = ftp->loopmode1) == 0)) {
           csound->Warning(csound, Str("loscil: sustain defers to "
@@ -236,7 +236,8 @@ int losset(CSOUND *csound, LOSC *p)
         p->end1 = *p->iend1;
         if (!p->beg1 && !p->end1)
           /* default to looping the whole sample */
-          p->end1 = (p->mod1 ? (MYFLT)maxphs : (MYFLT)ftp->flenfrms); /* These are the same!! */
+          p->end1 =            /* These are the same!! */
+            (p->mod1 ? (MYFLT)maxphs : (MYFLT)ftp->flenfrms);
         else if (UNLIKELY(p->beg1 < 0 ||
                           p->end1 > maxphs ||
                           p->beg1 >= p->end1)) {
@@ -388,7 +389,7 @@ int loscil(CSOUND *csound, LOSC *p)
     FUNC    *ftp;
     MYFLT   *ar1, *ar2, *ftbl, *xamp;
     MYFLT    phs;
-    int32    inc, beg, end;
+    MYFLT    inc, beg, end;
     uint32_t n = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t nsmps = CS_KSMPS;
@@ -397,7 +398,7 @@ int loscil(CSOUND *csound, LOSC *p)
 
     ftp = p->ftp;
     ftbl = ftp->ftable;
-    if ((inc = (int32)(*p->kcps * p->cpscvt)) < 0)
+    if ((inc = (*p->kcps * p->cpscvt)) < 0)
       inc = -inc;
     xamp = p->xamp;
     xx = *xamp;
@@ -505,11 +506,14 @@ int loscil(CSOUND *csound, LOSC *p)
  phsout:
     p->lphs = phs;
 put0:
-    printf("****put0\n");
-     memset(&ar1[n], '\0', sizeof(MYFLT)*(nsmps-n));
+    //printf("****put0\n");
+    memset(&ar1[n], '\0', sizeof(MYFLT)*(nsmps-n));
     return OK;
 
  phsck2:
+    /*VL increment for stereo */
+    inc *= 2;
+    end *= 2;
     if (phs >= end && p->curmod != 3)
       goto put0s;                               /* for STEREO:  */
     switch (p->curmod) {
@@ -599,7 +603,7 @@ int loscil3(CSOUND *csound, LOSC *p)
     FUNC    *ftp;
     MYFLT   *ar1, *ar2, *ftbl, *xamp;
     MYFLT    phs;
-    int32    inc, beg, end;
+    MYFLT    inc, beg, end;
     uint32_t n = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t nsmps = CS_KSMPS;
@@ -608,7 +612,7 @@ int loscil3(CSOUND *csound, LOSC *p)
 
     ftp = p->ftp;
     ftbl = ftp->ftable;
-    if ((inc = (int32)(*p->kcps * p->cpscvt)) < 0)
+    if ((inc = (*p->kcps * p->cpscvt)) < 0)
       inc = -inc;
     xamp = p->xamp;
     xx = *xamp;
@@ -719,6 +723,9 @@ int loscil3(CSOUND *csound, LOSC *p)
     return OK;
 
  phsck2:
+    /*VL increment for stereo */
+    inc *= 2;
+    end *= 2;
     if (UNLIKELY(phs >= end && p->curmod != 3))
       goto put0s;                               /* for STEREO:  */
     switch (p->curmod) {
@@ -832,8 +839,7 @@ static int adset_(CSOUND *csound, ADSYN *p, int stringname)
       /* readfile if reqd */
       if (UNLIKELY((mfp = ldmemfile2withCB(csound, filnam,
                                            CSFTYPE_HETRO, NULL)) == NULL)) {
-        csound->InitError(csound, Str("ADSYN cannot load %s"), filnam);
-        return NOTOK;
+        return csound->InitError(csound, Str("ADSYN cannot load %s"), filnam);
       }
       p->mfp = mfp;                         /*   & record         */
     }
@@ -862,8 +868,7 @@ static int adset_(CSOUND *csound, ADSYN *p, int stringname)
           ptlfp->phs = 0;                /*  and clr the phase */
           break;
         default:
-          csound->InitError(csound, Str("illegal code %d encountered"), val);
-          return NOTOK;
+          return csound->InitError(csound, Str("illegal code %d encountered"), val);
         }
       }
     } while (adp < endata);
diff --git a/OOps/ugens4.c b/OOps/ugens4.c
index 64357ea..0dce502 100644
--- a/OOps/ugens4.c
+++ b/OOps/ugens4.c
@@ -49,10 +49,10 @@ int buzz(CSOUND *csound, BUZZ *p)
     MYFLT       *ar, *ampp, *cpsp, *ftbl;
     int32       phs, inc, lobits, dwnphs, tnp1, lenmask;
     MYFLT       sicvt2, over2n, scal, num, denom;
-    uint32_t offset = p->h.insdshead->ksmps_offset;
-    uint32_t early  = p->h.insdshead->ksmps_no_end;
-    uint32_t n, nsmps = CS_KSMPS;
-    int32    nn;
+    uint32_t    offset = p->h.insdshead->ksmps_offset;
+    uint32_t    early  = p->h.insdshead->ksmps_no_end;
+    uint32_t    n, nsmps = CS_KSMPS;
+    int32       nn;
 
     ftp = p->ftp;
     if (UNLIKELY(ftp==NULL)) goto err1; /* RWD fix */
@@ -469,7 +469,7 @@ int rndset(CSOUND *csound, RAND *p)
       if (*p->iseed > FL(1.0)) {    /* As manual suggest seed in range [0,1] */
         uint32 seed;         /* I reinterpret >1 as a time seed */
         seed = csound->GetRandomSeedFromTime();
-        csound->Warning(csound, Str("Seeding from current time %lu\n"), seed);
+        csound->Warning(csound, Str("Seeding from current time %u\n"), seed);
         if (!p->new) {
           p->rand = (int32) (seed & 0xFFFFUL);
         }
@@ -580,7 +580,7 @@ int rhset(CSOUND *csound, RANDH *p)
       if (*p->iseed > FL(1.0)) {    /* As manual suggest sseed in range [0,1] */
         uint32 seed;         /* I reinterpret >1 as a time seed */
         seed = csound->GetRandomSeedFromTime();
-        csound->Warning(csound, Str("Seeding from current time %lu\n"), seed);
+        csound->Warning(csound, Str("Seeding from current time %u\n"), seed);
         if (!p->new) {
           p->rand = (int32) (seed & 0xFFFFUL);
           p->num1 = (MYFLT) ((int16) p->rand) * DV32768;
@@ -686,7 +686,7 @@ int riset(CSOUND *csound, RANDI *p)
       if (*p->iseed > FL(1.0)) { /* As manual suggest sseed in range [0,1] */
         uint32 seed;             /* I reinterpret >1 as a time seed */
         seed = csound->GetRandomSeedFromTime();
-        csound->Warning(csound, Str("Seeding from current time %lu\n"), seed);
+        csound->Warning(csound, Str("Seeding from current time %u\n"), seed);
         if (!p->new) {
           int16 rand = (int16)seed;
 /*           int16 ss = rand; */
diff --git a/OOps/ugens5.c b/OOps/ugens5.c
index 372621b..591eecd 100644
--- a/OOps/ugens5.c
+++ b/OOps/ugens5.c
@@ -289,6 +289,9 @@ int rsnset(CSOUND *csound, RESON *p)
     p->prvcf = p->prvbw = -100.0;
     if (!(*p->istor))
       p->yt1 = p->yt2 = 0.0;
+    p->asigf = IS_ASIG_ARG(p->kcf);
+    p->asigw = IS_ASIG_ARG(p->kbw);
+
     return OK;
 }
 
@@ -340,6 +343,8 @@ int reson(CSOUND *csound, RESON *p)
     MYFLT       *ar, *asig;
     double      c3p1, c3t4, omc3, c2sqr;
     double      yt1, yt2, c1 = p->c1, c2 = p->c2, c3 = p->c3;
+    int         asigf = p->asigf;
+    int         asigw = p->asigw;
 
     asig = p->asig;
     ar = p->ar;
@@ -351,8 +356,8 @@ int reson(CSOUND *csound, RESON *p)
     yt1 = p->yt1; yt2 = p->yt2;
     for (n=offset; n<nsmps; n++) {
       double yt0;
-      MYFLT cf = IS_ASIG_ARG(p->kcf) ? p->kcf[n] : *p->kcf;
-      MYFLT bw = IS_ASIG_ARG(p->kbw) ? p->kbw[n] : *p->kbw;
+      MYFLT cf = asigf ? p->kcf[n] : *p->kcf;
+      MYFLT bw = asigw ? p->kbw[n] : *p->kbw;
       if (cf != (MYFLT)p->prvcf) {
         p->prvcf = (double)cf;
         p->cosf = cos(cf * (double)(csound->tpidsr));
@@ -417,6 +422,8 @@ int resonx(CSOUND *csound, RESONX *p)   /* Gabriel Maldonado, modified  */
     MYFLT       *ar;
     double      c3p1, c3t4, omc3, c2sqr;
     double      *yt1, *yt2, c1,c2,c3;
+    int asgf = IS_ASIG_ARG(p->kcf);
+    int asgw = IS_ASIG_ARG(p->kbw);
 
     ar   = p->ar;
     c1   = p->c1;
@@ -434,8 +441,8 @@ int resonx(CSOUND *csound, RESONX *p)   /* Gabriel Maldonado, modified  */
     for (j=0; j< p->loop; j++) {
       for (n=offset; n<nsmps; n++) {
         double x;
-        MYFLT cf = IS_ASIG_ARG(p->kcf) ? p->kcf[n] : *p->kcf;
-        MYFLT bw = IS_ASIG_ARG(p->kbw) ? p->kbw[n] : *p->kbw;
+        MYFLT cf = asgf ? p->kcf[n] : *p->kcf;
+        MYFLT bw = asgw ? p->kbw[n] : *p->kbw;
         if (cf != (MYFLT)p->prvcf) {
           p->prvcf = (double)cf;
           p->cosf = cos(cf * (double)(csound->tpidsr));
@@ -673,7 +680,7 @@ int lprdset_(CSOUND *csound, LPREAD *p, int stringname)
     p->lastfram16 = (((totvals - p->nvals) / p->nvals) << 16) - 1;
     if (UNLIKELY(csound->oparms->odebug))
       csound->Message(csound, Str(
-                 "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"),
+                 "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"),
              p->npoles, p->nvals, totvals, p->lastfram16);
  lpend:
     p->lastmsg = 0;
@@ -1322,7 +1329,7 @@ int balance(CSOUND *csound, BALANCE *p)
     }
     p->prvq = q;
     p->prvr = r;
-    if (q != 0.0)
+    if (LIKELY(q != 0.0))
       a = sqrt(r/q);
     else
       a = sqrt(r);
diff --git a/OOps/ugens6.c b/OOps/ugens6.c
index 14f3d36..3a7270a 100644
--- a/OOps/ugens6.c
+++ b/OOps/ugens6.c
@@ -260,7 +260,7 @@ int delset(CSOUND *csound, DELAY *p)
       p->npts = npts;
     }
     else if (!(*p->istor)) {                    /* else if requested */
-      memset(auxp, 0, npts*sizeof(MYFLT));
+      memset(auxp, '\0', npts*sizeof(MYFLT));
     }
     p->curp = (MYFLT *) auxp;
 
@@ -390,8 +390,8 @@ int delay(CSOUND *csound, DELAY *p)
 
     return OK;
  err1:
-      return csound->PerfError(csound, p->h.insdshead,
-                               Str("delay: not initialised"));
+    return csound->PerfError(csound, p->h.insdshead,
+                             Str("delay: not initialised"));
 }
 
 int delayr(CSOUND *csound, DELAYR *p)
@@ -1081,7 +1081,7 @@ int rvbset(CSOUND *csound, REVERB *p)
       p->adr5 = p->p5 = p->adr4 + *sizp++;
       p->adr6 = p->p6 = p->adr5 + *sizp++;
       if (UNLIKELY(p->adr6 + *sizp != (MYFLT *) p->auxch.endp)) {
-        csound->InitError(csound, Str("revlpsiz inconsistent\n"));
+        return csound->InitError(csound, Str("revlpsiz inconsistent\n"));
       }
       p->prvt = FL(0.0);
     }
@@ -1107,7 +1107,7 @@ int reverb(CSOUND *csound, REVERB *p)
     uint32_t n, nsmps = CS_KSMPS;
 
     if (UNLIKELY(p->auxch.auxp==NULL)) goto err1; /* RWD fix */
-    if (p->prvt != *p->krvt) {
+    if (UNLIKELY(p->prvt != *p->krvt)) {          /* People rarely change rvt */
       const MYFLT *lptimp = revlptimes;
       MYFLT       logdrvt = log001 / *p->krvt;
       c1=p->c1 = EXP(logdrvt * *lptimp++);
@@ -1116,6 +1116,7 @@ int reverb(CSOUND *csound, REVERB *p)
       c4=p->c4 = EXP(logdrvt * *lptimp++);
       c5=p->c5 = EXP(logdrvt * *lptimp++);
       c6=p->c6 = EXP(logdrvt * *lptimp++);
+      p->prvt = *p->krvt;       /* JPff optimisation?? */
     }
     else {
       c1=p->c1;
@@ -1172,7 +1173,7 @@ int reverb(CSOUND *csound, REVERB *p)
     return OK;
  err1:
     return csound->PerfError(csound, p->h.insdshead,
-                             Str("reverb: not intialised"));
+                             Str("reverb: not initialised"));
 }
 
 int panset(CSOUND *csound, PAN *p)
diff --git a/OOps/ugrw1.c b/OOps/ugrw1.c
index 05c39cf..73f7b2a 100644
--- a/OOps/ugrw1.c
+++ b/OOps/ugrw1.c
@@ -959,7 +959,12 @@ int printksset_S(CSOUND *csound, PRINTKS *p){
 }
 
 int printksset(CSOUND *csound, PRINTKS *p){
-    return printksset_(csound, p, get_arg_string(csound, *p->ifilcod));
+    char* arg_string = get_arg_string(csound, *p->ifilcod);
+
+    if (arg_string == NULL) {
+        return csoundInitError(csound, Str("null string\n"));
+    }
+    return printksset_(csound, p, arg_string);
 }
 
 
@@ -1058,7 +1063,8 @@ int printksset(CSOUND *csound, PRINTKS *p){
 /* VL - rewritten 1/16
    escaping %% correctly now.
  */
-static void sprints(char *outstring,  char *fmt, MYFLT **kvals, int32 numVals){
+static int sprints(char *outstring,  char *fmt, MYFLT **kvals, int32 numVals)
+{
     char tmp[8],cc;
     int j = 0;
     int len = 8192;
@@ -1088,6 +1094,7 @@ static void sprints(char *outstring,  char *fmt, MYFLT **kvals, int32 numVals){
           tmp[n] = *(fmt+n);
           tmp[n+1] = '\0';
           n++;
+          if (j>=numVals) return NOTOK;
           switch (check) {
           case 'd':
           case 'i':
@@ -1121,6 +1128,7 @@ static void sprints(char *outstring,  char *fmt, MYFLT **kvals, int32 numVals){
         len--;
       }
     }
+    return OK;
 }
 
 
@@ -1165,7 +1173,10 @@ int printks(CSOUND *csound, PRINTKS *p)
       /* Do the print cycle. */
       //string[0]='\0';           /* incase of empty string */
       memset(string,0,8192);
-      sprints(string, p->txtstring, p->kvals, p->INOCOUNT-2);
+      if (sprints(string, p->txtstring, p->kvals, p->INOCOUNT-2)==NOTOK)
+        return
+          csound->PerfError(csound,  p->h.insdshead,
+                            Str("Insufficient arguments in formatted printing"));
       csound->MessageS(csound, CSOUNDMSG_ORCH, "%s", string);
     }
     return OK;
@@ -1183,7 +1194,10 @@ int printsset(CSOUND *csound, PRINTS *p)
     pk.ptime = &ptime;
     printksset(csound, &pk);
     memset(string,0,8192);
-    sprints(string, pk.txtstring, p->kvals, p->INOCOUNT-1);
+    if (sprints(string, pk.txtstring, p->kvals, p->INOCOUNT-1)==NOTOK)
+        return
+          csound->InitError(csound,
+                            Str("Insufficient arguments in formatted printing"));
     csound->MessageS(csound, CSOUNDMSG_ORCH, "%s", string);
     return OK;
 }
@@ -1200,7 +1214,10 @@ int printsset_S(CSOUND *csound, PRINTS *p)
     printksset_S(csound, &pk);
     if (strlen(pk.txtstring) < 8191){
       memset(string,0,8192);
-    sprints(string, pk.txtstring, p->kvals, p->INOCOUNT-1);
+    if (sprints(string, pk.txtstring, p->kvals, p->INOCOUNT-1)==NOTOK)
+        return
+          csound->InitError(csound,
+                            Str("Insufficient arguments in formatted printing"));
     csound->MessageS(csound, CSOUNDMSG_ORCH, "%s", string);
     } else {
       csound->Warning(csound,
@@ -1241,8 +1258,8 @@ int peaka(CSOUND *csound, PEAK *p)
     pp = *peak;
     if (UNLIKELY(early)) nsmps -= early;
     for (n=offset;n<nsmps;n++) {
-      if (pp < FABS(asigin[n]))
-        pp = FABS(asigin[n]);
+      MYFLT x = FABS(asigin[n]);
+      if (pp < x) pp = x;
     }
     *peak = pp;
     return OK;
@@ -1302,7 +1319,10 @@ int printk3(CSOUND *csound, PRINTK3 *p)
       MYFLT *vv[1];
       vv[0] = &value;
       buff[0] = '\0';
-      sprints(buff, p->sarg, vv, 1);
+      if (sprints(buff, p->sarg, vv, 1)==NOTOK)
+        return
+          csound->PerfError(csound,  p->h.insdshead,
+                            Str("Insufficient arguments in formatted printing"));
       csound->MessageS(csound, CSOUNDMSG_ORCH, "%s", buff);
       p->oldvalue = value;
     }
diff --git a/OOps/ugrw2.c b/OOps/ugrw2.c
deleted file mode 100644
index 653fb88..0000000
--- a/OOps/ugrw2.c
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
-    ugrw2.c:
-
-    Copyright (C) 1995, 1998 Robin Whittle, John ffitch
-
-    This file is part of Csound.
-
-    The Csound Library is free software; you can redistribute it
-    and/or modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    Csound is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with Csound; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-    02111-1307 USA
-*/
-
-/* These files are based on Robin Whittle's
- *       ugrw2.c and ugrw2.h of 9 September 1995
- *
- * In February 1997, John Fitch reformatted the comments.
- * In February 1998, John Fitch modified the code wrt types so it
- * compiled with MicroSoft C without warnings.
-*
- *
- * Copyright notice - Robin Whittle  25 February 1997
- *
- * Documentation files, and the original .c and .h files, with more
- * spaced out comments, are available from http://www.firstpr.com.au
- *
- * The code in both ugrw1 and ugrw2 is copyright Robin Whittle.
- * Permission is granted to use this in whole or in part for any
- * purpose, provided this copyright notice remains intact and
- * any alterations to the source code, including comments, are
- * clearly indicated as such.
- */
-#if SOME_FINE_DAY
-
-#include "ugrw2.h"
-#include <math.h>
-
-/*
- *      Unit generators by Robin Whittle        9 September 1995
- *      UGRW2.H contains data structures.
- *
- *      Ugens:          Subroutines:    Data structure:
- *
- *      kport           kporset()       KPORT
- *                      kport()         "
- *
- *      This is the same as the k rate port (portamento) ugen in ugens5.c,
- *      except the half time is a k rate variable, rather than an i rate.
- *
- *      Ugens:          Subroutines:    Data structure:
- *
- *      ktone           ktonset()       KTONE
- *                      ktone()         "
- *      katone          katone()        "
- *
- *      kreson          krsnset()       KRESON
- *                      kreson()        "
- *                      katone()        "
- *
- *      These are the same as tone, atone, reson and areson filters as per
- *      the Csound manual, except they operate with k rate data rather than
- *      a rate.
- *
- *      The code for all the above has been adapted from a commented version
- *      of ugens5.c.
- *
- *
- *      Ugens:          Subroutines:    Data structure:
- *
- *      limit           limit()         LIMIT
- *      ilimit          klimit()
- *
- *      limit sets upper and lower limits on k or a rate variables, where
- *      the limits are set by k rate variables.  ilimit does the same for
- *      init time variables.
- *
- */
-
-/****************************************************************************
- *
- *      Filters - syntax
- *
-*** kr  kport   ksig, khtime [,isig]
- *
- * ksig         k rate output.
- *
- * khtime       k rate time for output ot reach halfway to input.
- *
- * isig         i time, initialisation for internal state.
- *
- *
-*** kr  ktone   ksig, khp [,istor]
-*** kr  katone  ksig, khp [,istor]
- *
- * ksig         k rate output.
- *
- * khp          k rate frequency at which half power is reached.
- *
- * istor        i time, initialise internal state. Default 0 = clear.
- *
- *
-*** kr  kreson  ksig, kcf, kbw [, iscl] [,istor]
-*** kr  kareson ksig, kcf, kbw [, iscl] [,istor]
- *
- * ksig         k rate output.
- *
- * kcf          k rate centre frequency.
- *
- * kbw          k rate bandwidth - between lower and upper half power points.
- *
- * iscl         i time, 0 = no gain change (default or a rate reson, areson
- *                                          but leads to huge signals.)
- *                      1 = gain at centre = 1 (default in kreson, kareson)
- *                      2 = overal RMS gain = 1 (What exactly does this mean?)
- *
- * istor        i time, initialise internal state. Default 0 = clear.
- *
- *
- *>>>   Add these to the end of opcodlst in entry.c.
- *
- * opcode   dspace      thread  outarg  inargs   isub    ksub    asub
- *
-
-{ "kport",   S(KPORT),  3,      "k",    "kko",  kporset, kport, NULL    },
-{ "ktone",   S(KTONE),  3,      "k",    "kko",  ktonset, ktone, NULL    },
-{ "katone",  S(KTONE),  3,      "k",    "kko",  ktonset, katone, NULL   },
-{ "kreson",  S(KRESON), 3,      "k",    "kkkpo",krsnset, kreson, NULL   },
-{ "kareson", S(KRESON), 3,      "k",    "kkkpo",krsnset, kareson, NULL  },
-
- *
- */
-
-/****************************************************************************
- *
- *      limit, ilimit - syntax
- *
-*** ir  ilimit  isig, ilow, ihigh
- *
-*** kr  limit   ksig, klow, khigh
-*** ar  limit   asig, klow, khigh
- *
- *      These set lower and upper limits on the xsig value they process.
- *
- *      If xhigh is lower than xlow, then the output will be the average of
- *      the two - it will not be affected by xsig.
- *
- */
-
-/*---------------------------------------------------------------------------*/
-
-/* kport = portamento
- * k rate low pass filter  with half time controlled by a k rate value.  */
-int kporset(CSOUND *csound, KPORT *p)
-{
-    /* Set internal state to last input variable, but only if it is not
-     * negative. (Why?) -- because that is how ugens without re-init is done
-     * everywhere in Csound -- JPff */
-    if (UNLIKELY(*p->isig >= 0))
-      p->yt1 = *p->isig;
-    p->prvhtim = -FL(100.0);
-    return OK;
-}
-
-/*-----------------------------------*/
-
-/* kport function.               */
-
-int kport(CSOUND *csound, KPORT *p)
-{
-    /* Set up variables local to this instance of the port ugen, if
-     * khtim has changed.
-     *
-     * onedkr = one divided by k rate.
-     *
-     * c2 = sqrt 1 / kr * half time
-     * c1 = 1 - c2
-     *
-     */
-    /* This previous comment is WRONG;  do not be misled -- JPff */
-
-    if (UNLIKELY(p->prvhtim != *p->khtim)) {
-      p->c2 = POWER(FL(0.5), CS_ONEDKR / *p->khtim);
-      p->c1 = FL(1.0) - p->c2;
-      p->prvhtim = *p->khtim;
-    }
-    /* New state =   (c2 * old state) + (c1 * input value)       */
-    *p->kr = p->yt1 = p->c1 * *p->ksig + p->c2 * p->yt1;
-    return OK;
-}
-
-/*****************************************************************************/
-
-/* ktone = low pass single pole  filter.  ktonset function.      */
-int ktonset(CSOUND *csound, KTONE *p)
-{
-    /* Initialise internal variables to  0 or 1.                 */
-    p->c1 = p->prvhp = FL(0.0);
-    p->c2 = FL(1.0);
-    if (LIKELY(!(*p->istor)))
-      p->yt1 = FL(0.0);
-    return OK;
-}
-/*-----------------------------------*/
-
-/* ktone function                                */
-int ktone(CSOUND *csound, KTONE *p)
-{
-    /* If the current frequency is different from before, then calculate
-     * new values for c1 and c2.                                 */
-    if (UNLIKELY(*p->khp != p->prvhp)) {
-      MYFLT b;
-      p->prvhp = *p->khp;
-      /* b = cos ( 2 * pi * freq / krate)
-       * c2 = b - sqrt ( b squared - 1)
-       * c1 = 1 - c2
-       * tpidsr = 2 * pi / a sample rate
-       * so tpidsr * ksmps = 2 * pi / k rate.
-       * We need this since we are filtering at k rate, not a rate. */
-    /* This previous comment is WRONG;  do not be misled -- JPff */
-
-      b = FL(2.0) - COS(*p->khp * csound->tpidsr * CS_KSMPS);
-      p->c2 = b - SQRT(b * b - FL(1.0));
-      p->c1 = FL(1.0) - p->c2;
-    }
-    /* Filter calculation on each a rate sample:
-     * New state =   (c2 * old state) + (c1 * input value)               */
-    *p->kr = p->yt1 = p->c1 * *p->ksig + p->c2 * p->yt1;
-    return OK;
-}
-
-/*-----------------------------------*/
-
-/* katone = high pass single pole filter.   Uses toneset to set up its
- * variables. Identical to tone, except for the output calculation.      */
-int katone(CSOUND *csound, KTONE *p)
-{
-    if (UNLIKELY(*p->khp != p->prvhp)) {
-      MYFLT b;
-      p->prvhp = *p->khp;
-      b = FL(2.0) - COS(*p->khp * csound->tpidsr * CS_KSMPS);
-      p->c2 = b - SQRT(b * b - FL(1.0));
-      p->c1 = FL(1.0) - p->c2;
-    }
-    /* Output = c2 * (prev state + input)
-     * new state = prev state - input            */
-
-    *p->kr = p->yt1 = p->c2 * (p->yt1 + *p->ksig);
-    p->yt1 -= *p->ksig;         /* yt1 contains yt1-xt1 */
-    return OK;
-}
-
-/*****************************************************************************/
-
-/* kreson = resonant filter                      */
-
-int krsnset(CSOUND *csound, KRESON *p)
-{
-    /* Check scale = 0, 1 or 2.  */
-    int scale;
-
-    p->scale = scale = (int)*p->iscl;
-    if (UNLIKELY(scale && scale != 1 && scale != 2)) {
-      return csound->InitError(csound, Str("Illegal resonk iscl value, %f"),
-                                       *p->iscl);
-    }
-    /* Put dummy values into previous centre freq and bandwidth.         */
-    p->prvcf = p->prvbw = -FL(100.0);
-    /* Set intial state to 0 if istor = 0.       */
-    if (LIKELY(!(*p->istor)))
-      p->yt1 = p->yt2 = FL(0.0);
-    return OK;
-}
-
-/*-----------------------------------*/
-
-/* kreson                        */
-int kreson(CSOUND *csound, KRESON *p)
-{
-    int flag = 0; /* Set to 1 if either centre freq or bandwidth changed */
-    MYFLT       c3p1, c3t4, omc3, c2sqr;
-
-    /* Calculations for centre frequency if it changes.
-     * cosf = cos (2pi * freq / krate)                   */
-    if (UNLIKELY(*p->kcf != p->prvcf)) {
-      p->prvcf = *p->kcf;
-      p->cosf = COS(*p->kcf * csound->tpidsr * CS_KSMPS);
-      flag = 1;
-    }
-
-    /* Calculations for bandwidth if it changes.
-     * c3 = exp (-2pi * bwidth / krate)                  */
-    if (UNLIKELY(*p->kbw != p->prvbw)) {
-      p->prvbw = *p->kbw;
-      p->c3 = EXP(*p->kbw * csound->mtpdsr * CS_KSMPS);
-      flag = 1;
-    }
-    /* Final calculations for the factors
-     * for the filter. Each multiplies
-     * something and sums it to be the
-     * output, and the input to the first
-     * delay.
-     * c1       Gain for input signal.
-     * c2       Gain for output of delay 1.
-     * c3       Gain for output of delay 2.
-     */
-
-    if (UNLIKELY(flag)) {
-      c3p1 = p->c3 + FL(1.0);
-      c3t4 = p->c3 * FL(4.0);
-      omc3 = 1 - p->c3;
-
-      /* c2= (c3 * 4 * cosf / (c3 + 1)      */
-      p->c2 = c3t4 * p->cosf / c3p1;            /* -B, so + below */
-      c2sqr = p->c2 * p->c2;
-
-      if (p->scale == 1)
-        /* iscl = 1. Make gain at centre = 1.
-         * c1= (1 - c3) * sqrt( 1 - (c2 * c2 / (c3 * 4) )
-         */
-        p->c1 = omc3 * SQRT(FL(1.0) - c2sqr / c3t4);
-      else if (p->scale == 2)
-        /* iscl = 2 Higher gain, so "RMS gain" = 1.
-         * c1= sqrt((c3 + 1)*(c3 + 1) - cs*c2) * (1 - c3) / (c3 + 1)
-         * (I am not following the maths!)       */
-
-        p->c1 = SQRT((c3p1*c3p1-c2sqr) * omc3/c3p1);
-      /* iscl = 0. No scaling of the signal. Input gain c1 = 1.      */
-      else p->c1 = FL(1.0);
-    }
-
-    /* Filter section, see c1, c2, c3 notes above.  Calculate output and
-     * the new values for the first and second delays.     */
-
-    *p->kr = p->c1 * *p->ksig + p->c2 * p->yt1 - p->c3 * p->yt2;
-    p->yt2 = p->yt1;
-    p->yt1 = *p->kr;
-    return OK;
-}
-
-/*****************************************************************************/
-
-/* karseson - band reject filter.
- *
- * uses krsnset() above.
- *
- * Comments not done yet. Modifications to make it k rate done with great care!
- */
-
-int kareson(CSOUND *csound, KRESON *p)
-{
-    int flag = 0;
-    MYFLT       c3p1, c3t4, omc3, c2sqr /*,D = FL(2.0)*/; /* 1/RMS = root2 (rand) */
-    /*      or 1/.5  (sine) */
-    if (UNLIKELY(*p->kcf != p->prvcf)) {
-      p->prvcf = *p->kcf;
-      p->cosf = COS(*p->kcf * csound->tpidsr * CS_KSMPS);
-      flag = 1;
-    }
-    if (UNLIKELY(*p->kbw != p->prvbw)) {
-      p->prvbw = *p->kbw;
-      p->c3 = EXP(*p->kbw * csound->mtpdsr * CS_KSMPS);
-      flag = 1;
-    }
-    if (UNLIKELY(flag)) {
-      c3p1 = p->c3 + FL(1.0);
-      c3t4 = p->c3 * FL(4.0);
-      omc3 = FL(1.0) - p->c3;
-      p->c2 = c3t4 * p->cosf / c3p1;
-      c2sqr = p->c2 * p->c2;
-      if (p->scale == 1)                        /* i.e. 1 - A(reson) */
-        p->c1 = FL(1.0) - omc3 * SQRT(FL(1.0) - c2sqr / c3t4);
-      else if (p->scale == 2)                 /* i.e. D - A(reson) */
-        p->c1 = FL(2.0) - SQRT((c3p1*c3p1-c2sqr)*omc3/c3p1);
-      else p->c1 = FL(0.0);                        /* cannot tell        */
-    }
-
-    if (p->scale == 1 || p->scale == 0)
-      {
-        *p->kr = p->c1 * *p->ksig + p->c2 * p->yt1 - p->c3 * p->yt2;
-        p->yt2 = p->yt1;
-        p->yt1 = *p->kr - *p->ksig;     /* yt1 contains yt1-xt1 */
-      }
-
-    else if (p->scale == 2)
-      {
-        *p->kr = p->c1 * *p->ksig + p->c2 * p->yt1 - p->c3 * p->yt2;
-        p->yt2 = p->yt1;
-        p->yt1 = *p->kr - (*p->ksig + *p->ksig); /* yt1 contains yt1-D*xt1 */
-      }
-    return OK;
-}
-
-/*****************************************************************************/
-/*****************************************************************************/
-
-/* limit and ilimit
- */
-
-/* klimit()
- *
- * Used for k and i rate variables.
- */
-int klimit(CSOUND *csound, LIMIT *p)
-{
-    MYFLT       xsig, xlow, xhigh;
-
-    /* Optimise for speed when xsig is within the limits.   */
-
-    if (LIKELY(((xsig = *p->xsig) <= *p->xhigh) && (xsig >= *p->xlow))) {
-      *p->xdest = xsig;
-    }
-    else {
-      /* xsig was not within the limits.
-       *
-       * Check to see if xlow > xhigh. If so, then the result will be
-       * the mid point between them.       */
-
-      if ( (xlow = *p->xlow) >= (xhigh = *p->xhigh) ) {
-        *p->xdest = FL(0.5) * (xlow + xhigh); /* times 0.5 rather that /2 -- JPff */
-      }
-      else {
-        if (xsig > xhigh)
-          *p->xdest = xhigh;
-        else
-          *p->xdest = xlow;
-      }
-    }
-    return OK;
-}
-
-/*************************************/
-
-/* alimit()
- *
- * Used for a rate variables, with k rate limits. */
-int limit(CSOUND *csound, LIMIT *p)
-{
-    MYFLT       *adest, *asig;
-    MYFLT       xlow, xhigh, xaverage, xsig;
-    uint32_t offset = p->h.insdshead->ksmps_offset;
-    uint32_t early  = p->h.insdshead->ksmps_no_end;
-    uint32_t n, nsmps = CS_KSMPS;
-    /*-----------------------------------*/
-
-    /* Optimise for speed when xsig is within the limits.     */
-
-    /* Set up input and output pointers.    */
-    adest = p->xdest;
-    asig  = p->xsig;
-    /* Test to see if xlow > xhigh. if so, then write the average to
-     * the destination - no need to look at the input.
-     *
-     * Whilst doing the test, load the limit local variables.
-     */
-
-    if (UNLIKELY(offset)) memset(adest, '\0', offset*sizeof(MYFLT));
-    if (UNLIKELY(early))) {
-      nsmps -= early;
-      memset(&adest[nsmps], '\0', early*sizeof(MYFLT));
-    }
-    if ((xlow = *p->xlow) >= (xhigh = *p->xhigh)) {
-      xaverage = (xlow + xhigh) * FL(0.5);/* times 0.5 rather that /2 -- JPff */
-      for (n=offset; n<nsmps; n++) {
-        adest[n] = xaverage;
-      }
-    }
-    else
-      for (n=offset; n<nsmps; n++) {
-        /* Do normal processing, testing each input value against the limits. */
-        if (((xsig = asig[n]) <= xhigh) && (xsig >= xlow)) {
-          /* xsig was within the limits.      */
-          adest[n] = xsig;
-        }
-        else {
-          if (xsig > xhigh)
-            adest[n] = xhigh;
-          else
-            adest[n] = xlow;
-        }
-      }
-    return OK;
-}
-
-#endif /* SOME_FINE_DAY */
diff --git a/OOps/ugtabs.c b/OOps/ugtabs.c
index bbfbf3a..afb3fdf 100644
--- a/OOps/ugtabs.c
+++ b/OOps/ugtabs.c
@@ -31,82 +31,83 @@
 
 int tabler_init(CSOUND *csound, TABL *p) {
 
-  int ndx, len;
-  int mask;
+    int ndx, len;
+    int mask;
 
-  if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
+    if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
       return csound->InitError(csound,
                                Str("table: could not find ftable %d"),
                                (int) *p->ftable);
-  mask = p->ftp->lenmask;
-  p->np2 = mask ? 0 : 1;
-  len = p->ftp->flen;
+    mask = p->ftp->lenmask;
+    p->np2 = mask ? 0 : 1;
+    len = p->ftp->flen;
 
-  if (*p->mode)
+    if (*p->mode)
       p->mul = len;
     else
       p->mul = 1;
 
-  ndx = FLOOR((*p->ndx + *p->offset)*p->mul);
-  if (*p->wrap) {
-    if (p->np2) {
-      while(ndx >= len) ndx -= len;
-      while(ndx < 0)  ndx += len;
+    ndx = FLOOR((*p->ndx + *p->offset)*p->mul);
+    if (*p->wrap) {
+      if (p->np2) {
+        while(ndx >= len) ndx -= len;
+        while(ndx < 0)  ndx += len;
+      }
+      else ndx &= mask;
+    } else {
+      if (UNLIKELY(ndx >= len)) ndx = len - 1;
+      else if (UNLIKELY(ndx < 0)) ndx = 0;
     }
-    else ndx &= mask;
-  } else {
-    if (UNLIKELY(ndx >= len)) ndx = len - 1;
-    else if (UNLIKELY(ndx < 0)) ndx = 0;
-  }
-  *p->sig = p->ftp->ftable[ndx];
-  return OK;
+    *p->sig = p->ftp->ftable[ndx];
+    return OK;
 }
 
 
 int tabl_setup(CSOUND *csound, TABL *p) {
-  if(p->ftp == NULL) {
-    /* check for this only on first allocation */
-  if (UNLIKELY(IS_ASIG_ARG(p->ndx) != IS_ASIG_ARG(p->sig))) {
-   if (CS_KSMPS != 1)
-     return csound->InitError(csound,
+    if(p->ftp == NULL) {
+      /* check for this only on first allocation */
+      if (UNLIKELY(IS_ASIG_ARG(p->ndx) != IS_ASIG_ARG(p->sig))) {
+        if (CS_KSMPS != 1)
+          return
+            csound->InitError(csound,
                               Str("table: index type inconsistent with output"));
-  }
-  }
-   if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
+      }
+    }
+    if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
       return csound->InitError(csound,
                                Str("table: could not find ftable %d"),
                                (int) *p->ftable);
 
     p->np2 = p->ftp->lenmask ? 0 : 1;
 
-  if (*p->mode)
+    if (*p->mode)
       p->mul = p->ftp->flen;
     else
       p->mul = 1;
-  p->len = p->ftp->flen;
+    p->len = p->ftp->flen;
 
-  p->iwrap = (int32) *p->wrap;
-  return OK;
+    p->iwrap = (int32) *p->wrap;
+    return OK;
 }
 
 int tabler_kontrol(CSOUND *csound, TABL *p) {
-  int ndx, len = p->len;
-  int mask = p->ftp->lenmask;
-  IGN(csound);
-
-  ndx = MYFLOOR((*p->ndx + *p->offset)*p->mul);
-  if (p->iwrap) {
-    if (p->np2) {
-      while(ndx >= len) ndx -= len;
-      while(ndx < 0)  ndx += len;
+    int ndx, len = p->len;
+    int mask = p->ftp->lenmask;
+    IGN(csound);
+
+    ndx = MYFLOOR((*p->ndx + *p->offset)*p->mul);
+    if (p->iwrap) {
+      if (p->np2) {
+        while(ndx >= len) ndx -= len;
+        while(ndx < 0)  ndx += len;
+      }
+      else ndx &= mask;
+    } else {
+      if (UNLIKELY(ndx >= len)) ndx = len - 1;
+      else if (UNLIKELY(ndx < 0)) ndx = 0;
     }
-    else ndx &= mask;
-  } else {
-    if (UNLIKELY(ndx >= len)) ndx = len - 1;
-    else if (UNLIKELY(ndx < 0)) ndx = 0;
-  }
-  *p->sig = p->ftp->ftable[ndx];
-  return OK;
+    *p->sig = p->ftp->ftable[ndx];
+    return OK;
 }
 
 
@@ -150,71 +151,71 @@ int tabler_audio(CSOUND *csound, TABL *p)
 
 int tableir_init(CSOUND *csound, TABL *p) {
 
-  int ndx, len;
-  int mask;
-  MYFLT tmp, frac;
-  MYFLT x1, x2;
+    int ndx, len;
+    int mask;
+    MYFLT tmp, frac;
+    MYFLT x1, x2;
 
-  if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
+    if (UNLIKELY((p->ftp = csound->FTnp2Find(csound, p->ftable)) == NULL))
       return csound->InitError(csound,
                                Str("table: could not find ftable %d"),
                                (int) *p->ftable);
-  mask = p->ftp->lenmask;
-  p->np2 = mask ? 0 : 1;
-  len = p->ftp->flen;
+    mask = p->ftp->lenmask;
+    p->np2 = mask ? 0 : 1;
+    len = p->ftp->flen;
 
-  if (*p->mode)
+    if (*p->mode)
       p->mul = len;
     else
       p->mul = 1;
 
-  tmp = (*p->ndx + *p->offset)*p->mul;
-  ndx = MYFLOOR(tmp);
-  frac = tmp - ndx;
+    tmp = (*p->ndx + *p->offset)*p->mul;
+    ndx = MYFLOOR(tmp);
+    frac = tmp - ndx;
 
-  if (*p->wrap) {
-    if (p->np2) {
-      while(ndx >= len) ndx -= len;
-      while(ndx < 0)  ndx += len;
+    if (*p->wrap) {
+      if (p->np2) {
+        while(ndx >= len) ndx -= len;
+        while(ndx < 0)  ndx += len;
+      }
+      else ndx &= mask;
+    } else {
+      if (UNLIKELY(ndx >= len)) ndx = len - 1;
+      else if (UNLIKELY(ndx < 0)) ndx = 0;
     }
-    else ndx &= mask;
-  } else {
-    if (UNLIKELY(ndx >= len)) ndx = len - 1;
-    else if (UNLIKELY(ndx < 0)) ndx = 0;
-  }
-  x1 = p->ftp->ftable[ndx];
-  x2 = p->ftp->ftable[ndx+1];
-  *p->sig = x1 + (x2 - x1)*frac;
-  return OK;
+    x1 = p->ftp->ftable[ndx];
+    x2 = p->ftp->ftable[ndx+1];
+    *p->sig = x1 + (x2 - x1)*frac;
+    return OK;
 }
 
 
 
 int tableir_kontrol(CSOUND *csound, TABL *p) {
-  int ndx, len = p->len;
-  int mask = p->ftp->lenmask;
-  MYFLT tmp, frac;
-  MYFLT x1, x2;
-  IGN(csound);
-
-  tmp = (*p->ndx + *p->offset)*p->mul;
-  ndx = MYFLOOR(tmp);
-  frac = tmp - ndx;
-
-  if (p->iwrap) {
-    if (p->np2) {
-      while(ndx >= len) ndx -= len;
-      while(ndx < 0)  ndx += len;
+    int ndx, len = p->len;
+    int mask = p->ftp->lenmask;
+    MYFLT tmp, frac;
+    MYFLT x1, x2;
+    IGN(csound);
+
+    tmp = (*p->ndx + *p->offset)*p->mul;
+    ndx = MYFLOOR(tmp);
+    frac = tmp - ndx;
+
+    if (p->iwrap) {
+      if (p->np2) {
+        while(ndx >= len) ndx -= len;
+        while(ndx < 0)  ndx += len;
+      }
+      else ndx &= mask;
+    } else {
+      if (UNLIKELY(ndx >= len)) ndx = len - 1;
+      else if (UNLIKELY(ndx < 0)) ndx = 0;
     }
-    else ndx &= mask;
-  } else {
-    if (UNLIKELY(ndx >= len)) ndx = len - 1;
-    else if (UNLIKELY(ndx < 0)) ndx = 0;
-  }
-  x1 = p->ftp->ftable[ndx];
-  x2 = p->ftp->ftable[ndx+1];
-  *p->sig = x1 + (x2 - x1)*frac;
-  return OK;
+    x1 = p->ftp->ftable[ndx];
+    x2 = p->ftp->ftable[ndx+1];
+    *p->sig = x1 + (x2 - x1)*frac;
+    return OK;
 }
 
 int tableir_audio(CSOUND *csound, TABL *p)
diff --git a/OOps/vdelay.c b/OOps/vdelay.c
index 176682a..5265600 100644
--- a/OOps/vdelay.c
+++ b/OOps/vdelay.c
@@ -31,7 +31,8 @@
 #include <math.h>
 #include "vdelay.h"
 
-#define ESR     (csound->esr/FL(1000.0))
+//#define ESR     (csound->esr/FL(1000.0))
+#define ESR     (csound->esr*FL(0.001))
 
 int vdelset(CSOUND *csound, VDEL *p)            /*  vdelay set-up   */
 {
@@ -42,10 +43,11 @@ int vdelset(CSOUND *csound, VDEL *p)            /*  vdelay set-up   */
         /* allocate space for delay buffer */
         csound->AuxAlloc(csound, n * sizeof(MYFLT), &p->aux);
       else {     /*    make sure buffer is empty       */
-        memset(p->aux.auxp, 0, n*sizeof(MYFLT));
+        memset(p->aux.auxp, '\0', n*sizeof(MYFLT));
       }
       p->left = 0;
     }
+    p->maxd = n - 1;
     return OK;
 }
 
@@ -59,9 +61,10 @@ int vdelay(CSOUND *csound, VDEL *p)               /*      vdelay  routine */
     MYFLT *in = p->ain;
     MYFLT *del = p->adel;
     MYFLT *buf = (MYFLT *)p->aux.auxp;
+    MYFLT esr = ESR;
 
     if (UNLIKELY(buf==NULL)) goto err1;        /* RWD fix */
-    maxd = (uint32) (1+*p->imaxd * ESR);
+    maxd = p->maxd;
     indx = p->left;
     if (UNLIKELY(offset)) memset(out, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -75,7 +78,7 @@ int vdelay(CSOUND *csound, VDEL *p)               /*      vdelay  routine */
         int32   v1, v2;
 
         buf[indx] = in[nn];
-        fv1 = indx - (del[nn]) * ESR;
+        fv1 = indx - (del[nn]) * esr;
         /* Make sure Inside the buffer      */
         /*
          * The following has been fixed by adding a cast and making a
@@ -111,7 +114,7 @@ int vdelay(CSOUND *csound, VDEL *p)               /*      vdelay  routine */
         int32   v1, v2;
 
         buf[indx] = in[nn];
-        fv1 = indx - fdel * ESR;
+        fv1 = indx - fdel * esr;
         /* Make sure inside the buffer      */
         /*
          * See comment above--same fix applied here.  heh 981101
@@ -151,9 +154,10 @@ int vdelay3(CSOUND *csound, VDEL *p)    /*  vdelay routine with cubic interp */
     MYFLT *in = p->ain;
     MYFLT *del = p->adel;
     MYFLT *buf = (MYFLT *)p->aux.auxp;
+    MYFLT esr = ESR;
 
     if (UNLIKELY(buf==NULL)) goto err1;            /* RWD fix */
-    maxd = (uint32) (*p->imaxd * ESR);
+    maxd = p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     if (UNLIKELY(offset)) memset(out, '\0', offset*sizeof(MYFLT));
@@ -168,7 +172,7 @@ int vdelay3(CSOUND *csound, VDEL *p)    /*  vdelay routine with cubic interp */
         int32   v0, v1, v2, v3;
 
         buf[indx] = in[nn];      /* IV Oct 2001 */
-        fv1 = del[nn] * (-ESR);
+        fv1 = del[nn] * (-esr);
         v1 = (int32)fv1;
         fv1 -= (MYFLT) v1;
         v1 += (int32)indx;
@@ -206,7 +210,7 @@ int vdelay3(CSOUND *csound, VDEL *p)    /*  vdelay routine with cubic interp */
       MYFLT  fv1, w, x, y, z;
       int32   v0, v1, v2, v3;
 
-      fv1 = *del * -ESR; v1 = (int32)fv1; fv1 -= (MYFLT) v1;
+      fv1 = *del * -esr; v1 = (int32)fv1; fv1 -= (MYFLT) v1;
       v1 += (int32)indx;
       /* Make sure Inside the buffer      */
       if ((v1 < 0L) || (fv1 < FL(0.0))) {
@@ -271,6 +275,7 @@ int vdelxset(CSOUND *csound, VDELX *p)      /*  vdelayx set-up (1 channel) */
       p->interp_size = (p->interp_size < 4 ? 4 : p->interp_size);
       p->interp_size = (p->interp_size > 1024 ? 1024 : p->interp_size);
     }
+    p->maxd = (uint32) n;
     return OK;
 }
 
@@ -296,6 +301,7 @@ int vdelxsset(CSOUND *csound, VDELXS *p)    /*  vdelayxs set-up (stereo) */
       p->interp_size = (p->interp_size < 4 ? 4 : p->interp_size);
       p->interp_size = (p->interp_size > 1024 ? 1024 : p->interp_size);
     }
+    p->maxd = (uint32) n;
     return OK;
 }
 
@@ -329,6 +335,7 @@ int vdelxqset(CSOUND *csound, VDELXQ *p) /* vdelayxq set-up (quad channels) */
       p->interp_size = (p->interp_size < 4 ? 4 : p->interp_size);
       p->interp_size = (p->interp_size > 1024 ? 1024 : p->interp_size);
     }
+    p->maxd = (uint32) n;
     return OK;
 }
 
@@ -347,7 +354,7 @@ int vdelayx(CSOUND *csound, VDELX *p)               /*      vdelayx routine  */
     int32   i, i2, xpos;
 
     if (UNLIKELY(buf1 == NULL)) goto err1;                          /* RWD fix */
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd = p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -418,7 +425,7 @@ int vdelayxw(CSOUND *csound, VDELX *p)      /*      vdelayxw routine  */
     int32   i, i2, xpos;
 
     if (UNLIKELY(buf1 == NULL)) goto err1;                          /* RWD fix */
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd =  p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -490,7 +497,7 @@ int vdelayxs(CSOUND *csound, VDELXS *p)     /*      vdelayxs routine  */
     uint32_t n, nsmps = CS_KSMPS;
 
     if (UNLIKELY((buf1 == NULL) || (buf2 == NULL))) goto err1; /* RWD fix */
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd =  p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -568,7 +575,7 @@ int vdelayxws(CSOUND *csound, VDELXS *p)    /*      vdelayxws routine  */
     int32   i, i2, xpos;
 
     if (UNLIKELY((buf1 == NULL) || (buf2 == NULL))) goto err1;     /* RWD fix */
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd =  p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -652,7 +659,7 @@ int vdelayxq(CSOUND *csound, VDELXQ *p)     /*      vdelayxq routine  */
     /* RWD fix */
     if (UNLIKELY((buf1 == NULL) || (buf2 == NULL) ||
                  (buf3 == NULL) || (buf4 == NULL))) goto err1;
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd =  p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -747,7 +754,7 @@ int vdelayxwq(CSOUND *csound, VDELXQ *p)    /*      vdelayxwq routine  */
     /* RWD fix */
     if (UNLIKELY((buf1 == NULL) || (buf2 == NULL) ||
                  (buf3 == NULL) || (buf4 == NULL))) goto err1;
-    maxd = (int32)(*p->imaxd * csound->esr);
+    maxd =  p->maxd;
     if (UNLIKELY(maxd == 0)) maxd = 1;    /* Degenerate case */
     indx = p->left;
     i2 = (wsize >> 1);
@@ -825,7 +832,7 @@ int multitap_set(CSOUND *csound, MDEL *p)
     //if (UNLIKELY(p->INOCOUNT/2 == (MYFLT)p->INOCOUNT*FL(0.5)))
     /* Should this test just be p->INOCOUNT&1 ==  */
     if (UNLIKELY((p->INOCOUNT&1)==0))
-      csound->InitError(csound, Str("Wrong input count in multitap\n"));
+      return csound->InitError(csound, Str("Wrong input count in multitap\n"));
 
     for (i = 0; i < p->INOCOUNT - 1; i += 2) {
       if (max < *p->ndel[i]) max = *p->ndel[i];
@@ -997,7 +1004,8 @@ int reverbx_set(CSOUND *csound, NREV2 *p)
     int   cmbAllocSize, alpAllocSize;
 
     if (UNLIKELY(*p->hdif > FL(1.0) || *p->hdif < FL(0.0)))
-      csound->InitError(csound, Str("High frequency diffusion not in (0, 1)\n"));
+      return
+        csound->InitError(csound, Str("High frequency diffusion not in (0, 1)\n"));
 
     /* Init comb constants and allocate dynamised work space */
     if (*p->inumCombs < FL(1.0)) {  /* Using old defaults */
diff --git a/Opcodes/CMakeLists.txt b/Opcodes/CMakeLists.txt
index 9ab4051..be270f2 100644
--- a/Opcodes/CMakeLists.txt
+++ b/Opcodes/CMakeLists.txt
@@ -1,7 +1,7 @@
 option(BUILD_CHUA_OPCODES "Build the chua opcodes" ON)
 option(BUILD_DSSI_OPCODES "Build the DSSI opcodes" ON)
 option(BUILD_FLUID_OPCODES "Build the fluidsynth opcodes" ON)
-option(BUILD_JACK_OPCODES "Build the JACK related opcodes" ON)
+option(BUILD_JACK_OPCODES "Build the JACK related opcodes" OFF)
 option(BUILD_LINEAR_ALGEBRA_OPCODES "Build the Linear Algebra Opcodes" ON)
 option(BUILD_OSC_OPCODES "Build the OSC Opcodes" ON)
 option(BUILD_IMAGE_OPCODES "Build the image opcodes" ON)
@@ -25,12 +25,13 @@ message(STATUS "## Building Opcodes ##")
 include(CheckIncludeFiles)
 check_include_file(ladspa.h LADSPA_H)
 check_include_file(fluidsynth.h FLUIDSYNTH_H)
+find_path(FLUIDSYNTH_INCLUDE_DIR "fluidsynth.h")
 find_library(FLUIDSYNTH_LIBRARY fluidsynth)
 find_library(JACK_LIBRARY jack)
 find_library(JACKDMP_LIBRARY jackdmp)
 check_include_file(jack/jack.h JACK_HEADER)
-check_include_file_cxx(gmm/gmm.h GMM_HEADER)
 check_include_file(lo/lo.h OSC_HEADER)
+find_path(OSC_HEADER_INC "lo/lo.h")
 find_library(LIBLO_LIBRARY lo)
 find_package(ZLIB)
 find_package(PNG)
@@ -46,7 +47,7 @@ find_library(P5GLOVE_LIB p5glove)
 if(BUILD_FAUST_OPCODES)
 find_package(LLVM)
 exec_program(llvm-config ARGS --libs OUTPUT_VARIABLE LLVM_LIBS)
-find_library(FAUST_LIBRARY faust.a HINTS /usr/local/lib)
+find_library(FAUST_LIBRARY libfaust.a HINTS /usr/local/lib)
 endif()
 
 ## OPCODE LIBS WITH NO EXTERNAL DEPENDENCIES ##
@@ -154,11 +155,11 @@ endif()
 
 check_deps(BUILD_CHUA_OPCODES EIGEN3_INCLUDE_PATH)
 if(BUILD_CHUA_OPCODES)
-    include_directories(${EIGEN3_INCLUDE_PATH})
     make_plugin(chua chua/ChuaOscillator.cpp)
+    target_include_directories(chua PRIVATE ${Boost_INCLUDE_DIRS})
 endif()
 
-check_deps(BUILD_DSSI_OPCODES LADSPA_H)
+check_deps(BUILD_DSSI_OPCODES LINUX)
 if(BUILD_DSSI_OPCODES)
     set(dssi_SRC dssi4cs/src/load.c dssi4cs/src/dssi4cs.c)
     make_plugin(dssi4cs "${dssi_SRC}" dl)
@@ -166,19 +167,19 @@ endif()
 
 check_deps(BUILD_FLUID_OPCODES FLUIDSYNTH_H FLUIDSYNTH_LIBRARY)
 if(BUILD_FLUID_OPCODES)
+    make_plugin(fluidOpcodes fluidOpcodes/fluidOpcodes.cpp)
     if(EXISTS ${FLUIDSYNTH_INCLUDE_DIR})
-        include_directories("${FLUIDSYNTH_INCLUDE_DIR}")
+        target_include_directories(fluidOpcodes PRIVATE "${FLUIDSYNTH_INCLUDE_DIR}")
      endif()
 
      if(WIN32 AND NOT MSVC)
-        set(FSYNTH_SUPPORT_LIBS ${FLUIDSYNTH_LIBRARY} dsound portaudio
+        set(FSYNTH_SUPPORT_LIBS dsound portaudio
           ${LIBSNDFILE_LIBRARY} ${LIBSNDFILE_SUPPORT_LIBS} wsock32 glib-2.0
           intl iconv ws2_32 winmm Setupapi)
-        make_plugin(fluidOpcodes fluidOpcodes/fluidOpcodes.cpp ${FSYNTH_SUPPORT_LIBS})
+        target_link_libraries(fluidOpcodes ${FSYNTH_SUPPORT_LIBS})
 
-        add_compiler_flags(-DFLUIDSYNTH_NOT_A_DLL TARGETS fluidOpcodes)
+        target_compile_definitions(fluidOpcodes PRIVATE -DFLUIDSYNTH_NOT_A_DLL)
      else()
-        make_plugin(fluidOpcodes fluidOpcodes/fluidOpcodes.cpp ${FLUIDSYNTH_LIBRARY})
         target_link_libraries(fluidOpcodes ${FLUIDSYNTH_LIBRARY})
      endif()
      add_dependency_to_framework(fluidOpcodes ${FLUIDSYNTH_LIBRARY})
@@ -194,19 +195,25 @@ if(BUILD_JACK_OPCODES)
         list(APPEND jack_LIBS ${JACK_LIBRARY})
     endif()
     make_plugin(jacko jacko.cpp "${jack_LIBS}")
+    set_target_properties(jacko PROPERTIES COMPILE_FLAGS
+   "-std=c++11")
     make_plugin(jackTransport jackTransport.c "${jack_LIBS}")
 endif()
 
-check_deps(BUILD_LINEAR_ALGEBRA_OPCODES GMM_HEADER)
+check_deps(BUILD_LINEAR_ALGEBRA_OPCODES GMM_FOUND)
 if(BUILD_LINEAR_ALGEBRA_OPCODES)
     make_plugin(linear_algebra linear_algebra.cpp)
+    target_include_directories(linear_algebra PRIVATE ${GMM_INCLUDE_DIRS})
+    if (MSVC)
+        target_compile_options(linear_algebra PRIVATE "/D_SCL_SECURE_NO_DEPRECATE")
+    endif()
 endif()
 
 check_deps(BUILD_OSC_OPCODES LIBLO_LIBRARY OSC_HEADER)
 if(BUILD_OSC_OPCODES)
     make_plugin(osc OSC.c)
     if(WIN32)
-	  target_include_directories(osc PRIVATE ${OSC_HEADER})
+	  target_include_directories(osc PRIVATE ${OSC_HEADER_INC})
       target_link_libraries(osc ${LIBLO_LIBRARY})
 	  # FIXME how to build a static version of this?
       if(BUILD_STATIC_LIBRARY AND NOT MSVC)
@@ -225,18 +232,18 @@ endif()
 
 check_deps(BUILD_IMAGE_OPCODES PNG_FOUND)
 if(BUILD_IMAGE_OPCODES)
-    include_directories(${PNG_INCLUDE_DIR})
     make_plugin(image imageOpcodes.c)
+    target_include_directories(image PRIVATE ${PNG_INCLUDE_DIR})
     target_link_libraries(image ${PNG_LIBRARIES})
-    add_compiler_flags(${PNG_DEFINITIONS} TARGETS image)
+    target_compile_definitions(image PRIVATE ${PNG_DEFINITIONS})
     add_dependency_to_framework(image ${PNG_LIBRARY})
 endif()
 
 check_deps(BUILD_PYTHON_OPCODES PYTHONLIBS_FOUND)
 if(BUILD_PYTHON_OPCODES)
-    include_directories(${PYTHON_INCLUDE_DIRS})
-    include_directories(${CMAKE_HOME_DIRECTORY}/include)
     make_plugin(py py/pythonopcodes.c)
+    target_include_directories(py PRIVATE ${PYTHON_INCLUDE_DIRS})
+    target_include_directories(py PRIVATE ${CMAKE_HOME_DIRECTORY}/include)
 	target_link_libraries(py ${PYTHON_LIBRARIES})
 endif()
 
@@ -244,9 +251,8 @@ if(NOT APPLE)
   check_deps(BUILD_LUA_OPCODES LUAJIT_LIBRARY LUA_H_PATH)
   if(BUILD_LUA_OPCODES)
     make_plugin(LuaCsound LuaCsound.cpp ${LUAJIT_LIBRARY})
-    add_compiler_flags(${OpenMP_CXX_FLAGS} TARGETS LuaCsound)
-    add_compiler_flags(${OpenMP_CXX_FLAGS} TARGETS LuaCsound LINKER)
-    include_directories(${LUA_H_PATH})
+    target_compile_options(LuaCsound PRIVATE ${OpenMP_CXX_FLAGS})
+    target_include_directories(LuaCsound PRIVATE ${LUA_H_PATH})
   endif()
 endif()
 
@@ -281,24 +287,30 @@ endif()
 check_deps(BUILD_FAUST_OPCODES LLVM_FOUND FAUST_LIBRARY)
 if(BUILD_FAUST_OPCODES)
   make_plugin(faustcsound faustgen.cpp)
+if(APPLE)
   target_link_libraries(faustcsound -lcrypto)
   target_link_libraries(faustcsound -lcurses)
   target_link_libraries(faustcsound -lz)
+else()
+  target_link_libraries(faustcsound -Wl,-no-as-needed -lcrypto)
+  target_link_libraries(faustcsound -Wl,-no-as-needed -lcurses)
+  target_link_libraries(faustcsound -Wl,-no-as-needed -lz)
+endif()
   target_link_libraries(faustcsound ${PTHREAD_LIBRARY})
+  target_compile_definitions(faustcsound PRIVATE "-DFAUSTFLOAT=double")
+
  if(APPLE)
  if(${OSX_VERSION} STREQUAL "10.6")
-   add_compiler_flags("-DFAUSTFLOAT=double "  TARGETS faustcsound)
     target_link_libraries(faustcsound ${FAUST_LIBRARY} -ldl -L$ENV{HOME}/lib -L/usr/local/lib ${LLVM_LIBS})
   else()
-     add_compiler_flags("-DFAUSTFLOAT=double -stdlib=libc++"  TARGETS faustcsound)
+      target_compile_options(faustcsound PRIVATE "-stdlib=libc++")
      target_link_libraries(faustcsound ${FAUST_LIBRARY} -stdlib=libc++ -ldl -L$ENV{HOME}/lib -L/usr/local/lib ${LLVM_LIBS})
   endif()
   else()
-    add_compiler_flags("-DFAUSTFLOAT=double "  TARGETS faustcsound)
     target_link_libraries(faustcsound ${FAUST_LIBRARY} -ldl -L$ENV{HOME}/lib -L/usr/local/lib ${LLVM_LIBS})
    endif()
 
-  include_directories(${LLVM_INCLUDE_DIRS})
+  target_include_directories(faustcsound PRIVATE ${LLVM_INCLUDE_DIRS})
 endif()
 
 
@@ -311,12 +323,6 @@ endif()
 check_deps(BUILD_VST4CS_OPCODES VSTSDK2X_FOUND FLTK_FOUND)
 message(STATUS "VSTSDK2X_INCLUDE_DIR: ${VSTSDK2X_INCLUDE_DIR}")
 if(BUILD_VST4CS_OPCODES)
-    include_directories(${CMAKE_HOME_DIRECTORY}/interfaces)
-    include_directories(${VSTSDK2X_INCLUDE_DIR})
-    include_directories(${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x)
-    include_directories(${VSTSDK2X_INCLUDE_DIR}/pluginterfaces/source/vst2.x)
-    include_directories(${FLTK_INCLUDE_DIR})
-    add_definitions(-DVST_FORCE_DEPRECATED=0 -DCS_VSTHOST)
     set(VST4CS_SRCS
         vst4cs/src/vst4cs.cpp
         vst4cs/src/vsthost.cpp
@@ -324,35 +330,40 @@ if(BUILD_VST4CS_OPCODES)
         ${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x/audioeffect.cpp
         ${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x/audioeffectx.cpp)
     add_library(vst4cs SHARED ${VST4CS_SRCS})
+    target_compile_definitions(vst4cs PRIVATE -DVST_FORCE_DEPRECATED=0 -DCS_VSTHOST)
+    target_include_directories(vst4cs PRIVATE ${VSTSDK2X_INCLUDE_DIR})
+    target_include_directories(vst4cs PRIVATE ${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x)
+    target_include_directories(vst4cs PRIVATE ${VSTSDK2X_INCLUDE_DIR}/pluginterfaces/source/vst2.x)
+    target_include_directories(vst4cs PRIVATE ${FLTK_INCLUDE_DIR})
     set_target_properties(vst4cs PROPERTIES
-        LINK_INTERFACE_LIBRARIES ""
         RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
         LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         )
-    target_link_libraries(vst4cs ${CSOUNDLIB} ${FLTK_LIBRARIES})
-    if(BUILD_STATIC_LIBRARY)
-        if(WIN32)
-            add_library(pthread STATIC IMPORTED)
-            set_target_properties(pthread PROPERTIES IMPORTED_LOCATION ${PTHREAD_LIBRARY})
+    target_link_libraries(vst4cs PRIVATE ${CSOUNDLIB} ${FLTK_LIBRARIES})
+    if(NOT MSVC)
+        if(BUILD_STATIC_LIBRARY)
+            if(WIN32)
+                add_library(pthread STATIC IMPORTED)
+                set_target_properties(pthread PROPERTIES IMPORTED_LOCATION ${PTHREAD_LIBRARY})
+            endif()
+            target_link_libraries(vst4cs PRIVATE pthread)
+        else()
+            target_link_libraries(vst4cs PRIVATE ${PTHREAD_LIBRARY})
         endif()
-      target_link_libraries(vst4cs pthread)
-    else()
-      target_link_libraries(vst4cs ${PTHREAD_LIBRARY})
     endif()
     install(TARGETS vst4cs
-        LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
+        LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}
         ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
 endif()
 
+check_deps(BUILD_ABLETON_LINK_OPCODES ABLETON_LINK_HOME)
 if(BUILD_ABLETON_LINK_OPCODES)
     message(STATUS "Ableton Link home: ${ABLETON_LINK_HOME}")
-    include_directories(${ABLETON_LINK_HOME}/include)
-    include_directories(${ABLETON_LINK_HOME}/modules/asio-standalone/asio/include)
     if(APPLE)
       make_plugin(ableton_link_opcodes ableton_link_opcodes.cpp)
-      set_target_properties(ableton_link_opcodes PROPERTIES COMPILE_FLAGS "-std=gnu++11 -stdlib=libc++ -Wno-multichar -DLINK_PLATFORM_MACOSX=1"
-        LINK_FLAGS "-std=gnu++11 -stdlib=libc++")
+      set_target_properties(ableton_link_opcodes PROPERTIES COMPILE_FLAGS "-std=c++11 -stdlib=libc++ -Wno-multichar -DLINK_PLATFORM_MACOSX=1"
+        LINK_FLAGS "-std=c++11 -stdlib=libc++")
     elseif(LINUX)
         include(CheckCXXCompilerFlag)
         CHECK_CXX_COMPILER_FLAG("-std=gnu++11" COMPILER_SUPPORTS_CXX11)
@@ -364,15 +375,23 @@ if(BUILD_ABLETON_LINK_OPCODES)
         endif()
     else()
         make_plugin(ableton_link_opcodes ableton_link_opcodes.cpp)
-        if(WIN32 AND NOT MSVC)
-          set_target_properties(ableton_link_opcodes PROPERTIES COMPILE_FLAGS "-std=gnu++11 -Wno-multichar -DLINK_PLATFORM_WINDOWS=1"
-            LINK_FLAGS "-std=gnu++11")
-          target_link_libraries(ableton_link_opcodes wsock32 ws2_32 iphlpapi)
+        if(WIN32)
+            if(MSVC)
+                include_directories($ENV{INCLUDE})
+                include(${ABLETON_LINK_HOME}\\AbletonLinkConfig.cmake)
+                target_link_libraries(ableton_link_opcodes Ableton::Link)
+            else()
+                set_target_properties(ableton_link_opcodes PROPERTIES COMPILE_FLAGS "-std=gnu++11 -Wno-multichar -DLINK_PLATFORM_WINDOWS=1"
+                    LINK_FLAGS "-std=gnu++11")
+                target_link_libraries(ableton_link_opcodes wsock32 ws2_32 iphlpapi)
+            endif()
         endif()
     endif()
-    #install(TARGETS ableton_link_opcodes
-    #    LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
-    #    ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
+    target_include_directories(ableton_link_opcodes PRIVATE ${ABLETON_LINK_HOME}/include)
+    target_include_directories(ableton_link_opcodes PRIVATE ${ABLETON_LINK_HOME}/modules/asio-standalone/asio/include)
+    install(TARGETS ableton_link_opcodes
+        LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}
+        ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
 endif()
 
 add_subdirectory(stk)
diff --git a/Opcodes/LuaCsound.cpp b/Opcodes/LuaCsound.cpp
index d833e21..748a08f 100644
--- a/Opcodes/LuaCsound.cpp
+++ b/Opcodes/LuaCsound.cpp
@@ -1,4 +1,9 @@
 /*
+
+  LuaCsound.cpp:
+
+  Copyright (C) 2011 by Micael Gogins
+
   This file is part of Csound.
 
   The Csound Library is free software; you can redistribute it
@@ -44,29 +49,29 @@ extern "C"
 extern "C"
 {
 #undef stdin
-    FILE *stdin  = &__sF[0];
+        FILE *stdin  = &__sF[0];
 #undef stdout
-    FILE *stdout = &__sF[1];
+        FILE *stdout = &__sF[1];
 #undef stderr
-    FILE *stderr = &__sF[2];
-    volatile int * __errno_location(void)
-    {
-        return __errno();
-    }
-    int _IO_getc(FILE *file_)
-    {
-        return getc(file_);
-    }
-    int _IO_putc(int char_, FILE *file_)
-    {
-        return putc(char_, file_);
-    }
-    int __isoc99_fscanf (FILE *stream, const char *format, ...)
-    {
-        va_list arg;
-        va_start (arg, format);
-        return vfscanf(stream, format, arg);
-    }
+        FILE *stderr = &__sF[2];
+        volatile int *__errno_location(void)
+        {
+                return __errno();
+        }
+        int _IO_getc(FILE *file_)
+        {
+                return getc(file_);
+        }
+        int _IO_putc(int char_, FILE *file_)
+        {
+                return putc(char_, file_);
+        }
+        int __isoc99_fscanf(FILE *stream, const char *format, ...)
+        {
+                va_list arg;
+                va_start(arg, format);
+                return vfscanf(stream, format, arg);
+        }
 }
 #endif
 
@@ -88,33 +93,27 @@ extern "C"
  * calling.
  */
 struct keys_t {
-    keys_t() : init_key(0), kontrol_key(0), audio_key(0), noteoff_key(0) {}
-    int init_key;
-    int kontrol_key;
-    int audio_key;
-    int noteoff_key;
+        keys_t() : init_key(0), kontrol_key(0), audio_key(0), noteoff_key(0) {}
+        int init_key;
+        int kontrol_key;
+        int audio_key;
+        int noteoff_key;
 };
 
 struct LuaStateForThread {
-    void *thread;
-    lua_State *L;
+        void *thread;
+        lua_State *L;
 };
 
-bool operator == (const LuaStateForThread& a, const LuaStateForThread &b)
+bool operator == (const LuaStateForThread &a, const LuaStateForThread &b)
 {
-    if (a.thread == b.thread) {
-        return true;
-    } else {
-        return false;
-    }
+        if (a.thread == b.thread) {
+                return true;
+        } else {
+                return false;
+        }
 }
 
-static void *lua_states_mutex = 0;
-static std::vector<LuaStateForThread> *luaStatesForThreads = 0;
-static void *reference_keys_mutex = 0;
-static std::map<const lua_State *,
-       std::map<std::string, keys_t> > *luaReferenceKeys = 0;
-
 /**
  * Thread-safe storage for Lua references to opcode subroutines.
  */
@@ -122,22 +121,26 @@ keys_t &manageLuaReferenceKeys(CSOUND *csound,
                                const lua_State *L,
                                const std::string &opcode, char operation)
 {
-    keys_t *keys = 0;
-    {
-        LockGuard criticalSection(csound, reference_keys_mutex);
-        switch(operation) {
-        case 'O': {
-            keys = &(*luaReferenceKeys)[L][opcode];
-        }
-        break;
-        case 'C': {
+    void *reference_keys_mutex = 0;
+    csound::QueryGlobalPointer(csound, "reference_keys_mutex", reference_keys_mutex);
+        keys_t *keys = 0;
+        {
+                LockGuard criticalSection(csound, reference_keys_mutex);
+        std::map<const lua_State *, std::map<std::string, keys_t> > *luaReferenceKeys = 0;
+        csound::QueryGlobalPointer(csound, "luaReferenceKeys", luaReferenceKeys);
+                switch (operation) {
+                case 'O': {
+                                keys = &(*luaReferenceKeys)[L][opcode];
+                        }
+                        break;
+                case 'C': {
 
-            luaReferenceKeys->erase(L);
+                                luaReferenceKeys->erase(L);
+                        }
+                        break;
+                }
         }
-        break;
-        }
-    }
-    return *keys;
+        return *keys;
 }
 
 /**
@@ -145,38 +148,42 @@ keys_t &manageLuaReferenceKeys(CSOUND *csound,
  * per thread, rather than per instance of Csound, in case one instance of Csound
  * is running multiple threads with multiple instances of a Lua opcode.
  */
-lua_State *manageLuaState(CSOUND * csound, char operation)
+lua_State *manageLuaState(CSOUND *csound, char operation)
 {
-    LockGuard criticalSection(csound, lua_states_mutex);
-    LuaStateForThread luaStateForThread;
-    luaStateForThread.thread = csound->GetCurrentThreadID();
-    std::vector<LuaStateForThread>::iterator it =
-        std::find(luaStatesForThreads->begin(),
-                  luaStatesForThreads->end(),
-                  luaStateForThread);
-    lua_State *L = 0;
-    switch(operation) {
-    case 'O': {
-        if (it == luaStatesForThreads->end()) {
-            luaStateForThread.L = lua_open();
-            luaL_openlibs(luaStateForThread.L);
-            luaStatesForThreads->push_back(luaStateForThread);
-            L = luaStateForThread.L;
-        } else {
-            L = it->L;
-        }
-    }
-    break;
-    case 'C': {
-        if (it != luaStatesForThreads->end()) {
-            manageLuaReferenceKeys(csound, it->L, "", 'C');
-            lua_close(it->L);
-            luaStatesForThreads->erase(it);
+    void *lua_states_mutex = 0;
+    csound::QueryGlobalPointer(csound, "lua_states_mutex", lua_states_mutex);
+        LockGuard criticalSection(csound, lua_states_mutex);
+    std::vector<LuaStateForThread> *luaStatesForThreads = 0;
+    csound::QueryGlobalPointer(csound, "luaStatesForThreads", luaStatesForThreads);
+        LuaStateForThread luaStateForThread;
+        luaStateForThread.thread = csound->GetCurrentThreadID();
+        std::vector<LuaStateForThread>::iterator it =
+            std::find(luaStatesForThreads->begin(),
+                      luaStatesForThreads->end(),
+                      luaStateForThread);
+        lua_State *L = 0;
+        switch (operation) {
+        case 'O': {
+                        if (it == luaStatesForThreads->end()) {
+                                luaStateForThread.L = lua_open();
+                                luaL_openlibs(luaStateForThread.L);
+                                luaStatesForThreads->push_back(luaStateForThread);
+                                L = luaStateForThread.L;
+                        } else {
+                                L = it->L;
+                        }
+                }
+                break;
+        case 'C': {
+                        if (it != luaStatesForThreads->end()) {
+                                manageLuaReferenceKeys(csound, it->L, "", 'C');
+                                lua_close(it->L);
+                                luaStatesForThreads->erase(it);
+                        }
+                }
+                break;
         }
-    }
-    break;
-    }
-    return L;
+        return L;
 }
 
 /**
@@ -185,32 +192,32 @@ lua_State *manageLuaState(CSOUND * csound, char operation)
 class cslua_exec : public OpcodeBase<cslua_exec>
 {
 public:
-    /**
-     * No outputs.
-     */
-    /**
-     * Inputs.
-     */
-    MYFLT *luacode_;
-    int init(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        /* Ensure that Csound is available in the global environment. */
-        lua_pushlightuserdata(L, csound);
-        lua_setfield(L, LUA_GLOBALSINDEX, "csound");
-        const char *luacode = ((STRINGDAT *)luacode_)->data;
-        log(csound, "Executing (L: 0x%p) Lua code.\n", L);
-        warn(csound, "\n%s\n", luacode);
-        result = luaL_dostring(L, luacode);
-        if (result == 0) {
-            //log(csound, "Result: %d\n", result);
-        } else {
-            log(csound, "luaL_dostring failed with: %d\n%s\n",
-                result, lua_tostring(L, -1));
+        /**
+         * No outputs.
+         */
+        /**
+         * Inputs.
+         */
+        MYFLT *luacode_;
+        int init(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                /* Ensure that Csound is available in the global environment. */
+                lua_pushlightuserdata(L, csound);
+                lua_setfield(L, LUA_GLOBALSINDEX, "csound");
+                const char *luacode = ((STRINGDAT *)luacode_)->data;
+                log(csound, "Executing (L: 0x%p) Lua code.\n", L);
+                warn(csound, "\n%s\n", luacode);
+                result = luaL_dostring(L, luacode);
+                if (result == 0) {
+                        //log(csound, "Result: %d\n", result);
+                } else {
+                        log(csound, "luaL_dostring failed with: %d\n%s\n",
+                            result, lua_tostring(L, -1));
+                }
+                return result;
         }
-        return result;
-    }
 };
 
 /**
@@ -249,83 +256,83 @@ public:
 class cslua_opcall: public OpcodeBase<cslua_opcall>
 {
 public:
-    MYFLT *opcodename_;
-    /**
-      * This will hold, slot by slot, first output parameters
-      * and then input parameters, exactly as declared by intypes and outtypes.
-      * These parameters must also be re-declared in the Lua code as a C struct
-      * using FFI (i.e. using 'ffi.cdef("typedef xxx typename;")' and
-      * 'ctype = ffi.typeof("typename"))' and accessed using FFI in Lua code
-      * after performing a type cast (i.e.using 'cobject = ffi.cast(ctype,
-      * lightuserdata)'). Each slot, in turn, will contain a pointer to MYFLT
-      * that references a Csound argument type (i.e. string, i-rate or k-rate
-      * scalar, a-rate vector, f-sig). Note that the C struct may contain
-      * additional data, e.g. for opcode state, after the opcode output and
-      * input arguments, as limited by the available space.
-      */
-    MYFLT *arguments[1000];
-    const char *opcodename;
+        MYFLT *opcodename_;
+        /**
+          * This will hold, slot by slot, first output parameters
+          * and then input parameters, exactly as declared by intypes and outtypes.
+          * These parameters must also be re-declared in the Lua code as a C struct
+          * using FFI (i.e. using 'ffi.cdef("typedef xxx typename;")' and
+          * 'ctype = ffi.typeof("typename"))' and accessed using FFI in Lua code
+          * after performing a type cast (i.e.using 'cobject = ffi.cast(ctype,
+          * lightuserdata)'). Each slot, in turn, will contain a pointer to MYFLT
+          * that references a Csound argument type (i.e. string, i-rate or k-rate
+          * scalar, a-rate vector, f-sig). Note that the C struct may contain
+          * additional data, e.g. for opcode state, after the opcode output and
+          * input arguments, as limited by the available space.
+          */
+        MYFLT *arguments[1000];
+        const char *opcodename;
 public:
-    /**
-     * Calls a Lua function with the signature:
-     * opcodename_init(csound [lightuserdata],
-     *                 opcode [lightyserdata],
-     *                 parameters [lightuserdata]) -> result [number].
-     */
-    int init(CSOUND *csound)
-    {
-        int result = OK;
-        opcodename = ((STRINGDAT *)opcodename_)->data;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.init_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, &arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_init\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        /**
+         * Calls a Lua function with the signature:
+         * opcodename_init(csound [lightuserdata],
+         *                 opcode [lightyserdata],
+         *                 parameters [lightuserdata]) -> result [number].
+         */
+        int init(CSOUND *csound)
+        {
+                int result = OK;
+                opcodename = ((STRINGDAT *)opcodename_)->data;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.init_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, &arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_init\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return OK;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return OK;
-    }
 
-    int kontrol(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.kontrol_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, &arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_kontrol\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        int kontrol(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.kontrol_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, &arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_kontrol\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return result;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return result;
-    }
 
-    int audio(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.audio_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_audio\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        int audio(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.audio_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_audio\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return result;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return result;
-    }
 };
 
 /**
@@ -370,104 +377,104 @@ public:
 class cslua_opcall_off: public OpcodeNoteoffBase<cslua_opcall_off>
 {
 public:
-    MYFLT *opcodename_;
-    /**
-      * This will hold, slot by slot, first output parameters
-      * and then input parameters, exactly as declared by intypes and outtypes.
-      * These parameters must also be re-declared in the Lua code as a C struct
-      * using FFI (i.e. using 'ffi.cdef("typedef xxx typename;")' and
-      * 'ctype = ffi.typeof("typename"))' and accessed using FFI in Lua code
-      * after performing a type cast (i.e.using 'cobject = ffi.cast(ctype,
-      * lightuserdata)'). Each slot, in turn, will contain a pointer to MYFLT
-      * that references a Csound argument type (i.e. string, i-rate or k-rate
-      * scalar, a-rate vector, f-sig). Note that the C struct may contain
-      * additional data, e.g. for opcode state, after the opcode output and
-      * input arguments, as limited by the available space.
-      */
-    MYFLT *arguments[1000];
-    const char *opcodename;
+        MYFLT *opcodename_;
+        /**
+          * This will hold, slot by slot, first output parameters
+          * and then input parameters, exactly as declared by intypes and outtypes.
+          * These parameters must also be re-declared in the Lua code as a C struct
+          * using FFI (i.e. using 'ffi.cdef("typedef xxx typename;")' and
+          * 'ctype = ffi.typeof("typename"))' and accessed using FFI in Lua code
+          * after performing a type cast (i.e.using 'cobject = ffi.cast(ctype,
+          * lightuserdata)'). Each slot, in turn, will contain a pointer to MYFLT
+          * that references a Csound argument type (i.e. string, i-rate or k-rate
+          * scalar, a-rate vector, f-sig). Note that the C struct may contain
+          * additional data, e.g. for opcode state, after the opcode output and
+          * input arguments, as limited by the available space.
+          */
+        MYFLT *arguments[1000];
+        const char *opcodename;
 public:
-    /**
-     * Calls a Lua function with the signature:
-     * opcodename_init(csound [lightuserdata],
-     *                 opcode [lightyserdata],
-     *                 parameters [lightuserdata]) -> result [number].
-     */
-    int init(CSOUND *csound)
-    {
-        int result = OK;
-        opcodename = ((STRINGDAT *)opcodename_)->data;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.init_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, &arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_init\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        /**
+         * Calls a Lua function with the signature:
+         * opcodename_init(csound [lightuserdata],
+         *                 opcode [lightyserdata],
+         *                 parameters [lightuserdata]) -> result [number].
+         */
+        int init(CSOUND *csound)
+        {
+                int result = OK;
+                opcodename = ((STRINGDAT *)opcodename_)->data;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.init_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, &arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_init\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return OK;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return OK;
-    }
 
-    int kontrol(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.kontrol_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, &arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_kontrol\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        int kontrol(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.kontrol_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, &arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_kontrol\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return result;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return result;
-    }
 
-    int audio(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.audio_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_audio\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        int audio(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.audio_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_audio\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return result;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return result;
-    }
 
-    int noteoff(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-        lua_rawgeti(L, LUA_REGISTRYINDEX, keys.noteoff_key);
-        lua_pushlightuserdata(L, csound);
-        lua_pushlightuserdata(L, this);
-        lua_pushlightuserdata(L, arguments);
-        if (lua_pcall(L, 3, 1, 0) != 0) {
-            log(csound, "Lua error in \"%s_noteoff\": %s.\n",
-                opcodename, lua_tostring(L, -1));
-        } else {
-            log(csound, "Lua called \"%s_noteoff\": %s.\n",
-                opcodename, lua_tostring(L, -1));
+        int noteoff(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                lua_rawgeti(L, LUA_REGISTRYINDEX, keys.noteoff_key);
+                lua_pushlightuserdata(L, csound);
+                lua_pushlightuserdata(L, this);
+                lua_pushlightuserdata(L, arguments);
+                if (lua_pcall(L, 3, 1, 0) != 0) {
+                        log(csound, "Lua error in \"%s_noteoff\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                } else {
+                        log(csound, "Lua called \"%s_noteoff\": %s.\n",
+                            opcodename, lua_tostring(L, -1));
+                }
+                result = lua_tonumber(L, -1);
+                lua_pop(L, 1);
+                return result;
         }
-        result = lua_tonumber(L, -1);
-        lua_pop(L, 1);
-        return result;
-    }
 };
 
 /**
@@ -503,250 +510,273 @@ public:
 class cslua_opdef : public OpcodeBase<cslua_opdef>
 {
 public:
-    /**
-     * No outputs.
-     */
-    /**
-     * Inputs.
-     */
-    MYFLT *opcodename_;
-    MYFLT *luacode_;
+        /**
+         * No outputs.
+         */
+        /**
+         * Inputs.
+         */
+        MYFLT *opcodename_;
+        MYFLT *luacode_;
 public:
-    int init(CSOUND *csound)
-    {
-        int result = OK;
-        lua_State *L = manageLuaState(csound, 'O');
-        /* Ensure that Csound is available in the global environment. */
-        lua_pushlightuserdata(L, csound);
-        lua_setfield(L, LUA_GLOBALSINDEX, "csound");
-        const char *opcodename = ((STRINGDAT *)opcodename_)->data;
-        const char *luacode = ((STRINGDAT *)luacode_)->data;
-        //log(csound, "Executing Lua code:\n%s\n", luacode);
-        result = luaL_dostring(L, luacode);
-        if (result == 0) {
-            keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
-            log(csound, "Opcode: %s\n", opcodename);
-            log(csound, "Result: %d\n", result);
-            char init_function[0x100];
-            snprintf(init_function, 0x100,
-                     "%s_init", opcodename); //h.optext->t.opcod);
-            lua_getglobal(L, init_function);
-            if (!lua_isnil(L, 1)) {
-                keys.init_key = luaL_ref(L, LUA_REGISTRYINDEX);
-                lua_pop(L, 1);
-            }
-            char kontrol_function[0x100];
-            snprintf(kontrol_function, 0x100,
-                     "%s_kontrol", opcodename); //h.optext->t.opcod);
-            lua_getglobal(L, kontrol_function);
-            if (!lua_isnil(L, 1)) {
-                keys.kontrol_key = luaL_ref(L, LUA_REGISTRYINDEX);
-                lua_pop(L, 1);
-            }
-            char audio_function[0x100];
-            snprintf(audio_function, 0x100,
-                     "%s_audio", opcodename); //h.optext->t.opcod);
-            lua_getglobal(L, audio_function);
-            if (!lua_isnil(L, 1)) {
-                keys.audio_key = luaL_ref(L, LUA_REGISTRYINDEX);
-                lua_pop(L, 1);
-            }
-            char noteoff_function[0x100];
-            snprintf(noteoff_function, 0x100,
-                     "%s_noteoff", opcodename); //h.optext->t.opcod);
-            lua_getglobal(L, noteoff_function);
-            if (!lua_isnil(L, 1)) {
-                keys.noteoff_key = luaL_ref(L, LUA_REGISTRYINDEX);
-                lua_pop(L, 1);
-            }
-        } else {
-            log(csound, "luaL_dostring failed with: %d\n", result);
+        int init(CSOUND *csound)
+        {
+                int result = OK;
+                lua_State *L = manageLuaState(csound, 'O');
+                /* Ensure that Csound is available in the global environment. */
+                lua_pushlightuserdata(L, csound);
+                lua_setfield(L, LUA_GLOBALSINDEX, "csound");
+                const char *opcodename = ((STRINGDAT *)opcodename_)->data;
+                const char *luacode = ((STRINGDAT *)luacode_)->data;
+                //log(csound, "Executing Lua code:\n%s\n", luacode);
+                result = luaL_dostring(L, luacode);
+                if (result == 0) {
+                        keys_t &keys = manageLuaReferenceKeys(csound, L, opcodename, 'O');
+                        log(csound, "Opcode: %s\n", opcodename);
+                        log(csound, "Result: %d\n", result);
+                        char init_function[0x100];
+                        snprintf(init_function, 0x100,
+                                 "%s_init", opcodename); //h.optext->t.opcod);
+                        lua_getglobal(L, init_function);
+                        if (!lua_isnil(L, 1)) {
+                                keys.init_key = luaL_ref(L, LUA_REGISTRYINDEX);
+                                lua_pop(L, 1);
+                        }
+                        char kontrol_function[0x100];
+                        snprintf(kontrol_function, 0x100,
+                                 "%s_kontrol", opcodename); //h.optext->t.opcod);
+                        lua_getglobal(L, kontrol_function);
+                        if (!lua_isnil(L, 1)) {
+                                keys.kontrol_key = luaL_ref(L, LUA_REGISTRYINDEX);
+                                lua_pop(L, 1);
+                        }
+                        char audio_function[0x100];
+                        snprintf(audio_function, 0x100,
+                                 "%s_audio", opcodename); //h.optext->t.opcod);
+                        lua_getglobal(L, audio_function);
+                        if (!lua_isnil(L, 1)) {
+                                keys.audio_key = luaL_ref(L, LUA_REGISTRYINDEX);
+                                lua_pop(L, 1);
+                        }
+                        char noteoff_function[0x100];
+                        snprintf(noteoff_function, 0x100,
+                                 "%s_noteoff", opcodename); //h.optext->t.opcod);
+                        lua_getglobal(L, noteoff_function);
+                        if (!lua_isnil(L, 1)) {
+                                keys.noteoff_key = luaL_ref(L, LUA_REGISTRYINDEX);
+                                lua_pop(L, 1);
+                        }
+                } else {
+                        log(csound, "luaL_dostring failed with: %d\n", result);
+                }
+                return result;
         }
-        return result;
-    }
 };
 
 extern "C"
 {
-    /**
-     * The only difference between the luacall opcodes is the "thread"
-     * defining when they are called, which has exactly the same meaning as
-     * for a C opcode. The user must take care to define, in Lua, the opcode
-     * routines required by that specific "thread."
-     */
-    OENTRY oentries[] = {
-        {
-            (char*)"lua_exec",
-            sizeof(cslua_exec),
-            0,
-            1,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_exec::init_,
-            (SUBR) 0,
-            (SUBR) 0,
-        },
-        {
-            (char*)"lua_iopcall",
-            sizeof(cslua_opcall),
-            0,
-            1,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall::init_,
-            (SUBR) 0,
-            (SUBR) 0,
-        },
-        {
-            (char*)"lua_ikopcall",
-            sizeof(cslua_opcall),
-            0,
-            3,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall::init_,
-            (SUBR) cslua_opcall::kontrol_,
-            (SUBR) 0,
-        },
-        {
-            (char*)"lua_iaopcall",
-            sizeof(cslua_opcall),
-            0,
-            5,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall::init_,
-            (SUBR) 0,
-            (SUBR) cslua_opcall::audio_,
-        },
-        {
-            (char*)"lua_iopcall_off",
-            sizeof(cslua_opcall_off),
-            0,
-            1,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall_off::init_,
-            (SUBR) 0,
-            (SUBR) 0,
-        },
-        {
-            (char*)"lua_ikopcall_off",
-            sizeof(cslua_opcall_off),
-            0,
-            3,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall_off::init_,
-            (SUBR) cslua_opcall_off::kontrol_,
-            (SUBR) 0,
-        },
-        {
-            (char*)"lua_iaopcall_off",
-            sizeof(cslua_opcall_off),
-            0,
-            5,
-            (char*)"",
-            (char*)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
-            "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
-            (SUBR) cslua_opcall_off::init_,
-            (SUBR) 0,
-            (SUBR) cslua_opcall_off::audio_,
-        },
-        {
-            (char*)"lua_opdef",
-            sizeof(cslua_opdef),
-            0,
-            1,
-            // No outputs.
-            (char*)"",
-            // Inputs: name and Lua code.
-            // The Lua code will usually be a multi-line string.
-            (char*)"TT",
-            (SUBR) cslua_opdef::init_,
-            0,
-            0,
-        },
+        /**
+         * The only difference between the luacall opcodes is the "thread"
+         * defining when they are called, which has exactly the same meaning as
+         * for a C opcode. The user must take care to define, in Lua, the opcode
+         * routines required by that specific "thread."
+         */
+        OENTRY oentries[] = {
+                {
+                        (char *)"lua_exec",
+                        sizeof(cslua_exec),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_exec::init_,
+                        (SUBR) 0,
+                        (SUBR) 0,
+                },
+                {
+                        (char *)"lua_iopcall",
+                        sizeof(cslua_opcall),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall::init_,
+                        (SUBR) 0,
+                        (SUBR) 0,
+                },
+                {
+                        (char *)"lua_ikopcall",
+                        sizeof(cslua_opcall),
+                        0,
+                        3,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall::init_,
+                        (SUBR) cslua_opcall::kontrol_,
+                        (SUBR) 0,
+                },
+                {
+                        (char *)"lua_iaopcall",
+                        sizeof(cslua_opcall),
+                        0,
+                        5,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall::init_,
+                        (SUBR) 0,
+                        (SUBR) cslua_opcall::audio_,
+                },
+                {
+                        (char *)"lua_iopcall_off",
+                        sizeof(cslua_opcall_off),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall_off::init_,
+                        (SUBR) 0,
+                        (SUBR) 0,
+                },
+                {
+                        (char *)"lua_ikopcall_off",
+                        sizeof(cslua_opcall_off),
+                        0,
+                        3,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall_off::init_,
+                        (SUBR) cslua_opcall_off::kontrol_,
+                        (SUBR) 0,
+                },
+                {
+                        (char *)"lua_iaopcall_off",
+                        sizeof(cslua_opcall_off),
+                        0,
+                        5,
+                        (char *)"",
+                        (char *)"TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
+                        "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+                        (SUBR) cslua_opcall_off::init_,
+                        (SUBR) 0,
+                        (SUBR) cslua_opcall_off::audio_,
+                },
+                {
+                        (char *)"lua_opdef",
+                        sizeof(cslua_opdef),
+                        0,
+                        1,
+                        // No outputs.
+                        (char *)"",
+                        // Inputs: name and Lua code.
+                        // The Lua code will usually be a multi-line string.
+                        (char *)"TT",
+                        (SUBR) cslua_opdef::init_,
+                        0,
+                        0,
+                },
+                {
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                }
+        };
+
+        PUBLIC int csoundModuleCreate(CSOUND *csound)
         {
-            0,
-            0,
-            0,
-            0,
-            0,
-            0,
-            0,
-            0,
-            0,
+                void *lua_states_mutex = csound->Create_Mutex(0);
+        csound::CreateGlobalPointer(csound, "lua_states_mutex", lua_states_mutex);
+                std::vector<LuaStateForThread> *luaStatesForThreads = new std::vector<LuaStateForThread>;
+        csound::CreateGlobalPointer(csound, "luaStatesForThreads", luaStatesForThreads);
+                void *reference_keys_mutex = csound->Create_Mutex(0);
+        csound::CreateGlobalPointer(csound, "reference_keys_mutex", reference_keys_mutex);
+                std::map<const lua_State *, std::map<std::string, keys_t> > *luaReferenceKeys = new std::map<const lua_State *,
+                std::map<std::string, keys_t> >;
+        csound::CreateGlobalPointer(csound, "luaReferenceKeys", luaReferenceKeys);
+                return 0;
         }
-    };
-
-    PUBLIC int csoundModuleCreate(CSOUND *csound)
-    {
-        lua_states_mutex = csound->Create_Mutex(0);
-        luaStatesForThreads = new std::vector<LuaStateForThread>;
-        reference_keys_mutex = csound->Create_Mutex(0);
-        luaReferenceKeys = new std::map<const lua_State *, std::map<std::string, keys_t> >;
-        return 0;
-    }
 
-    PUBLIC int csoundModuleInit(CSOUND *csound)
-    {
-        int status = 0;
-        for(OENTRY *oentry = &oentries[0]; oentry->opname; oentry++) {
-            status |= csound->AppendOpcode(csound,
-                                           oentry->opname,
-                                           oentry->dsblksiz,
-                                           oentry->flags,
-                                           oentry->thread,
-                                           oentry->outypes,
-                                           oentry->intypes,
-                                           (int (*)(CSOUND*,void*)) oentry->iopadr,
-                                           (int (*)(CSOUND*,void*)) oentry->kopadr,
-                                           (int (*)(CSOUND*,void*)) oentry->aopadr);
+        PUBLIC int csoundModuleInit(CSOUND *csound)
+        {
+                int status = 0;
+                for (OENTRY *oentry = &oentries[0]; oentry->opname; oentry++) {
+                        status |= csound->AppendOpcode(csound,
+                                                       oentry->opname,
+                                                       oentry->dsblksiz,
+                                                       oentry->flags,
+                                                       oentry->thread,
+                                                       oentry->outypes,
+                                                       oentry->intypes,
+                                                       (int (*)(CSOUND *,void *)) oentry->iopadr,
+                                                       (int (*)(CSOUND *,void *)) oentry->kopadr,
+                                                       (int (*)(CSOUND *,void *)) oentry->aopadr);
+                }
+                manageLuaState(csound, 'O');
+                return status;
         }
-        manageLuaState(csound, 'O');
-        return status;
-    }
 
-    PUBLIC int csoundModuleDestroy(CSOUND *csound)
-    {
-        if (lua_states_mutex != 0) {
-            csound->LockMutex(lua_states_mutex);
-            for (std::vector<LuaStateForThread>::iterator it = luaStatesForThreads->begin(); it != luaStatesForThreads->end(); ++it) {
-                lua_close(it->L);
+        PUBLIC int csoundModuleDestroy(CSOUND *csound)
+        {
+        void *lua_states_mutex = 0;
+        csound::QueryGlobalPointer(csound, "lua_states_mutex", lua_states_mutex);
+                if (lua_states_mutex != 0) {
+                        csound->LockMutex(lua_states_mutex);
+            std::vector<LuaStateForThread> *luaStatesForThreads = 0;
+            csound::QueryGlobalPointer(csound, "luaStatesForThreads", luaStatesForThreads);
+            if (luaStatesForThreads != 0) {
+                for (std::vector<LuaStateForThread>::iterator it =
+                            luaStatesForThreads->begin();
+                        it != luaStatesForThreads->end(); ++it) {
+                    lua_close(it->L);
+                }
             }
-            luaStatesForThreads->clear();
-            csound->UnlockMutex(lua_states_mutex);
-            csound->DestroyMutex(lua_states_mutex);
-            lua_states_mutex = 0;
-        }
-        if (reference_keys_mutex != 0) {
-            csound->LockMutex(reference_keys_mutex);
-            luaReferenceKeys->clear();
-            csound->UnlockMutex(reference_keys_mutex);
-            csound->DestroyMutex(reference_keys_mutex);
-            reference_keys_mutex = 0;
+                        luaStatesForThreads->clear();
+            csound::DestroyGlobalPointer(csound, "luaStatesForThreads", luaStatesForThreads);
+                        csound->UnlockMutex(lua_states_mutex);
+                        csound->DestroyMutex(lua_states_mutex);
+            csound::DestroyGlobalPointer(csound, "lua_states_mutex");
+                        lua_states_mutex = 0;
+                }
+        void *reference_keys_mutex = 0;
+        QueryGlobalPointer(csound, "reference_keys_mutex", reference_keys_mutex);
+                if (reference_keys_mutex != 0) {
+                        csound->LockMutex(reference_keys_mutex);
+            std::map<const lua_State *, std::map<std::string, keys_t> > *luaReferenceKeys = 0;
+            QueryGlobalPointer(csound, "luaReferenceKeys", luaReferenceKeys);
+            if (luaReferenceKeys != 0) {
+                luaReferenceKeys->clear();
+                csound::DestroyGlobalPointer    (csound, "luaReferenceKeys", luaReferenceKeys);
+            }
+                        csound->UnlockMutex(reference_keys_mutex);
+                        csound->DestroyMutex(reference_keys_mutex);
+            csound::DestroyGlobalPointer(csound, "reference_keys_mutex");
+                        reference_keys_mutex = 0;
+                }
+                return OK;
         }
-        return OK;
-    }
 }
diff --git a/Opcodes/OSC.c b/Opcodes/OSC.c
index 85056f2..526e59e 100644
--- a/Opcodes/OSC.c
+++ b/Opcodes/OSC.c
@@ -30,6 +30,8 @@
 #include <lo/lo.h>
 #include <ctype.h>
 
+//#define OSC_DEBUG
+
 /* structure for real time event */
 
 /* typedef struct rtEvt_s { */
@@ -113,7 +115,7 @@ typedef struct {
 static int oscsend_deinit(CSOUND *csound, OSCSEND *p)
 {
     lo_address a = (lo_address)p->addr;
-    if(a != NULL)
+    if (LIKELY(a != NULL))
       lo_address_free(a);
     p->addr = NULL;
     csound->Free(csound, p->lhost);
@@ -142,7 +144,7 @@ static int osc_send_set(CSOUND *csound, OSCSEND *p)
     else
       snprintf(port, 8, "%d", (int) MYFLT2LRND(*p->port));
     hh = (char*) p->host->data;
-    if (*hh=='\0') {
+    if (UNLIKELY(*hh=='\0')) {
       hh = NULL;
       p->lhost = csound->Strdup(csound, "localhost");
     }
@@ -156,7 +158,7 @@ static int osc_send_set(CSOUND *csound, OSCSEND *p)
     p->addr = lo_address_new(hh, pp);
     // MKG: Seems to have been dropped from liblo.
     // But TTL 1 should be the default for multicast.
-    if (p->multicast) lo_address_set_ttl(p->addr, 1);
+    if (UNLIKELY(p->multicast)) lo_address_set_ttl(p->addr, 1);
     p->cnt = 0;
     p->last = 0;
     csound->RegisterDeinitCallback(csound, p,
@@ -180,12 +182,12 @@ static int osc_send(CSOUND *csound, OSCSEND *p)
     char *hh;
     int cmpr = 0;
 
-    if (*p->port<0)
+    if (UNLIKELY(*p->port<0))
       pp = NULL;
     else
       snprintf(port, 8, "%d", (int) MYFLT2LRND(*p->port));
     hh = (char*) p->host->data;
-    if (*hh=='\0') hh = NULL;
+    if (UNLIKELY(*hh=='\0')) hh = NULL;
     /*
        can this be done at init time?
        It was note that this could be creating
@@ -194,27 +196,27 @@ static int osc_send(CSOUND *csound, OSCSEND *p)
     */
     // 152269
     //if (!(hh==NULL && p->lhost == NULL) || strcmp(p->lhost, hh)!=0) {
-    if(p->thread == NULL) {
-     if(hh && p->lhost) cmpr = strcmp(p->lhost, hh);
-    if (!(hh==NULL && p->lhost == NULL) || cmpr !=0) {
-      if (p->addr != NULL)
-        lo_address_free(p->addr);
-      p->addr = lo_address_new(hh, pp);
-      // MKG: This seems to have been dropped from liblo.
-      // if (p->multicast) lo_address_set_ttl(p->addr, 2);
-      if (p->multicast) {
-        u_char ttl = 2;
+    if (p->thread == NULL) {
+      if (hh && p->lhost) cmpr = strcmp(p->lhost, hh);
+      if (!(hh==NULL && p->lhost == NULL) || cmpr !=0) {
+        if (p->addr != NULL)
+          lo_address_free(p->addr);
+        p->addr = lo_address_new(hh, pp);
+        // MKG: This seems to have been dropped from liblo.
+        // if (p->multicast) lo_address_set_ttl(p->addr, 2);
+        if (UNLIKELY(p->multicast)) {
+          u_char ttl = 2;
 #if defined(LINUX)
-        if (setsockopt((long)p->addr, IPPROTO_IP,
-                       IP_MULTICAST_TTL, &ttl, sizeof(ttl))==-1) {
-          csound->Message(csound, Str("Failed to set multicast"));
-        }
+          if (UNLIKELY(setsockopt((long)p->addr, IPPROTO_IP,
+                                  IP_MULTICAST_TTL, &ttl, sizeof(ttl))==-1)) {
+            csound->Message(csound, Str("Failed to set multicast"));
+          }
 #else
-        setsockopt((int)p->addr, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl));
+          setsockopt((int)p->addr, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl));
 #endif
-      }
-      csound->Free(csound, p->lhost);
-      if (hh) p->lhost = csound->Strdup(csound, hh); else p->lhost = NULL;
+        }
+        csound->Free(csound, p->lhost);
+        if (hh) p->lhost = csound->Strdup(csound, hh); else p->lhost = NULL;
       }
     }
     if (p->cnt++ ==0 || *p->kwhen!=p->last) {
@@ -254,7 +256,7 @@ static int osc_send(CSOUND *csound, OSCSEND *p)
           lo_message_add_double(msg, (double)(*arg[i]));
           break;
         case 's':
-            lo_message_add_string(msg, ((STRINGDAT *)arg[i])->data);
+          lo_message_add_string(msg, ((STRINGDAT *)arg[i])->data);
           break;
         case 'b':               /* Boolean */
           if (*arg[i]==FL(0.0)) lo_message_add_true(msg);
@@ -378,25 +380,25 @@ uintptr_t OSCthread(void *pp) {
   return 0;
 }
 
-static int osc_send_async_set(CSOUND *csound, OSCSEND *p) {
-  p->csound = csound;
-  return osc_send_set(csound, p);
-}
-
-static int osc_send_async(CSOUND *csound, OSCSEND *p) {
-  /*RTCLOCK t;
-    csound->InitTimerStruct(&t);*/
-  if(*p->kwhen != p->lasta) {
-    if(p->thread != NULL) {
-      csound->JoinThread(p->thread);
-      p->thread = NULL;
-    }
-    p->thread = csound->CreateThread(OSCthread, p);
-    p->lasta = *p->kwhen;
-  }
-  // printf("wait: %.13f \n", (csound->GetRealTime(&t))*1000.);
-  return OK;
-}
+/* static int osc_send_async_set(CSOUND *csound, OSCSEND *p) { */
+/*   p->csound = csound; */
+/*   return osc_send_set(csound, p); */
+/* } */
+
+/* static int osc_send_async(CSOUND *csound, OSCSEND *p) { */
+/*     /\*RTCLOCK t; */
+/*       csound->InitTimerStruct(&t);*\/ */
+/*     if (*p->kwhen != p->lasta) { */
+/*       if (p->thread != NULL) { */
+/*         csound->JoinThread(p->thread); */
+/*         p->thread = NULL; */
+/*       } */
+/*       p->thread = csound->CreateThread(OSCthread, p); */
+/*       p->lasta = *p->kwhen; */
+/*     } */
+/*     // printf("wait: %.13f \n", (csound->GetRealTime(&t))*1000.); */
+/*     return OK; */
+/* } */
 
 
 /* get pointer to globals structure, allocating it on the first call */
@@ -456,7 +458,7 @@ static int OSC_handler(const char *path, const char *types,
 {
     OSC_PORT  *pp = (OSC_PORT*) p;
     OSCLISTEN *o;
-    CSOUND *csound = (CSOUND *) pp->csound;
+    CSOUND    *csound = (CSOUND *) pp->csound;
     int       retval = 1;
 
     pp->csound->LockMutex(pp->mutex_);
@@ -517,7 +519,7 @@ static int OSC_handler(const char *path, const char *types,
                 m->args[i].blob =
                   csound->Malloc(csound,len);
                 memcpy(m->args[i].blob, argv[i], len);
-#ifdef JPFF
+#ifdef OSC_DEBUG
                 {
                   lo_blob *bb = (lo_blob*)m->args[i].blob;
                   int size = lo_blob_datasize(bb);
@@ -579,7 +581,7 @@ static int osc_listener_init(CSOUND *csound, OSCINIT *p)
     ports[n].oplst = NULL;
     snprintf(buff, 32, "%d", (int) *(p->port));
     ports[n].thread = lo_server_thread_new(buff, OSC_error);
-    if (ports[n].thread==NULL)
+    if (UNLIKELY(ports[n].thread==NULL))
       return csound->InitError(csound,
                                Str("cannot start OSC listener on port %s\n"),
                                buff);
@@ -615,7 +617,7 @@ static int osc_listener_initMulti(CSOUND *csound, OSCINITM *p)
     snprintf(buff, 32, "%d", (int) *(p->port));
     ports[n].thread = lo_server_thread_new_multicast(p->group->data,
                                                      buff, OSC_error);
-    if (ports[n].thread==NULL)
+    if (UNLIKELY(ports[n].thread==NULL))
       return csound->InitError(csound,
                                Str("cannot start OSC listener on port %s\n"),
                                buff);
@@ -677,8 +679,8 @@ static int OSC_list_init(CSOUND *csound, OSCLISTEN *p)
     //void  *x;
     int   i, n;
 
-    OSC_GLOBALS *pp = (OSC_GLOBALS*)
-                        csound->QueryGlobalVariable(csound, "_OSC_globals");
+    OSC_GLOBALS *pp =
+      (OSC_GLOBALS*) csound->QueryGlobalVariable(csound, "_OSC_globals");
     if (UNLIKELY(pp == NULL))
       return csound->InitError(csound, Str("OSC not running"));
     /* find port */
@@ -695,7 +697,8 @@ static int OSC_list_init(CSOUND *csound, OSCLISTEN *p)
       return csound->InitError(csound, Str("invalid number of arguments"));
     if (UNLIKELY((int) strlen((char*) p->type->data) != n))
       return csound->InitError(csound,
-                               "argument list inconsistent with format string");
+                               Str("argument list inconsistent with "
+                                   "format string"));
     strcpy(p->saved_types, (char*) p->type->data);
     for (i = 0; i < n; i++) {
       const char *s;
@@ -703,7 +706,6 @@ static int OSC_list_init(CSOUND *csound, OSCLISTEN *p)
       if (s[0] == 'g')
         s++;
       switch (p->saved_types[i]) {
-        //#ifdef SOMEFINEDAY
       case 'G':
       case 'A':
       case 'D':
@@ -711,7 +713,6 @@ static int OSC_list_init(CSOUND *csound, OSCLISTEN *p)
       case 'S':
         p->saved_types[i] = 'b';
         break;
-        //#endif
       case 'c':
       case 'd':
       case 'f':
@@ -782,20 +783,20 @@ static int OSC_list(CSOUND *csound, OSCLISTEN *p)
           //printf("blob found %p type %c\n", m->args[i].blob, c);
           //printf("length = %d\n", lo_blob_datasize(m->args[i].blob));
           int *idata = lo_blob_dataptr(m->args[i].blob);
-          if(c == 'D') {
+          if (c == 'D') {
             int j;
             MYFLT *data = (MYFLT *) idata;
             ARRAYDAT* arr = (ARRAYDAT*)p->args[i];
             int asize = 1;
-            for(j=0; j < arr->dimensions; j++) {
+            for (j=0; j < arr->dimensions; j++) {
               asize *= arr->sizes[j];
             }
             len /= sizeof(MYFLT);
-            if(asize < len) {
+            if (asize < len) {
               arr->data = (MYFLT *)
                 csound->ReAlloc(csound, arr->data, len*sizeof(MYFLT));
               asize = len;
-             for(j = 0; j < arr->dimensions-1; j++)
+             for (j = 0; j < arr->dimensions-1; j++)
               asize /= arr->sizes[j];
              arr->sizes[arr->dimensions-1] = asize;
             }
@@ -809,17 +810,17 @@ static int OSC_list(CSOUND *csound, OSCLISTEN *p)
             foo->dimensions = idata[0];
             csound->Free(csound, foo->sizes);
             foo->sizes = (int*)csound->Malloc(csound, sizeof(int)*idata[0]);
-#ifdef JPFF
+#ifdef OSC_DEBUG
             printf("dimension=%d\n", idata[0]);
 #endif
             for (j=0; j<idata[0]; j++) {
               foo->sizes[j] = idata[j+1];
-#ifdef JPFF
+#ifdef OSC_DEBUG
               printf("sizes[%d] = %d\n", j, idata[j+1]);
 #endif
               size*=idata[j+1];
             }
-#ifdef JPFF
+#ifdef OSC_DEBUG
             printf("idata = %i %i %i %i %i %i %i ...\n",
                    idata[0], idata[1], idata[2], idata[3],
                    idata[4], idata[5], idata[6]);
@@ -846,30 +847,33 @@ static int OSC_list(CSOUND *csound, OSCLISTEN *p)
                                        Str("Invalid ftable no. %d"), fno);
 
             ftp = csound->FTnp2Find(csound, p->args[i]);
-           if (ftp==NULL) {
+            if (UNLIKELY(ftp==NULL)) {
               return csound->PerfError(csound, p->h.insdshead,
                                        Str("OSC internal error"));
             }
-           if(len > (int)  (ftp->flen*sizeof(MYFLT)))
+            if (len > (int)  (ftp->flen*sizeof(MYFLT)))
               ftp->ftable = (MYFLT*)csound->ReAlloc(csound, ftp->ftable,
                                                     len*sizeof(MYFLT));
             memcpy(ftp->ftable,data,len);
 
-            /*ftp = csound->FTFindP(csound, p->args[i]);
-            if (ftp==NULL) { // need to allocate ***FIXME***
+#if 0
+            ftp = csound->FTFindP(csound, p->args[i]);
+            if (UNLIKELY(ftp==NULL)) { // need to allocate ***FIXME***
               return csound->PerfError(csound, p->h.insdshead,
                                        Str("OSC internal error"));
             }
-
             memcpy(ftp, data, sizeof(FUNC)-sizeof(MYFLT*));
             ftp->fno = fno;
+#ifdef OSC_DEBUG
             printf("%d \n", len);
-            if(len > ftp->flen*sizeof(MYFLT))
-              ftp->ftable = (MYFLT*)csound->ReAlloc(csound, ftp->ftable,
-                                                len-sizeof(FUNC)+sizeof(MYFLT*));
-            */
+#endif
+            if (len > ftp->flen*sizeof(MYFLT))
+              ftp->ftable =
+                (MYFLT*)csound->ReAlloc(csound, ftp->ftable,
+                                        len-sizeof(FUNC)+sizeof(MYFLT*));
+#endif
             {
-#ifdef NEVER
+#ifdef OSC_DEBUG
               MYFLT* dst = ftp->ftable;
               MYFLT* src = (MYFLT*)(&(data->ftable));
 
@@ -916,8 +920,8 @@ static OENTRY localops[] = {
     (SUBR)OSC_list_init, (SUBR)OSC_list, NULL, NULL },
   { "OSClisten", S(OSCLISTEN),0, 3, "k", "iSS",
     (SUBR)OSC_list_init, (SUBR)OSC_list, NULL, NULL },
-  { "OSCsendA", S(OSCSEND), 0, 3, "", "kSkSS*",
-    (SUBR)osc_send_async_set, (SUBR)osc_send_async, NULL, NULL }
+  /* { "OSCsendA", S(OSCSEND), _QQ, 3, "", "kSkSS*", */
+  /*   (SUBR)osc_send_async_set, (SUBR)osc_send_async, NULL, NULL } */
 };
 
 PUBLIC long csound_opcode_init(CSOUND *csound, OENTRY **ep)
diff --git a/Opcodes/VST4CS_LINUX.md b/Opcodes/VST4CS_LINUX.md
new file mode 100644
index 0000000..51a2384
--- /dev/null
+++ b/Opcodes/VST4CS_LINUX.md
@@ -0,0 +1,36 @@
+Building the vst4cs Opcodes and CsoundVST on Linux
+==================================================
+
+The vst4cs opcodes which enable Csound to host VST plugins work just fine on Linux. So does CsoundVST which enables Csound itself to run as a VST plugin. For a possibly incomplete but very useful list of VST plugins (and VST hosts) available on Linux, see http://linux-sound.org/linux-vst-plugins.html.
+
+Please be aware that the Csound license permits building and linking code from Steinberg's VST SDK and Hermann Seib's VST Host, see the license text in the vst4cs and CsoundVST source code.
+
+To build and install the VST features on Linux:
+
+1. Ensure that your environment and software are consistent with respect to CPU architecture. Csound on Linux by default is built for 64 bit CPU architecture, e.g. `amd64`, and for double-precision audio samples. Your target VST plugins and hosts should also be built for 64 bit CPU architecture.
+
+2. Download Steinberg's VST SDK from https://www.steinberg.net/en/company/developers.html, e.g. https://download.steinberg.net/sdk_downloads/vstsdk368_08_11_2017_build_121.zip. Unpack the zip file in your home directory.
+
+3. Patch ~/VST_SDK/VST2_SK/pluginterfaces/vst2.x/aeffect.h as follows. At about line 67, change
+
+```
+#elif defined(__GNUC__)
+```
+to 
+```
+#elif defined(__MINGW32__)
+```
+
+4. Do a fresh pull from the Csound GitHub repository.
+
+5. Now you can build Csound with the VST features included. In your Csound build directory:
+
+   1. Configure CMake to build Csound with the VST features. Delete your `CMakeCache.txt` file. On the cmake command line, add: `-DVSTSDK2X_INCLUDE_DIR:PATH=~/VST_SDK/VST2_SDK -DBUILD_CSOUND_VST=1 -DBUILD_VST4CS_OPCODES=1`. You can also configure this using cmake-gui.  Run cmake to regenerate your makefiles.
+
+   2. Run `make`.
+
+   3. Run `sudo make install.`
+
+
+
+
diff --git a/Opcodes/ableton_link_opcodes.cpp b/Opcodes/ableton_link_opcodes.cpp
index 14c5326..81c0398 100644
--- a/Opcodes/ableton_link_opcodes.cpp
+++ b/Opcodes/ableton_link_opcodes.cpp
@@ -824,7 +824,7 @@ extern "C" {
         0,
         3,
         (char*)"",
-        (char*)"kJP",
+        (char*)"ikJP",
         (SUBR) link_beat_request_t::init_,
         (SUBR) link_beat_request_t::kontrol_,
         0,
@@ -836,7 +836,7 @@ extern "C" {
         0,
         3,
         (char*)"",
-        (char*)"kJP",
+        (char*)"ikJP",
         (SUBR) link_beat_force_t::init_,
         (SUBR) link_beat_force_t::kontrol_,
         0,
diff --git a/Opcodes/ableton_link_test.csd b/Opcodes/ableton_link_test_force.csd
similarity index 85%
copy from Opcodes/ableton_link_test.csd
copy to Opcodes/ableton_link_test_force.csd
index 2d1cf7e..6f49c24 100644
--- a/Opcodes/ableton_link_test.csd
+++ b/Opcodes/ableton_link_test_force.csd
@@ -5,20 +5,20 @@ T E S T S   F O R   A B L E T O N   L I N K   O P C O D E S
 Michael Gogins
 12 January 2017
 
-These cover most of the things in Ableton Link's TEST-PLAN.md. This csd is to 
-be used on conjunction with the command-line LinkHut application in the 
+These cover most of the things in Ableton Link's TEST-PLAN.md. This csd is to
+be used on conjunction with the command-line LinkHut application in the
 Ableton Link Git repository.
 
-There are two sections. In the first, we start LinkHut first and use it to 
-control Csound's tempo. In the second, we start Csound first and use it to 
+There are two sections. In the first, we start LinkHut first and use it to
+control Csound's tempo. In the second, we start Csound first and use it to
 conrol LinkHut's tempo.
 
-This csd automatically performs its tests. The user has to manually operate 
+This csd automatically performs its tests. The user has to manually operate
 LinkHut as instructed below.
 
-In all cases system audio should be enabled so the user can hear the beat, and 
-both Csound and LinkHut should be run from the command line in separate, 
-simultaeously visible terminal windows so the user can compare the diagnostic 
+In all cases system audio should be enabled so the user can hear the beat, and
+both Csound and LinkHut should be run from the command line in separate,
+simultaeously visible terminal windows so the user can compare the diagnostic
 messages.
 
 FIRST LINKHUT, THEN CSOUND
@@ -27,27 +27,27 @@ Start LinkHut, then start this csd.
 
 Test 1 -- Join Session without Changing Session Tempo, and Tempo Sync
 
-At first, both peers should show a tempo of 120 which is the default for this 
-csd. Change tempo in LinkHut. Tempo in Csound should sync if Link is enabled, 
-but not sync if Link is disabled. This csd will change tempo to 80 after 10 
-seconds. LinkHut should sync if Link is enabled, but not sync if Link is 
+At first, both peers should show a tempo of 120 which is the default for this
+csd. Change tempo in LinkHut. Tempo in Csound should sync if Link is enabled,
+but not sync if Link is disabled. This csd will change tempo to 80 after 10
+seconds. LinkHut should sync if Link is enabled, but not sync if Link is
 enabled.
 
 Test 2 -- Tempo Range
 
-Use LinkHut to change tempo from 20 to 999. Both sessions should show the full 
+Use LinkHut to change tempo from 20 to 999. Both sessions should show the full
 range.
 
 Test 3 -- Tempo Stability
 
-After 20 seconds this csd should disable Link, and after another 10 seconds 
-Link should be re-enabled. The session tempo and beat should not change. Then, 
-in LinkHut, manually disable and re-enable Link. The session tempo and beat 
+After 20 seconds this csd should disable Link, and after another 10 seconds
+Link should be re-enabled. The session tempo and beat should not change. Then,
+in LinkHut, manually disable and re-enable Link. The session tempo and beat
 should not change.
 
 Test 4 -- Beat Stability
 
-Kill and restart LinkHut while this csd is running. Enable and disable Link in 
+Kill and restart LinkHut while this csd is running. Enable and disable Link in
 LinkHut. The beat should continue without any temporal or rhythmic discontinuity.
 
 FIRST CSOUND, THEN LINKHUT
@@ -56,29 +56,29 @@ Start this csd, then start LinkHut.
 
 Test 5 -- Join Session without Changing Session Tempo, and Tempo Sync
 
-At first, both peers should show a tempo of 72 which is the default for this 
-csd. Change tempo in LinkHut. Tempo in Csound should sync if Link is enabled, 
-but not sync if Link is disabled. This csd will change tempo to 80 after 10 
-seconds. LinkHut should sync if Link is enabled, but not sync if Link is 
+At first, both peers should show a tempo of 72 which is the default for this
+csd. Change tempo in LinkHut. Tempo in Csound should sync if Link is enabled,
+but not sync if Link is disabled. This csd will change tempo to 80 after 10
+seconds. LinkHut should sync if Link is enabled, but not sync if Link is
 enabled.
 
 Test 6 -- Beat Stability
 
-Kill and restart this csd while LinkHut is running. Enable and disable Link in 
-LinkHut. The beat should continue without any temporal or rhythmic 
+Kill and restart this csd while LinkHut is running. Enable and disable Link in
+LinkHut. The beat should continue without any temporal or rhythmic
 discontinuity.
 
-NOTE: At this time, Csound does not implement delay compensation, so testing 
-for delay compensation is not applicable. By using the smallest practical 
-audio latency in Csound, however, the sync should not be much looser than 
-Ableton's minimum requirement of 3 milliseconds. This is approximately the 
+NOTE: At this time, Csound does not implement delay compensation, so testing
+for delay compensation is not applicable. By using the smallest practical
+audio latency in Csound, however, the sync should not be much looser than
+Ableton's minimum requirement of 3 milliseconds. This is approximately the
 accuracy of a really good performing musician.
 </CsLicense>
 <CsOptions>
--m0 -d -odac
+-m0 -d -odac8
 </CsOptions>
 <CsInstruments>
-sr = 44100
+sr = 48000
 ksmps = 10
 nchnls = 2
 
@@ -92,15 +92,23 @@ asignal oscils 20000, p4, 0
 outs asignal, asignal
 endin
 
-instr TexpoChaxge
+instr TempoChange
 link_tempo_set gi_link, 80
 endin
 
-instr LixkExable
+instr LinkEnable
 i_enabled = p4
 link_enable gi_link, i_enabled
 endin
 
+instr LinkForce
+print p4, p5, p6
+k_beat init p4
+k_time init p5
+k_quantum init p6
+link_beat_force gi_link, k_beat, k_time, k_quantum
+endin
+
 instr LinkMonitor
 i_kperiod_seconds = ksmps / sr
 printf_i "kperiod: %9.6f seconds.\n", 1, i_kperiod_seconds
@@ -122,8 +130,9 @@ endin
 </CsInstruments>
 <CsScore>
 f 0 360
-i "TexpoChaxge" 10 80
-i "LixkExable"  20 1 0
-i "LixkExable"  30 1 1
+i "TempoChange"  5 80
+i "LinkEnable"  10  1 0
+i "LinkEnable"  15  1 1
+i "LinkForce"   20  2 0 3
 </CsScore>
 </CsoundSynthesizer>
diff --git a/Opcodes/afilters.c b/Opcodes/afilters.c
index 10b5019..a68b0e1 100644
--- a/Opcodes/afilters.c
+++ b/Opcodes/afilters.c
@@ -369,7 +369,7 @@ static int tonexa(CSOUND *csound, TONEX *p) /* From Gabriel Maldonado, modified
     }
     for (j=0; j< lp; j++) {
       /* Should *yt1 be reset to something?? */
-      for (n=0; n<nsmps; n++) {
+      for (n=offset; n<nsmps; n++) {
         double x;
         if (p->khp[n] != p->prvhp) {
           double b;
@@ -470,7 +470,7 @@ static int hibuta(CSOUND *csound, BFIL *p) /*      Hipass filter       */
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
 
-    if (p->afc[0] <= FL(0.0))     {
+    if (UNLIKELY(p->afc[0] <= FL(0.0)))     {
       memcpy(&out[offset], &in[offset], (nsmps-offset)*sizeof(MYFLT));
       return OK;
     }
@@ -520,7 +520,7 @@ static int lobuta(CSOUND *csound, BFIL *p)       /*      Lopass filter       */
     in = p->ain;
     out = p->sr;
 
-    if (*p->afc <= FL(0.0))     {
+    if (UNLIKELY(*p->afc <= FL(0.0)))     {
       memset(out, 0, CS_KSMPS*sizeof(MYFLT));
       return OK;
     }
@@ -571,10 +571,11 @@ static int bppasxx(CSOUND *csound, BBFIL *p)      /*      Bandpass filter     */
     double *a = p->a;
     double t, y;
     uint32_t nn;
+    int asgbw = IS_ASIG_ARG(p->kbw), asgfr = IS_ASIG_ARG(p->kfo);
 
     in = p->ain;
     out = p->sr;
-    if (p->kbw[0] <= FL(0.0))     {
+    if (UNLIKELY(p->kbw[0] <= FL(0.0)))     {
       memset(out, 0, CS_KSMPS*sizeof(MYFLT));
       return OK;
     }
@@ -597,8 +598,8 @@ static int bppasxx(CSOUND *csound, BBFIL *p)      /*      Bandpass filter     */
     //butter_filter(nsmps, offset, in, out, p->a);
     for (nn=offset; nn<nsmps; nn++) {
       MYFLT bw, fr;
-      bw = (IS_ASIG_ARG(p->kbw) ? p->kbw[nn] : *p->kbw);
-      fr = (IS_ASIG_ARG(p->kfo) ? p->kfo[nn] : *p->kfo);
+      bw = (asgbw ? p->kbw[nn] : *p->kbw);
+      fr = (asgfr ? p->kfo[nn] : *p->kfo);
       if (bw != p->lkb || fr != p->lkf) {
         double c, d;
         p->lkf = fr;
@@ -630,6 +631,7 @@ static int bpcutxx(CSOUND *csound, BBFIL *p)      /*      Band reject filter  */
     double *a = p->a;
     double t, y;
     uint32_t nn;
+    int asgbw = IS_ASIG_ARG(p->kbw), asgfr = IS_ASIG_ARG(p->kfo);
 
     in = p->ain;
     out = p->sr;
@@ -639,15 +641,15 @@ static int bpcutxx(CSOUND *csound, BBFIL *p)      /*      Band reject filter  */
       nsmps -= early;
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
-    if (p->kbw[0] <= FL(0.0))     {
-      memcpy(&out[offset], &out[offset], (nsmps-offset)*sizeof(MYFLT));
+    if (UNLIKELY(p->kbw[0] <= FL(0.0)))     {
+      memcpy(&out[offset], &in[offset], (nsmps-offset)*sizeof(MYFLT));
       return OK;
     }
 
     for (nn=offset; nn<nsmps; nn++) {
       MYFLT bw, fr;
-      bw = (IS_ASIG_ARG(p->kbw) ? p->kbw[nn] : *p->kbw);
-      fr = (IS_ASIG_ARG(p->kfo) ? p->kfo[nn] : *p->kfo);
+      bw = (asgbw ? p->kbw[nn] : *p->kbw);
+      fr = (asgfr ? p->kfo[nn] : *p->kfo);
       if (bw != p->lkb || fr != p->lkf) {
         double c, d;
         p->lkf = fr;
diff --git a/Opcodes/ambicode1.c b/Opcodes/ambicode1.c
index 9e52e5c..45cf784 100644
--- a/Opcodes/ambicode1.c
+++ b/Opcodes/ambicode1.c
@@ -112,7 +112,7 @@ static int ibformenc(CSOUND * csound, AMBIC * p)
 
 static int ibformenc_a(CSOUND * csound, AMBICA * p)
 {
-    if (p->tabout->data==NULL || p->tabout->dimensions!=1)
+    if (UNLIKELY(p->tabout->data==NULL || p->tabout->dimensions!=1))
       return csound->InitError(csound,
                                Str("array not initialised in ambibformenc1"));
 
diff --git a/Opcodes/ampmidid.cpp b/Opcodes/ampmidid.cpp
index 15ef895..765a84c 100644
--- a/Opcodes/ampmidid.cpp
+++ b/Opcodes/ampmidid.cpp
@@ -86,7 +86,8 @@ public:
   }
   int kontrol(CSOUND *csound)
   {
-      *kamplitude = dbfs * std::pow( (im * (*kvelocity + ib) ), MYFLT(2.0) ) * onedrms;
+      *kamplitude = dbfs * std::pow( (im * (*kvelocity + ib) ),
+                                     MYFLT(2.0) ) * onedrms;
       return OK;
   }
 };
@@ -131,7 +132,8 @@ public:
       if (*iuse0dbfs != FL(0.0)) {
           dbfs = csound->Get0dBFS(csound);
       }
-      *iamplitude = dbfs * std::pow( (im * (*ivelocity + ib) ), MYFLT(2.0) ) * onedrms;
+      *iamplitude = dbfs * std::pow( (im * (*ivelocity + ib) ),
+                                     MYFLT(2.0) ) * onedrms;
       return OK;
   }
   int noteoff(CSOUND *)
diff --git a/Opcodes/arrayops.cpp b/Opcodes/arrayops.cpp
index 0a7feac..93542f4 100644
--- a/Opcodes/arrayops.cpp
+++ b/Opcodes/arrayops.cpp
@@ -29,9 +29,11 @@
 inline MYFLT frac(MYFLT f) { return std::modf(f, &f); }
 
 //extern
-inline MYFLT lim1(MYFLT f) { return f > FL(0.0) ? (f < FL(1.0) ? f : FL(1.0)) : FL(0.0); }
+inline MYFLT lim1(MYFLT f)
+{ return f > FL(0.0) ? (f < FL(1.0) ? f : FL(1.0)) : FL(0.0); }
 
-inline MYFLT limx(MYFLT f, MYFLT v1, MYFLT v2) { return f > v1 ? (f < v2 ? f : v2) : v1; }
+inline MYFLT limx(MYFLT f, MYFLT v1, MYFLT v2)
+{ return f > v1 ? (f < v2 ? f : v2) : v1; }
 
 /** i-time, k-rate operator
     kout[] op kin[]
@@ -70,7 +72,7 @@ template <MYFLT (*bop)(MYFLT, MYFLT)> struct ArrayOp2 : csnd::Plugin<1, 2> {
     csnd::myfltvec &out = outargs.myfltvec_data(0);
     csnd::myfltvec &in1 = inargs.myfltvec_data(0);
     csnd::myfltvec &in2 = inargs.myfltvec_data(1);
-    if (in2.len() < in1.len())
+    if (UNLIKELY(in2.len() < in1.len()))
       return csound->init_error(Str("second input array is too short\n"));
     out.init(csound, in1.len());
     return process(out, in1, in2);
@@ -170,7 +172,7 @@ struct Dot : csnd::Plugin<1, 2> {
   int init() {
     csnd::myfltvec &in1 = inargs.myfltvec_data(0);
     csnd::myfltvec &in2 = inargs.myfltvec_data(1);
-    if (in2.len() < in1.len())
+    if (UNLIKELY(in2.len() < in1.len()))
       return csound->init_error(Str("second input array is too short\n"));
     outargs[0] = process(in1, in2);
     return OK;
@@ -322,10 +324,14 @@ void csnd::on_load(Csound *csound) {
                                     csnd::thread::ik);
   csnd::plugin<Dot>(csound, "dot", "i", "i[]i[]", csnd::thread::i);
   csnd::plugin<Dot>(csound, "dot", "k", "k[]k[]", csnd::thread::ik);
-  csnd::plugin<Accum<std::multiplies<MYFLT>,1>>(csound, "product", "k", "k[]", csnd::thread::ik);
-  csnd::plugin<Accum<std::plus<MYFLT>,0>>(csound, "sum", "k", "k[]", csnd::thread::ik);
-  csnd::plugin<Accum<std::multiplies<MYFLT>,1>>(csound, "product", "i", "i[]", csnd::thread::i);
-  csnd::plugin<Accum<std::plus<MYFLT>,0>>(csound, "sum", "i", "i[]", csnd::thread::i);
+  csnd::plugin<Accum<std::multiplies<MYFLT>,1>>(csound, "product", "k", "k[]",
+                                                csnd::thread::ik);
+  csnd::plugin<Accum<std::plus<MYFLT>,0>>(csound, "sum", "k", "k[]",
+                                          csnd::thread::ik);
+  csnd::plugin<Accum<std::multiplies<MYFLT>,1>>(csound, "product", "i", "i[]",
+                                                csnd::thread::i);
+  csnd::plugin<Accum<std::plus<MYFLT>,0>>(csound, "sum", "i", "i[]",
+                                          csnd::thread::i);
   csnd::plugin<ArrayOp4<limx>>(csound, "limit", "i[]", "i[]ii",
                                    csnd::thread::i);
   csnd::plugin<ArrayOp4<limx>>(csound, "limit", "k[]", "k[]kk",
diff --git a/Opcodes/arrays.c b/Opcodes/arrays.c
index f39fd15..5257967 100644
--- a/Opcodes/arrays.c
+++ b/Opcodes/arrays.c
@@ -101,7 +101,7 @@ static int array_init(CSOUND *csound, ARRAYINIT *p)
                           Str("Error: no sizes set for array initialization"));
 
     for (i = 0; i < inArgCount; i++) {
-      if (MYFLT2LRND(*p->isizes[i]) <= 0) {
+      if (UNLIKELY(MYFLT2LRND(*p->isizes[i]) <= 0)) {
         return
           csound->InitError(csound,
                       Str("Error: sizes must be > 0 for array initialization"));
@@ -115,12 +115,11 @@ static int array_init(CSOUND *csound, ARRAYINIT *p)
     }
 
     size = arrayDat->sizes[0];
-
     if (inArgCount > 1) {
       for (i = 1; i < inArgCount; i++) {
         size *= arrayDat->sizes[i];
       }
-      size = MYFLT2LRND(size);
+      //size = MYFLT2LRND(size); // size is an int not float
     }
 
     {
@@ -145,7 +144,7 @@ static int tabfill(CSOUND *csound, TABFILL *p)
     size_t memMyfltSize;
     MYFLT  **valp = p->iargs;
     tabensure(csound, p->ans, nargs);
-    if (p->ans->dimensions > 2) {
+    if (UNLIKELY(p->ans->dimensions > 2)) {
       return
         csound->InitError(csound,
                           Str("fillarrray: arrays with dim > 2 not "
@@ -319,7 +318,7 @@ static int tabarithset(CSOUND *csound, TABARITH *p)
 {
     if (LIKELY(p->left->data && p->right->data)) {
       int size;
-      if (p->left->dimensions!=1 || p->right->dimensions!=1)
+      if (UNLIKELY(p->left->dimensions!=1 || p->right->dimensions!=1))
         return
           csound->InitError(csound,
                             Str("Dimensions do not match in array arithmetic"));
@@ -346,7 +345,7 @@ static int tabarithset1(CSOUND *csound, TABARITH1 *p)
 
     if (LIKELY(left->data)) {
       int size;
-      if (left->dimensions!=1)
+      if (UNLIKELY(left->dimensions!=1))
         return
           csound->InitError(csound,
                             Str("Dimension does not match in array arithmetic"));
@@ -364,7 +363,7 @@ static int tabarithset2(CSOUND *csound, TABARITH2 *p)
     ARRAYDAT *right = p->right;
     if (LIKELY(right->data)) {
       int size;
-      if (right->dimensions!=1)
+      if (UNLIKELY(right->dimensions!=1))
         return
           csound->InitError(csound,
                             Str("Dimension does not match in array arithmetic"));
@@ -384,8 +383,7 @@ static int tabadd(CSOUND *csound, TABARITH *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data==NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -404,8 +402,7 @@ static int tabsub(CSOUND *csound, TABARITH *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data==NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -423,7 +420,7 @@ static int tabsub(CSOUND *csound, TABARITH *p)
 /*     int size    = ans->sizes[0]; */
 /*     int i; */
 
-/*     if (UNLIKELY(p->ans->data == NULL || p->left->data==NULL)) */
+/*     if (UNLIKELY(ans->data == NULL || l->data==NULL)) */
 /*          return csound->PerfError(csound, p->h.insdshead, */
 /*                                   Str("array-variable not initialised")); */
 
@@ -441,8 +438,7 @@ static int tabmult(CSOUND *csound, TABARITH *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data== NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -462,8 +458,7 @@ static int tabdiv(CSOUND *csound, TABARITH *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data== NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -487,8 +482,7 @@ static int tabrem(CSOUND *csound, TABARITH *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data== NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -508,8 +502,7 @@ static int tabpow(CSOUND *csound, TABARITH *p)
     int   i;
     MYFLT tmp;
 
-    if (UNLIKELY(p->ans->data == NULL ||
-                 p->left->data== NULL || p->right->data==NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL || r->data==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -584,7 +577,7 @@ static int tabaisub(CSOUND *csound, TABARITH1 *p)
     int size      = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL || l->data== NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -604,7 +597,7 @@ static int tabiasub(CSOUND *csound, TABARITH2 *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(p->ans->data == NULL || l->data== NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -682,17 +675,18 @@ static int tabiadiv(CSOUND *csound, TABARITH2 *p)
     int size    = ans->sizes[0];
     int i;
 
-    if (UNLIKELY(r==FL(0.0)))
-      return csound->PerfError(csound, p->h.insdshead,
-                               Str("division by zero in array-var"));
     if (UNLIKELY(ans->data == NULL || l->data== NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
     if (l->sizes[0]<size) size = l->sizes[0];
     if (ans->sizes[0]<size) size = ans->sizes[0];
-    for (i=0; i<size; i++)
+    for (i=0; i<size; i++) {
+      if (UNLIKELY(l->data[i]==FL(0.0)))
+        return csound->PerfError(csound, p->h.insdshead,
+                                 Str("division by zero in array-var"));
       ans->data[i] = r / l->data[i];
+    }
     return OK;
 }
 
@@ -708,7 +702,7 @@ static int tabairem(CSOUND *csound, TABARITH1 *p)
     if (UNLIKELY(r==FL(0.0)))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("division by zero in array-var"));
-    if (UNLIKELY(p->ans->data == NULL || p->left->data== NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -724,8 +718,8 @@ static int tabiarem(CSOUND *csound, TABARITH2 *p)
 {
     ARRAYDAT *ans = p->ans;
     ARRAYDAT *l   = p->right;
-    MYFLT r     = *p->left;
-    int size    = ans->sizes[0];
+    MYFLT r       = *p->left;
+    int size      = ans->sizes[0];
     int i;
 
     if (UNLIKELY(ans->data == NULL || l->data== NULL))
@@ -756,7 +750,7 @@ static int tabaipow(CSOUND *csound, TABARITH1 *p)
     MYFLT tmp;
     int intcase = (MODF(r,&tmp)==FL(0.0));
 
-    if (UNLIKELY(p->ans->data == NULL || p->left->data== NULL))
+    if (UNLIKELY(ans->data == NULL || l->data== NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("array-variable not initialised"));
 
@@ -828,6 +822,422 @@ iIARRAY(tabiadivi,tabiadiv)
 iIARRAY(tabiaremi,tabiarem)
 iIARRAY(tabiapowi,tabiapow)
 
+//a[]+a[]
+static int tabaadd(CSOUND *csound, TABARITH *p)
+{
+    ARRAYDAT *ans = p->ans;
+    ARRAYDAT *l   = p->left;
+    ARRAYDAT *r   = p->right;
+    int size    = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (l->sizes[0]<size) size = l->sizes[0];
+    if (r->sizes[0]<size) size = r->sizes[0];
+    if (UNLIKELY(early)) {
+      nsmps -= early;
+    }
+    for (i=0; i<size; i++) {
+      MYFLT *a,*b,*aa;
+      a = (MYFLT*)&(l->data[i]); b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=offset; n<nsmps; n++)
+        aa[n] = a[n] + b[n];
+    }
+    return OK;
+}
+
+// a[]-a[]
+static int tabasub(CSOUND *csound, TABARITH *p)
+{
+    ARRAYDAT *ans = p->ans;
+    ARRAYDAT *l   = p->left;
+    ARRAYDAT *r   = p->right;
+    int size    = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (l->sizes[0]<size) size = l->sizes[0];
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *a,*b,*aa;
+      a = (MYFLT*)&(l->data[i]); b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = a[n] - b[n];
+    }
+    return OK;
+}
+
+// a[]*a[]
+static int tabamul(CSOUND *csound, TABARITH *p)
+{
+    ARRAYDAT *ans = p->ans;
+    ARRAYDAT *l   = p->left;
+    ARRAYDAT *r   = p->right;
+    int size    = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (l->sizes[0]<size) size = l->sizes[0];
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *a,*b,*aa;
+      a = (MYFLT*)&(l->data[i]); b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = a[n] * b[n];
+    }
+    return OK;
+}
+
+// a[]/a[]
+static int tabadiv(CSOUND *csound, TABARITH *p)
+{
+    ARRAYDAT *ans = p->ans;
+    ARRAYDAT *l   = p->left;
+    ARRAYDAT *r   = p->right;
+    int size    = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || l->data==NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (l->sizes[0]<size) size = l->sizes[0];
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *a,*b,*aa;
+      a = (MYFLT*)&(l->data[i]); b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++) {
+        if (UNLIKELY(b[n]==FL(0.0)))
+          return csound->PerfError(csound, p->h.insdshead,
+                                  Str("division by zero in array-var "
+                                      "at index %d/%d"), i,n);
+        aa[n] = a[n] / b[n];
+      }
+    }
+    return OK;
+}
+
+// k * a[]
+static int tabkamult(CSOUND *csound, TABARITH2 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->left;
+    ARRAYDAT *r     = p->right;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l * b[n];
+    }
+    return OK;
+}
+
+// a[] * k
+static int tabakmult(CSOUND *csound, TABARITH1 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->right;
+    ARRAYDAT *r     = p->left;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l * b[n];
+    }
+    return OK;
+}
+
+// k + a[]
+static int tabkaadd(CSOUND *csound, TABARITH2 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->left;
+    ARRAYDAT *r     = p->right;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l + b[n];
+    }
+    return OK;
+}
+
+// a[] + k
+static int tabakadd(CSOUND *csound, TABARITH1 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->right;
+    ARRAYDAT *r     = p->left;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l + b[n];
+    }
+    return OK;
+}
+
+//k - a[]
+static int tabkasub(CSOUND *csound, TABARITH2 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->left;
+    ARRAYDAT *r     = p->right;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l - b[n];
+    }
+    return OK;
+}
+
+// a[] - k
+static int tabaksub(CSOUND *csound, TABARITH1 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->right;
+    ARRAYDAT *r     = p->left;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = b[n] - l;
+    }
+    return OK;
+}
+
+//k / a[]
+static int tabkadiv(CSOUND *csound, TABARITH2 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->left;
+    ARRAYDAT *r     = p->right;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++) {
+        if (UNLIKELY(b[n]==FL(0.0)))
+          csound->PerfError(csound, p->h.insdshead,
+                            Str("division by zero in array-var "
+                                "at index %d/%d"), i,n);
+        aa[n] = l / b[n];
+      }
+    }
+    return OK;
+}
+
+// a[] / k
+static int tabakdiv(CSOUND *csound, TABARITH1 *p)
+{
+    ARRAYDAT *ans   = p->ans;
+    MYFLT l         = *p->right;
+    ARRAYDAT *r     = p->left;
+    int size        = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+    if (UNLIKELY(l==FL(0.0)))
+      csound->PerfError(csound, p->h.insdshead,
+                        Str("division by zero in array-var"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = b[n] / l;
+    }
+    return OK;
+}
+
+
+
+// a*a[]
+static int tabaamult(CSOUND *csound, TABARITH2 *p)
+{
+    ARRAYDAT *ans = p->ans;
+    MYFLT *l      = p->left;
+    ARRAYDAT *r   = p->right;
+    int size    = ans->sizes[0];
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
+    int i, n, nsmps = CS_KSMPS;
+
+    if (UNLIKELY(ans->data == NULL || r->data==NULL))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("array-variable not initialised"));
+
+    if (r->sizes[0]<size) size = r->sizes[0];
+    for (i=0; i<size; i++) {
+      MYFLT *b,*aa;
+      b = (MYFLT*)&(r->data[i]);
+      aa = (MYFLT*)&(ans->data[i]);
+      if (UNLIKELY(offset)) memset(aa, '\0', offset*sizeof(MYFLT));
+      if (UNLIKELY(early)) {
+        memset(&aa[nsmps], '\0', early*sizeof(MYFLT));
+      }
+      for (n=0; n<nsmps; n++)
+        aa[n] = l[n] * b[n];
+    }
+    return OK;
+}
+
+
+////////////////// more here
+
+
 
 
 
@@ -901,7 +1311,7 @@ static int tabmin(CSOUND *csound, TABQUERY *p)
 
 static int tabmin1(CSOUND *csound, TABQUERY *p)
 {
-    if (tabqset(csound, p) == OK) return tabmin(csound, p);
+    if (LIKELY(tabqset(csound, p) == OK)) return tabmin(csound, p);
     else return NOTOK;
 }
 
@@ -927,7 +1337,7 @@ static int tabsum(CSOUND *csound, TABQUERY1 *p)
 
 static int tabsum1(CSOUND *csound, TABQUERY1 *p)
 {
-    if (tabqset1(csound, p) == OK) return tabsum(csound, p);
+    if (LIKELY(tabqset1(csound, p) == OK)) return tabsum(csound, p);
     else return NOTOK;
 }
 
@@ -974,7 +1384,7 @@ static int tabscale(CSOUND *csound, TABSCALE *p)
 
 static int tabscale1(CSOUND *csound, TABSCALE *p)
 {
-    if (tabscaleset(csound, p) == OK) return tabscale(csound, p);
+    if (LIKELY(tabscaleset(csound, p) == OK)) return tabscale(csound, p);
     else return NOTOK;
 }
 
@@ -990,7 +1400,7 @@ static int get_array_total_size(ARRAYDAT* dat)
     int i;
     int size;
 
-    if (dat->sizes == NULL) {
+    if (UNLIKELY(dat->sizes == NULL)) {
       return -1;
     }
 
@@ -1007,10 +1417,11 @@ static int tabcopy(CSOUND *csound, TABCPY *p)
 
     if (UNLIKELY(p->src->data==NULL) || p->src->dimensions <= 0 )
       return csound->InitError(csound, Str("array-variable not initialised"));
-    if(p->dst->dimensions > 0 && p->src->dimensions != p->dst->dimensions)
+    if (UNLIKELY(p->dst->dimensions > 0 &&
+                 p->src->dimensions != p->dst->dimensions))
       return csound->InitError(csound,
                                Str("array-variable dimensions do not match"));
-    if(p->src->arrayType != p->dst->arrayType)
+    if (UNLIKELY(p->src->arrayType != p->dst->arrayType))
       return csound->InitError(csound, Str("array-variable types do not match"));
 
     if (p->src == p->dst) return OK;
@@ -1029,7 +1440,52 @@ static int tabcopy(CSOUND *csound, TABCPY *p)
         p->dst->data = csound->Calloc(csound,
                                       p->src->arrayMemberSize * arrayTotalSize);
       } else {
-        csound->ReAlloc(csound, p->dst->data,
+        p->dst->data = csound->ReAlloc(csound, p->dst->data,
+                        p->src->arrayMemberSize * arrayTotalSize);
+        memset(p->dst->data, 0, p->src->arrayMemberSize * arrayTotalSize);
+      }
+    }
+
+
+    for (i = 0; i < arrayTotalSize; i++) {
+      int index = (i * memMyfltSize);
+      p->dst->arrayType->copyValue(csound,
+                                   (void*)(p->dst->data + index),
+                                   (void*)(p->src->data + index));
+    }
+
+    return OK;
+}
+
+static int tabcopy1(CSOUND *csound, TABCPY *p)
+{
+    int i, arrayTotalSize, memMyfltSize;
+
+    if (UNLIKELY(p->src->data==NULL) || p->src->dimensions <= 0 )
+      return csound->InitError(csound, Str("array-variable not initialised"));
+    if (p->dst->dimensions > 0 && p->src->dimensions != p->dst->dimensions)
+      return csound->InitError(csound,
+                               Str("array-variable dimensions do not match"));
+//    if (p->src->arrayType != p->dst->arrayType)
+//      return csound->InitError(csound, Str("array-variable types do not match"));
+
+    if (p->src == p->dst) return OK;
+
+    arrayTotalSize = get_array_total_size(p->src);
+    memMyfltSize = p->src->arrayMemberSize / sizeof(MYFLT);
+    p->dst->arrayMemberSize = p->src->arrayMemberSize;
+
+    if (arrayTotalSize != get_array_total_size(p->dst)) {
+      p->dst->dimensions = p->src->dimensions;
+
+      p->dst->sizes = csound->Malloc(csound, sizeof(int) * p->src->dimensions);
+      memcpy(p->dst->sizes, p->src->sizes, sizeof(int) * p->src->dimensions);
+
+      if (p->dst->data == NULL) {
+        p->dst->data = csound->Calloc(csound,
+                                      p->src->arrayMemberSize * arrayTotalSize);
+      } else {
+        p->dst->data = csound->ReAlloc(csound, p->dst->data,
                         p->src->arrayMemberSize * arrayTotalSize);
         memset(p->dst->data, 0, p->src->arrayMemberSize * arrayTotalSize);
       }
@@ -1180,7 +1636,7 @@ static int ftab2tab(CSOUND *csound, TABCOPY *p)
 typedef struct {
   OPDS h;
   ARRAYDAT *tab, *tabin;
-  MYFLT *start, *end;
+  MYFLT *start, *end, *inc;
   int    len;
 } TABSLICE;
 
@@ -1190,8 +1646,9 @@ static int tabslice(CSOUND *csound, TABSLICE *p){
     MYFLT *tabin = p->tabin->data;
     int start = (int) *p->start;
     int end   = (int) *p->end;
-    int size = end - start + 1;
-    int i;
+    int inc   = (int) *p->inc;
+    int size = (end - start)/inc + 1;
+    int i, destIndex;
     int memMyfltSize = p->tabin->arrayMemberSize / sizeof(MYFLT);
 
     if (UNLIKELY(size < 0))
@@ -1200,10 +1657,11 @@ static int tabslice(CSOUND *csound, TABSLICE *p){
       //printf("size=%d old tab size = %d\n", size, p->tabin->sizes[0]);
       return csound->InitError(csound, Str("slice larger than original size"));
     }
+    if (UNLIKELY(inc<=0))
+      return csound->InitError(csound, Str("slice increment must be positive"));
     tabensure(csound, p->tab, size);
 
-    for (i = start; i < end + 1; i++) {
-      int destIndex = i - start;
+    for (i = start, destIndex = 0; i < end + 1; i+=inc, destIndex++) {
       p->tab->arrayType->copyValue(csound,
                                    p->tab->data + (destIndex * memMyfltSize),
                                    tabin + (memMyfltSize * i));
@@ -1331,7 +1789,7 @@ static int outa_set(CSOUND *csound, OUTA *p)
 {
     int len = (p->tabin->dimensions==1?p->tabin->sizes[0]:-1);
     if (len>(int)csound->nchnls) len = csound->nchnls;
-    if (len<=0) return NOTOK;
+    if (UNLIKELY(len<=0)) return NOTOK;
     p->len = len;
     if (p->tabin->arrayMemberSize != (int)(CS_KSMPS*sizeof(MYFLT)))
       return NOTOK;
@@ -1475,7 +1933,7 @@ static unsigned int isPowerOfTwo (unsigned int x) {
 
 int init_rfft(CSOUND *csound, FFT *p){
   int   N = p->in->sizes[0];
-  if(p->in->dimensions > 1)
+  if (UNLIKELY(p->in->dimensions > 1))
     return csound->InitError(csound,
                              Str("rfft: only one-dimensional arrays allowed"));
   if (isPowerOfTwo(N)){
@@ -1501,20 +1959,20 @@ int perf_rfft(CSOUND *csound, FFT *p){
 }
 
 int rfft_i(CSOUND *csound, FFT *p){
-  if(init_rfft(csound,p) == OK)
+  if (init_rfft(csound,p) == OK)
     return perf_rfft(csound, p);
   else return NOTOK;
 }
 
 int init_rifft(CSOUND *csound, FFT *p){
   int   N = p->in->sizes[0];
- if(p->in->dimensions > 1)
+  if (UNLIKELY(p->in->dimensions > 1))
     return csound->InitError(csound,
                              Str("rifft: only one-dimensional arrays allowed"));
- if (isPowerOfTwo(N)){
+  if (isPowerOfTwo(N)){
     p->setup = csound->RealFFT2Setup(csound, N, FFT_INV);
     tabensure(csound, p->out, N);
- }
+  }
   else
     tabensure(csound, p->out, N+2);
   return OK;
@@ -1533,16 +1991,16 @@ int perf_rifft(CSOUND *csound, FFT *p){
 }
 
 int rifft_i(CSOUND *csound, FFT *p){
-  if(init_rifft(csound,p) == OK)
+  if (init_rifft(csound,p) == OK)
     return perf_rifft(csound, p);
   else return NOTOK;
 }
 
 int init_rfftmult(CSOUND *csound, FFT *p){
     int   N = p->in->sizes[0];
-    if(N != p->in2->sizes[0])
+    if (UNLIKELY(N != p->in2->sizes[0]))
       return csound->InitError(csound, Str("array sizes do not match\n"));
-    /*if(isPowerOfTwo(N))*/
+    /*if (isPowerOfTwo(N))*/
     tabensure(csound, p->out, N);
     /* else
        return
@@ -1563,7 +2021,7 @@ void csoundInverseComplexFFTnp2(CSOUND *csound, MYFLT *buf, int FFTsize);
 
 int init_fft(CSOUND *csound, FFT *p){
   int   N2 = p->in->sizes[0];
- if(p->in->dimensions > 1)
+  if (UNLIKELY(p->in->dimensions > 1))
     return csound->InitError(csound,
                              Str("fft: only one-dimensional arrays allowed"));
   tabensure(csound,p->out,N2);
@@ -1582,7 +2040,7 @@ int perf_fft(CSOUND *csound, FFT *p){
 }
 
 int fft_i(CSOUND *csound, FFT *p){
-  if(init_fft(csound,p) == OK)
+  if (init_fft(csound,p) == OK)
     return perf_fft(csound, p);
   else return NOTOK;
 }
@@ -1590,7 +2048,7 @@ int fft_i(CSOUND *csound, FFT *p){
 
 int init_ifft(CSOUND *csound, FFT *p){
   int   N2 = p->in->sizes[0];
-   if(p->in->dimensions > 1)
+  if (UNLIKELY(p->in->dimensions > 1))
     return csound->InitError(csound,
                              Str("fftinv: only one-dimensional arrays allowed"));
   tabensure(csound, p->out, N2);
@@ -1610,7 +2068,7 @@ int perf_ifft(CSOUND *csound, FFT *p){
 }
 
 int ifft_i(CSOUND *csound, FFT *p){
-  if(init_ifft(csound,p) == OK)
+    if (LIKELY(init_ifft(csound,p) == OK))
     return perf_ifft(csound, p);
   else return NOTOK;
 }
@@ -1648,7 +2106,7 @@ int perf_poltorect(CSOUND *csound, FFT *p){
 }
 
 int init_poltorect2(CSOUND *csound, FFT *p){
-    if(p->in2->sizes[0] == p->in->sizes[0]){
+    if (LIKELY(p->in2->sizes[0] == p->in->sizes[0])){
       int   N = p->in2->sizes[0]-1;
       tabensure(csound, p->out, N*2);
       return OK;
@@ -1704,7 +2162,7 @@ int perf_phs(CSOUND *csound, FFT *p){
 
 int init_logarray(CSOUND *csound, FFT *p){
     tabensure(csound, p->out, p->in->sizes[0]);
-    if(*((MYFLT *)p->in2))
+    if (LIKELY(*((MYFLT *)p->in2)))
       p->b = 1/log(*((MYFLT *)p->in2));
     else
       p->b = FL(1.0);
@@ -1717,7 +2175,7 @@ int perf_logarray(CSOUND *csound, FFT *p){
     MYFLT *in, *out;
     in = p->in->data;
     out = p->out->data;
-    if(bas)
+    if (LIKELY(bas))
       for(i=0;i<end;i++)
         out[i] = log(in[i])*bas;
     else
@@ -1745,7 +2203,7 @@ int perf_rtoc(CSOUND *csound, FFT *p){
 }
 
 int rtoc_i(CSOUND *csound, FFT *p){
-  if(init_rtoc(csound,p) == OK)
+    if (LIKELY(init_rtoc(csound,p) == OK))
     return perf_rtoc(csound, p);
   else return NOTOK;
 }
@@ -1768,7 +2226,7 @@ int perf_ctor(CSOUND *csound, FFT *p){
 }
 
 int ctor_i(CSOUND *csound, FFT *p){
-  if(init_ctor(csound,p) == OK)
+    if (LIKELY(init_ctor(csound,p) == OK))
     return perf_ctor(csound, p);
   else return NOTOK;
 }
@@ -1779,7 +2237,7 @@ int init_window(CSOUND *csound, FFT *p){
     int   i,type = (int) *p->f;
     MYFLT *w;
     tabensure(csound, p->out, N);
-    if(p->mem.auxp == 0 || p->mem.size < N*sizeof(MYFLT))
+    if (p->mem.auxp == 0 || p->mem.size < N*sizeof(MYFLT))
       csound->AuxAlloc(csound, N*sizeof(MYFLT), &p->mem);
     w = (MYFLT *) p->mem.auxp;
     switch(type){
@@ -1818,7 +2276,7 @@ typedef struct _pvsceps {
 
 int pvsceps_init(CSOUND *csound, PVSCEPS *p){
     int N = p->fin->N;
-    if(isPowerOfTwo(N)){
+    if (LIKELY(isPowerOfTwo(N))){
       p->setup = csound->RealFFT2Setup(csound, N/2, FFT_FWD);
       tabensure(csound, p->out, N/2+1);
     }
@@ -1842,7 +2300,7 @@ int pvsceps_perf(CSOUND *csound, PVSCEPS *p){
       }
       ceps[N/2] = fin[N/2];
       csound->RealFFT2(csound, p->setup, ceps);
-      if(coefs){
+      if (coefs){
         // lifter coefs
        for (i=coefs*2; i < N/2; i++) ceps[i] = 0.0;
         ceps[N/2] = 0.0;
@@ -1855,10 +2313,10 @@ int pvsceps_perf(CSOUND *csound, PVSCEPS *p){
 
 int init_ceps(CSOUND *csound, FFT *p){
     int N = p->in->sizes[0]-1;
-    if(N < 64)
+    if (UNLIKELY(N < 64))
       return csound->InitError(csound,
                                Str("FFT size too small (min 64 samples)\n"));
-    if(isPowerOfTwo(N)){
+    if (LIKELY(isPowerOfTwo(N))){
       p->setup = csound->RealFFT2Setup(csound, N, FFT_FWD);
       tabensure(csound, p->out, N+1);
     }
@@ -1880,7 +2338,7 @@ int perf_ceps(CSOUND *csound, FFT *p){
     }
     ceps[siz] = mags[siz];
     csound->RealFFT2(csound, p->setup, ceps);
-    if(coefs){
+    if (coefs){
       // lifter coefs
       for (i=coefs*2; i < siz; i++) ceps[i] = 0.0;
       ceps[siz] = 0.0;
@@ -1898,7 +2356,7 @@ int init_iceps(CSOUND *csound, FFT *p){
       return csound->InitError(csound,
                                Str("non-pow-of-two case not implemented yet\n"));
     N++;
-    if(p->mem.auxp == NULL || p->mem.size < N*sizeof(MYFLT))
+    if (p->mem.auxp == NULL || p->mem.size < N*sizeof(MYFLT))
       csound->AuxAlloc(csound, N*sizeof(MYFLT), &p->mem);
     return OK;
 }
@@ -1917,7 +2375,7 @@ int perf_iceps(CSOUND *csound, FFT *p){
 }
 
 int rows_init(CSOUND *csound, FFT *p){
-    if(p->in->dimensions == 2){
+    if (p->in->dimensions == 2){
       int siz = p->in->sizes[1];
       tabensure(csound, p->out, siz);
       return OK;
@@ -1929,7 +2387,7 @@ int rows_init(CSOUND *csound, FFT *p){
 
 int rows_perf(CSOUND *csound, FFT *p){
     int start = *((MYFLT *)p->in2);
-    if(start < p->in->sizes[0]) {
+    if (LIKELY(start < p->in->sizes[0])) {
       int bytes =  p->in->sizes[1]*sizeof(MYFLT);
       start *= p->in->sizes[1];
       memcpy(p->out->data,p->in->data+start,bytes);
@@ -1940,7 +2398,7 @@ int rows_perf(CSOUND *csound, FFT *p){
 }
 
 int cols_init(CSOUND *csound, FFT *p){
-    if(p->in->dimensions == 2){
+    if (LIKELY(p->in->dimensions == 2)){
       int siz = p->in->sizes[0];
       tabensure(csound, p->out, siz);
       return OK;
@@ -1953,7 +2411,7 @@ int cols_init(CSOUND *csound, FFT *p){
 int cols_perf(CSOUND *csound, FFT *p){
     int start = *((MYFLT *)p->in2);
 
-    if(start < p->in->sizes[1]) {
+    if (LIKELY(start < p->in->sizes[1])) {
         int j,i,collen =  p->in->sizes[1], len = p->in->sizes[0];
         for(j=0,i=start; j < len; i+=collen, j++) {
             p->out->data[j] = p->in->data[i];
@@ -1968,7 +2426,7 @@ static inline void tabensure2D(CSOUND *csound, ARRAYDAT *p, int rows, int column
     if (p->data==NULL || p->dimensions == 0 ||
         (p->dimensions==2 && (p->sizes[0] < rows || p->sizes[1] < columns))) {
       size_t ss;
-      if(p->data == NULL) {
+      if (p->data == NULL) {
         CS_VARIABLE* var = p->arrayType->createVariable(csound, NULL);
         p->arrayMemberSize = var->memBlockSize;
       }
@@ -1992,8 +2450,9 @@ int set_rows_init(CSOUND *csound, FFT *p){
 
 int set_rows_perf(CSOUND *csound, FFT *p){
     int start = *((MYFLT *)p->in2);
-    if (start < 0 || start >= p->out->sizes[0])
-        return csound->PerfError(csound, p->h.insdshead, Str("Error: index out of range\n"));
+    if (UNLIKELY(start < 0 || start >= p->out->sizes[0]))
+        return csound->PerfError(csound, p->h.insdshead,
+                                 Str("Error: index out of range\n"));
     int bytes =  p->in->sizes[0]*sizeof(MYFLT);
     start *= p->out->sizes[1];
     memcpy(p->out->data+start,p->in->data,bytes);
@@ -2011,8 +2470,9 @@ int set_cols_perf(CSOUND *csound, FFT *p){
 
     int start = *((MYFLT *)p->in2);
 
-    if (start < 0 || start >= p->out->sizes[1])
-        return csound->PerfError(csound, p->h.insdshead, Str("Error: index out of range\n"));
+    if (UNLIKELY(start < 0 || start >= p->out->sizes[1]))
+        return csound->PerfError(csound, p->h.insdshead,
+                                 Str("Error: index out of range\n"));
 
 
     int j,i,len =  p->out->sizes[0];
@@ -2031,7 +2491,7 @@ int shiftin_init(CSOUND *csound, FFT *p){
 int shiftin_perf(CSOUND *csound, FFT *p){
     uint32_t  siz =  p->out->sizes[0], n = p->n;
     MYFLT *in = ((MYFLT *) p->in);
-    if(n + CS_KSMPS < siz) {
+    if (n + CS_KSMPS < siz) {
       memcpy(p->out->data+n,in,CS_KSMPS*sizeof(MYFLT));
     }
     else {
@@ -2047,7 +2507,7 @@ int shiftin_perf(CSOUND *csound, FFT *p){
 int shiftout_init(CSOUND *csound, FFT *p){
     int siz = p->in->sizes[0];
     p->n = ((int)*((MYFLT *)p->in2) % siz);
-    if((uint32_t) siz < CS_KSMPS)
+    if (UNLIKELY((uint32_t) siz < CS_KSMPS))
       return csound->InitError(csound, Str("input array too small\n"));
     return OK;
 }
@@ -2056,7 +2516,7 @@ int shiftout_perf(CSOUND *csound, FFT *p){
     uint32_t siz =  p->in->sizes[0], n = p->n;
     MYFLT *out = ((MYFLT *) p->out);
 
-    if(n + CS_KSMPS < siz) {
+    if (n + CS_KSMPS < siz) {
       memcpy(out,p->in->data+n,CS_KSMPS*sizeof(MYFLT));
     }
     else {
@@ -2095,16 +2555,17 @@ void csoundDCT(CSOUND *csound,
 
 int init_dct(CSOUND *csound, FFT *p){
    int   N = p->in->sizes[0];
-   if(isPowerOfTwo(N)){
-   if(p->in->dimensions > 1)
+   if (LIKELY(isPowerOfTwo(N))){
+     if (UNLIKELY(p->in->dimensions > 1))
     return csound->InitError(csound,
                              Str("dct: only one-dimensional arrays allowed"));
     tabensure(csound, p->out, N);
     p->setup =  csoundDCTSetup(csound,N,FFT_FWD);
     return OK;
-   } else return
-            csound->InitError(csound,
-                              Str("dct: non-pow-of-two sizes not yet implemented"));
+   }
+   else return
+          csound->InitError(csound,
+                            Str("dct: non-pow-of-two sizes not yet implemented"));
 }
 
 int kdct(CSOUND *csound, FFT *p){
@@ -2115,7 +2576,7 @@ int kdct(CSOUND *csound, FFT *p){
 }
 
 int dct(CSOUND *csound, FFT *p){
-    if(!init_dct(csound,p)){
+    if (!init_dct(csound,p)){
       kdct(csound,p);
       return OK;
       } else return NOTOK;
@@ -2123,21 +2584,22 @@ int dct(CSOUND *csound, FFT *p){
 
 int init_dctinv(CSOUND *csound, FFT *p){
    int   N = p->in->sizes[0];
-   if(isPowerOfTwo(N)){
-   if(p->in->dimensions > 1)
-    return csound->InitError(csound,
-                             Str("dctinv: only one-dimensional arrays allowed"));
-    tabensure(csound, p->out, N);
-    p->setup =  csoundDCTSetup(csound,N,FFT_INV);
-    return OK;
-   } else
+   if (LIKELY(isPowerOfTwo(N))){
+     if (UNLIKELY(p->in->dimensions > 1))
+       return csound->InitError(csound,
+                                Str("dctinv: only one-dimensional arrays allowed"));
+     tabensure(csound, p->out, N);
+     p->setup =  csoundDCTSetup(csound,N,FFT_INV);
+     return OK;
+   }
+   else
      return
        csound->InitError(csound,
                          Str("dctinv: non-pow-of-two sizes not yet implemented"));
 }
 
 int dctinv(CSOUND *csound, FFT *p){
-    if(!init_dctinv(csound,p)){
+    if (LIKELY(!init_dctinv(csound,p))){
       kdct(csound,p);
       return OK;
       } else return NOTOK;
@@ -2178,12 +2640,12 @@ static inline int mel2bin(MYFLT m, int N, MYFLT sr){
 int mfb_init(CSOUND *csound, MFB *p){
   int   L = *p->len;
   int N = p->in->sizes[0];
-  if(L < N)
+  if (LIKELY(L < N))
    tabensure(csound, p->out, L);
   else
    return csound->InitError(csound,
        "mfb: filter bank size exceeds input array length");
-  if(p->bins.auxp == NULL || p->bins.size < (L+2)*sizeof(int))
+  if (p->bins.auxp == NULL || p->bins.size < (L+2)*sizeof(int))
       csound->AuxAlloc(csound, (L+2)*sizeof(MYFLT), &p->bins);
   return OK;
 }
@@ -2206,7 +2668,7 @@ int mfb(CSOUND *csound, MFB *p) {
 
   for(i=0;i<L+2;i++){
     bin[i] = (int) mel2bin(start,N-1,sr);
-    if(bin[i] > N) bin[i] = N;
+    if (bin[i] > N) bin[i] = N;
     start += incr;
   }
 
@@ -2234,7 +2696,7 @@ int mfb(CSOUND *csound, MFB *p) {
 }
 
 int mfbi(CSOUND *csound, MFB *p){
-  if(mfb_init(csound,p) == OK)
+    if (LIKELY(mfb_init(csound,p) == OK))
     return mfb(csound,p);
   else return NOTOK;
 }
@@ -2320,21 +2782,29 @@ static OENTRY arrayvars_localops[] =
     { "i.Ak", sizeof(ARRAY_GET),0, 1,      "i",    "k[]z", (SUBR)array_get  },
 #endif
     /* ******************************************** */
+    {"##add.[s]", sizeof(TABARITH), 0, 3, "a[]", "a[]a[]",
+     (SUBR)tabarithset, (SUBR)tabaadd},
     {"##add.[]", sizeof(TABARITH), 0, 3, "k[]", "k[]k[]",
      (SUBR)tabarithset, (SUBR)tabadd},
     {"##add.[i]", sizeof(TABARITH), 0, 1, "i[]", "i[]i[]",
      (SUBR)tabaddi},
     /* ******************************************** */
+    {"##sub.[a]", sizeof(TABARITH), 0, 3, "a[]", "a[]a[]",
+     (SUBR)tabarithset, (SUBR)tabasub},
     {"##sub.[]", sizeof(TABARITH), 0, 3, "k[]", "k[]k[]",
      (SUBR)tabarithset, (SUBR)tabsub},
     {"##sub.[i]", sizeof(TABARITH), 0, 1, "i[]", "i[]i[]",
      (SUBR)tabsubi},
     //    {"##neg.[]",  sizeof(TABARITH), 0, 3, "k[]", "k[]",
     //                                         (SUBR)tabarithset1, (SUBR)tabneg},
+    {"##mul.[a]", sizeof(TABARITH), 0, 3, "a[]", "a[]a[]",
+    (SUBR)tabarithset,(SUBR)tabamul},
     {"##mul.[]", sizeof(TABARITH), 0, 3, "k[]", "k[]k[]",
      (SUBR)tabarithset,(SUBR)tabmult},
     {"##mul.[i]", sizeof(TABARITH), 0, 1, "i[]", "i[]i[]",
      (SUBR)tabmulti},
+    {"##div.[a]", sizeof(TABARITH), 0, 3, "a[]", "a[]a[]",
+     (SUBR)tabarithset,(SUBR)tabadiv},
     {"##div.[]",  sizeof(TABARITH), 0, 3, "k[]", "k[]k[]",
      (SUBR)tabarithset,(SUBR)tabdiv },
     {"##div.[i]",  sizeof(TABARITH), 0, 1, "i[]", "i[]i[]",
@@ -2376,18 +2846,36 @@ static OENTRY arrayvars_localops[] =
      (SUBR)tabarithset1, (SUBR)tabaiadd },
     {"##add.k[", sizeof(TABARITH2), 0, 3, "k[]", "kk[]",
      (SUBR)tabarithset2, (SUBR)tabiaadd },
+    {"##add.[ak", sizeof(TABARITH1), 0, 3, "a[]", "a[]k",
+     (SUBR)tabarithset1, (SUBR)tabakadd },
+    {"##add.k[a", sizeof(TABARITH2), 0, 3, "a[]", "ka[]",
+     (SUBR)tabarithset2, (SUBR)tabkaadd },
     {"##sub.[k", sizeof(TABARITH1), 0, 3, "k[]", "k[]k",
      (SUBR)tabarithset1, (SUBR)tabaisub },
     {"##sub.k[", sizeof(TABARITH2), 0, 3, "k[]", "kk[]",
      (SUBR)tabarithset2, (SUBR)tabiasub },
+    {"##sub.[ak", sizeof(TABARITH1), 0, 3, "a[]", "a[]k",
+     (SUBR)tabarithset1, (SUBR)tabaksub },
+    {"##sub.k[a", sizeof(TABARITH2), 0, 3, "a[]", "ka[]",
+     (SUBR)tabarithset2, (SUBR)tabkasub },
     {"##mul.[k", sizeof(TABARITH1), 0, 3, "k[]", "k[]k",
      (SUBR)tabarithset1, (SUBR)tabaimult },
     {"##mul.k[", sizeof(TABARITH2), 0, 3, "k[]", "kk[]",
      (SUBR)tabarithset2, (SUBR)tabiamult },
+    {"##mul.[ak", sizeof(TABARITH1), 0, 3, "a[]", "a[]k",
+     (SUBR)tabarithset1, (SUBR)tabakmult },
+    {"##mul.k[a", sizeof(TABARITH2), 0, 3, "a[]", "ka[]",
+     (SUBR)tabarithset2, (SUBR)tabkamult },
+    {"##mul.a[a", sizeof(TABARITH2), 0, 3, "a[]", "aa[]",
+     (SUBR)tabarithset2, (SUBR)tabaamult },
     {"##div.[k",  sizeof(TABARITH1), 0, 3, "k[]", "k[]k",
      (SUBR)tabarithset1, (SUBR)tabaidiv },
     {"##div.k[",  sizeof(TABARITH2), 0, 3, "k[]", "kk[]",
      (SUBR)tabarithset2, (SUBR)tabiadiv },
+    {"##div.[ak", sizeof(TABARITH1), 0, 3, "a[]", "a[]k",
+     (SUBR)tabarithset1, (SUBR)tabakdiv },
+    {"##div.k[a", sizeof(TABARITH2), 0, 3, "a[]", "ka[]",
+     (SUBR)tabarithset2, (SUBR)tabkadiv },
     {"##rem.[k",  sizeof(TABARITH1),0,  3, "k[]", "k[]k",
      (SUBR)tabarithset1, (SUBR)tabairem },
     {"##rem.k[",  sizeof(TABARITH2),0,  3, "k[]", "kk[]",
@@ -2432,7 +2920,9 @@ static OENTRY arrayvars_localops[] =
     { "scalearray.k", sizeof(TABSCALE), 0, 3, "",  "k[]kkOJ",
       (SUBR) tabscaleset,(SUBR) tabscale },
     { "scalearray.1", sizeof(TABSCALE), 0, 1, "",  "i[]iiOJ",   (SUBR) tabscale1 },
-    { "=.I", sizeof(TABCPY), 0, 1, "i[]", "i[]", (SUBR)tabcopy, NULL },
+    { "=.I", sizeof(TABCPY), 0, 1, "i[]", "i[]", (SUBR)tabcopy1, NULL },
+    { "=.J", sizeof(TABCPY), 0, 1, "i[]", "k[]", (SUBR)tabcopy1, NULL },
+    { "=.K", sizeof(TABCPY), 0, 3, "k[]", "i[]", (SUBR)tabcopy1, (SUBR)tabcopy1 },
     { "=._", sizeof(TABCPY), 0, 3, ".[]", ".[]", (SUBR)tabcopy, (SUBR)tabcopy },
     { "tabgen", sizeof(TABGEN), _QQ, 1, "k[]", "iip", (SUBR) tabgen, NULL    },
     { "tabmap_i", sizeof(TABMAP), _QQ, 1, "k[]", "k[]S", (SUBR) tabmap_set   },
@@ -2449,12 +2939,12 @@ static OENTRY arrayvars_localops[] =
     { "maparray.i", sizeof(TABMAP), 0, 1, "i[]", "i[]S", (SUBR) tabmap_set },
     /*  { "maparray.s", sizeof(TABMAP), 0, 3, "S[]", "S[]S", (SUBR) tabmap_set, */
     /*                                               (SUBR) tabmap_perf     }, */
-    { "tabslice", sizeof(TABSLICE), _QQ, 2, "k[]", "k[]ii",
+    { "tabslice", sizeof(TABSLICE), _QQ, 2, "k[]", "k[]iip",
       NULL, (SUBR) tabslice, NULL },
 
-    { "slicearray.i", sizeof(TABSLICE), 0, 1, "i[]", "i[]ii",
+    { "slicearray.i", sizeof(TABSLICE), 0, 1, "i[]", "i[]iip",
       (SUBR) tabslice, NULL, NULL },
-    { "slicearray.x", sizeof(TABSLICE), 0, 3, ".[]", ".[]ii",
+    { "slicearray.x", sizeof(TABSLICE), 0, 3, ".[]", ".[]iip",
       (SUBR) tabslice, (SUBR) tabslice, NULL },
     //    { "slicearray.s", sizeof(TABSLICE), 0, 3, "S[]", "[]ii",
     //                                  (SUBR) tabsliceS, (SUBR) tabsliceS, NULL },
diff --git a/Opcodes/biquad.c b/Opcodes/biquad.c
index ebb0439..7eb5db8 100644
--- a/Opcodes/biquad.c
+++ b/Opcodes/biquad.c
@@ -1523,6 +1523,7 @@ static int mode(CSOUND *csound, MODE *p)
 
     double xn, yn, a0=p->a0, a1=p->a1, a2=p->a2,d=p->d;
     double xnm1 = p->xnm1, ynm1 = p->ynm1, ynm2 = p->ynm2;
+    int    asgfr = IS_ASIG_ARG(p->kfreq), asgq = IS_ASIG_ARG(p->kq);
 
     if (UNLIKELY(offset)) memset(p->aout, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -1530,8 +1531,8 @@ static int mode(CSOUND *csound, MODE *p)
       memset(&p->aout[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      if (IS_ASIG_ARG(p->kfreq)) kfq = p->kfreq[n];
-      if (IS_ASIG_ARG(p->kq)) kq = p->kq[n];
+      if (asgfr) kfq = p->kfreq[n];
+      if (asgq) kq = p->kq[n];
       //MYFLT kfq = IS_ASIG_ARG(p->kfreq) ? p->kfreq[n] : *p->kfreq;
       //MYFLT kq  = IS_ASIG_ARG(p->kq) ? p->kq[n] : *p->kq;
       if (lfq != kfq || lq != kq) {
diff --git a/Opcodes/bowedbar.c b/Opcodes/bowedbar.c
index 01ee38f..c058bc6 100644
--- a/Opcodes/bowedbar.c
+++ b/Opcodes/bowedbar.c
@@ -51,7 +51,7 @@ static void DLineN_setDelay(CSOUND *csound, DLINEN *p, int lag)
 {
     if (UNLIKELY(lag > p->length-1)) {                   /* if delay is too big, */
       csound->Warning(csound, Str("DLineN: Delay length too big ... setting to "
-                                  "maximum length of %ld.\n"), p->length - 1);
+                                  "maximum length of %d.\n"), p->length - 1);
       p->outPoint = p->inPoint + 1;            /* force delay to max_length */
     }
     else
@@ -88,7 +88,7 @@ int bowedbarset(CSOUND *csound, BOWEDBAR *p)
     make_ADSR(&p->adsr);
     ADSR_setAllTimes(csound, &p->adsr, FL(0.02), FL(0.005), FL(0.9), FL(0.01));
 
-    if (*p->lowestFreq>=FL(0.0)) {      /* If no init skip */
+    if (LIKELY(*p->lowestFreq>=FL(0.0))) {      /* If no init skip */
       if (*p->lowestFreq!=FL(0.0))
         p->length = (int32) (CS_ESR / *p->lowestFreq + FL(1.0));
       else if (*p->frequency!=FL(0.0))
@@ -153,7 +153,7 @@ int bowedbar(CSOUND *csound, BOWEDBAR *p)
           break;
         }
       }
-      if (p->nr_modes==0)
+      if (UNLIKELY(p->nr_modes==0))
         return csound->InitError(csound,
                                  Str("Bowedbar: cannot have zero modes\n"));
       for (i=0; i<p->nr_modes; i++) {
diff --git a/Opcodes/chua/ChuaOscillator.cpp b/Opcodes/chua/ChuaOscillator.cpp
index 2978be6..d922aeb 100644
--- a/Opcodes/chua/ChuaOscillator.cpp
+++ b/Opcodes/chua/ChuaOscillator.cpp
@@ -237,7 +237,7 @@ public:
     // to preserve the clarity of the original code.
     uint32_t offset = opds.insdshead->ksmps_offset;
     uint32_t early  = opds.insdshead->ksmps_no_end;
-    uint32_t n, nsmps = opds.insdshead->ksmps;
+    uint32_t nsmps = opds.insdshead->ksmps;
     if (UNLIKELY(offset)) {
       memset(I3, '\0', offset*sizeof(MYFLT));
       memset(V1, '\0', offset*sizeof(MYFLT));
diff --git a/Opcodes/compress.c b/Opcodes/compress.c
index 6333a68..bb21047 100644
--- a/Opcodes/compress.c
+++ b/Opcodes/compress.c
@@ -59,7 +59,7 @@ static int compset(CSOUND *csound, CMPRS *p)
     p->curatt = (MYFLT) MAXPOS;
     p->currls = (MYFLT) MAXPOS;
     /* round to nearest integer */
-    if ((delsmps = MYFLT2LONG(*p->ilook * csound->GetSr(csound))) <= 0L)
+    if (UNLIKELY((delsmps = MYFLT2LONG(*p->ilook * csound->GetSr(csound))) <= 0L))
       delsmps = 1L;                             /* alloc 2 delay bufs   */
     csound->AuxAlloc(csound, delsmps * 2 * sizeof(MYFLT), &p->auxch);
     p->abuf = (MYFLT *)p->auxch.auxp;
@@ -76,7 +76,7 @@ static int compset(CSOUND *csound, CMPRS *p)
 }
 
 /* compress2 is compress but with dB inputs in range [-90,0] rather
-   than [0.90], by setting p->bias valuex */
+   than [0.90], by setting p->bias valuex -- JPff */
 static int comp2set(CSOUND *csound, CMPRS *p)
 {
     int ret = compset(csound, p);
@@ -259,9 +259,9 @@ static int distort(CSOUND *csound, DIST *p)
       MYFLT sig, phs, val;
       sig = asig[n] / dcur;             /* compress the sample  */
       phs = p->midphs * (FL(1.0) + sig); /* as index into table  */
-      if (phs <= FL(0.0))
+      if (UNLIKELY(phs <= FL(0.0)))
         val = p->begval;
-      else if (phs >= p->maxphs)        /* check sticky bits    */
+      else if (UNLIKELY(phs >= p->maxphs))        /* check sticky bits    */
         val = p->endval;
       else {
         int32  iphs = (int32)phs;
diff --git a/Opcodes/control.c b/Opcodes/control.c
index a14afa8..1c61b12 100644
--- a/Opcodes/control.c
+++ b/Opcodes/control.c
@@ -32,25 +32,6 @@
 #include <unistd.h>
 #endif
 
-int ISSTRCOD(MYFLT xx)
-{
-#ifdef USE_DOUBLE
-    union {
-      double d;
-      int32_t i[2];
-    } z;
-    z.d = xx;
-    return ((z.i[1]&0x7ff00000)==0x7ff00000);
-#else
-    union {
-      float f;
-      int32_t i;
-    } z;
-    z.f = xx;
-    return ((z.i&0x7f800000) == 0x7f800000);
-#endif
-}
-
 static CS_NOINLINE CONTROL_GLOBALS *get_globals_(CSOUND *csound)
 {
     CONTROL_GLOBALS *p;
diff --git a/Opcodes/cpumeter.c b/Opcodes/cpumeter.c
index 71a1816..ca808ec 100644
--- a/Opcodes/cpumeter.c
+++ b/Opcodes/cpumeter.c
@@ -79,7 +79,7 @@ int cpupercent_init(CSOUND *csound, CPUMETER* p)
         csound->InitError(csound,
                           Str("Failed to open /proc/stat: %s"), strerror(errno));
     if (!fgets(buf, sizeof(buf), p->fp))
-      csound->InitError(csound, Str("failed /proc/stat read"));
+      return csound->InitError(csound, Str("failed /proc/stat read"));
     num = sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
                  &u, &n, &s, &i, &w, &x, &y, &z);
     for (k = 0; ; k++) {
diff --git a/Opcodes/cross2.c b/Opcodes/cross2.c
index 190b4bc..9d19b93 100644
--- a/Opcodes/cross2.c
+++ b/Opcodes/cross2.c
@@ -314,8 +314,8 @@ static int Xsynthset(CSOUND *csound, CON *p)
     MYFLT       ovlp = *p->ovlp;
 
     flen = (int32)*p->len;
-    if (flen<1) return csound->PerfError(csound, p->h.insdshead,
-                                         Str("cross2: length must be at least 1"));
+    if (UNLIKELY(flen<1))
+      return csound->InitError(csound, Str("cross2: length must be at least 1"));
     p->m = plog2(flen);
     flen = 1L << p->m;
 
diff --git a/Opcodes/cuda/adsyn.cu b/Opcodes/cuda/adsyn.cu
index 71ae00d..aa6716c 100644
--- a/Opcodes/cuda/adsyn.cu
+++ b/Opcodes/cuda/adsyn.cu
@@ -55,7 +55,7 @@ static int init_cudadsyn(CSOUND *csound, CUDADSYN *p){
   cudaGetDeviceProperties(&deviceProp, 0);
   blockspt = deviceProp.maxThreadsPerBlock;
   if(deviceProp.major < 2)
-   csound->InitError(csound,
+    return csound->InitError(csound,
        "this opcode requires device capability 2.0 minimum. Device is %d.%d\n",
         deviceProp.major, deviceProp.minor );
 
diff --git a/Opcodes/dssi4cs/src/dssi4cs.c b/Opcodes/dssi4cs/src/dssi4cs.c
index 242f922..e56f993 100644
--- a/Opcodes/dssi4cs/src/dssi4cs.c
+++ b/Opcodes/dssi4cs/src/dssi4cs.c
@@ -27,14 +27,12 @@
 #undef CS_KSMPS
 #define CS_KSMPS     (csound->GetKsmps(csound))
 
-#ifdef BETA
-#define DEBUG 1
-#endif
+//#define DEBUG 1
+
 #define DSSI4CS_MAX_NUM_EVENTS 128
 
 #if !defined(HAVE_STRLCAT) && !defined(strlcat)
-size_t
-strlcat(char *dst, const char *src, size_t siz)
+size_t strlcat(char *dst, const char *src, size_t siz)
 {
     char *d = dst;
     const char *s = src;
@@ -217,6 +215,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
     int     SampleRate = (int) MYFLT2LRND(csound->GetSr(csound));
     int     Ksmps = csound->GetKsmps(csound);
     unsigned long     i;
+    int     verbose = (int)*p->iverbose;
     LADSPA_Descriptor_Function pfDescriptorFunction;
     DSSI_Descriptor_Function pfDSSIDescriptorFunction;
     LADSPA_Descriptor *LDescriptor;
@@ -256,13 +255,13 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       DSSIPlugin->PluginCount = (int *) csound->Malloc(csound, sizeof(int));
       *DSSIPlugin->PluginCount = 1;
       DSSIPlugin_ = DSSIPlugin;
-      if (p->iverbose != 0) {
+      if (verbose != 0) {
         csound->Message(csound, Str("DSSI4CS: Loading first instance.\n"));
       }
     }
     else {
       DSSIPlugin_ = LocatePlugin(*DSSIPlugin->PluginCount - 1, csound);
-      if (p->iverbose != 0) {
+      if (verbose != 0) {
         csound->Message(csound, "DSSI4CS: Located plugin: %i.\n",
                         DSSIPlugin_->PluginNumber);
       }
@@ -274,7 +273,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       *DSSIPlugin_->PluginCount = (*DSSIPlugin_->PluginCount) + 1;
     }
     *p->iDSSIHandle = DSSIPlugin_->PluginNumber;
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: About to load descriptor function "
                       "for plugin %i of %i.\n",
                       DSSIPlugin_->PluginNumber, *DSSIPlugin_->PluginCount);
@@ -289,7 +288,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       LDescriptor =
           (LADSPA_Descriptor *) DSSIPlugin_->DSSIDescriptor->LADSPA_Plugin;
       DSSIPlugin_->Type = DSSI;
-      if (p->iverbose != 0) {
+      if (verbose != 0) {
         csound->Message(csound, "DSSI4CS: DSSI Plugin detected.\n");
       }
     }
@@ -299,16 +298,18 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
                                              "ladspa_descriptor");
       if (pfDescriptorFunction==NULL) {
         dlclose(PluginLibrary);
-        return csound->InitError(csound, Str("No lapspa descriptor\n"));
+        return csound->InitError(csound, Str("No ladspa descriptor\n"));
       }
       DSSIPlugin_->Descriptor =
           (LADSPA_Descriptor *) csound->Calloc(csound,
                                                sizeof(LADSPA_Descriptor));
-      DSSIPlugin_->Descriptor =
-          (LADSPA_Descriptor *) pfDescriptorFunction(PluginIndex);
+      /* DSSIPlugin_->Descriptor = */
+      /*     (LADSPA_Descriptor *) pfDescriptorFunction(PluginIndex); */
       LDescriptor = (LADSPA_Descriptor *) DSSIPlugin_->Descriptor;
+      memcpy(LDescriptor,
+             pfDescriptorFunction(PluginIndex), sizeof(LADSPA_Descriptor));
       DSSIPlugin_->Type = LADSPA;
-      if (p->iverbose != 0) {
+      if (verbose != 0) {
         csound->Message(csound, "DSSI4CS: LADSPA Plugin Detected\n");
       }
     }
@@ -320,20 +321,22 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       /* csound->Free(csound, DSSIPlugin_->Descriptor); */
       if (pcError)
         csound->InitError(csound, Str("DSSI4CS: Unable to find "
-                                      "ladspa_descriptor() function or\n"
-                                      "dssi_descriptor() function in plugin file "
-                                      "\"%s\": %s.\n"
+                                      "ladspa_descriptor(%lu) function or\n"
+                                      "dssi_descriptor(%lu) function in plugin "
+                                      "file \"%s\": %s.\n"
                                       "Are you sure this is a LADSPA or "
                                       "DSSI plugin file ?"),
+                          PluginIndex, PluginIndex,
                           dssiFilename, pcError);
       else
         csound->InitError(csound, Str("DSSI4CS: Unable to find "
-                                      "ladspa_descriptor() function or\n"
-                                      "dssi_descriptor() function in plugin file "
-                                      "\"%s\".\n"
+                                      "ladspa_descriptor(%lu) function or\n"
+                                      "dssi_descriptor(%lu) function in plugin "
+                                      "file \"%s\".\n"
                                       "Are you sure this is a LADSPA or "
                                       "DSSI plugin file ?"),
-                            dssiFilename);
+                          PluginIndex, PluginIndex,
+                          dssiFilename);
       dlclose(PluginLibrary);
       return NOTOK;
     }
@@ -343,7 +346,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       dlclose(PluginLibrary);
       return NOTOK;
     }
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: About to instantiate plugin.\n");
     }
 
@@ -361,12 +364,12 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
 
       }
       if (UNLIKELY(!DSSIPlugin_->Descriptor->run)) {
-        csound->InitError(csound, Str("DSSI4CS: No run() funtion in: %s"),
-                          LDescriptor->Name);
-      PortCount = DSSIPlugin_->Descriptor->PortCount;
-       dlclose(PluginLibrary);
-      return NOTOK;
+        return csound->InitError(csound, Str("DSSI4CS: No run() funtion in: %s"),
+                                 LDescriptor->Name);
       }
+      PortCount = DSSIPlugin_->Descriptor->PortCount;
+      //dlclose(PluginLibrary);
+      //return NOTOK;
     }
     else {
       if (UNLIKELY(!
@@ -389,7 +392,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
                                              DSSI4CS_MAX_NUM_EVENTS
                                              * sizeof(snd_seq_event_t));
     }
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       if (DSSIPlugin_->Handle)
         csound->Message(csound, "DSSI4CS: Plugin instantiated.\n");
       else
@@ -407,7 +410,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
       if (LADSPA_IS_PORT_AUDIO(PortDescriptor))
         ConnectedAudioPorts++;
     }
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: Found %lu control ports for: '%s'\n",
                       ConnectedControlPorts, LDescriptor->Name);
       csound->Message(csound, "DSSI4CS: Found %lu audio ports for: '%s'\n",
@@ -416,13 +419,13 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
 
     DSSIPlugin_->control =
         (LADSPA_Data **) csound->Calloc(csound, ConnectedControlPorts
-                                                * sizeof(LADSPA_Data *));
+                                              * sizeof(LADSPA_Data *));
     DSSIPlugin_->audio =
         (LADSPA_Data **) csound->Calloc(csound, ConnectedAudioPorts
-                                                * sizeof(LADSPA_Data *));
-    if (p->iverbose != 0) {
+                                               * sizeof(LADSPA_Data *));
+    //    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: Created port array.\n");
-    }
+      //    }
 
     ConnectedControlPorts = 0;
     ConnectedAudioPorts = 0;
@@ -431,7 +434,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
           (DSSIPlugin_->Type ==
            LADSPA ? DSSIPlugin_->Descriptor->PortDescriptors[i]
            : DSSIPlugin_->DSSIDescriptor->LADSPA_Plugin->PortDescriptors[i]);
-      if (p->iverbose != 0) {
+      if (verbose != 0) {
         csound->Message(csound, "DSSI4CS: Queried port descriptor.\n");
       }
 
@@ -449,7 +452,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
               DSSIPlugin_->Handle, i,
               (LADSPA_Data *) DSSIPlugin_->control[ConnectedControlPorts]);
         }
-        if (p->iverbose != 0) {
+        if (verbose != 0) {
           csound->Message(csound,
                           "DSSI4CS: Created internal control port "
                           "%lu for Port %lu.\n",
@@ -470,7 +473,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
           DSSIPlugin_->DSSIDescriptor->LADSPA_Plugin->connect_port(
               DSSIPlugin_->Handle, i,
               (LADSPA_Data *) DSSIPlugin_->audio[ConnectedAudioPorts]);
-        if (p->iverbose != 0) {
+        if (verbose != 0) {
           csound->Message(csound,
                           "DSSI4CS: Created internal audio port"
                           " %lu for Port %lu.\n",
@@ -482,7 +485,7 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
 
     }
     /* All ports must be connected before calling run() */
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: Created %lu control ports for: '%s'\n",
                       ConnectedControlPorts, LDescriptor->Name);
       csound->Message(csound, "DSSI4CS: Created %lu audio ports for: '%s'\n",
@@ -491,12 +494,11 @@ int dssiinit(CSOUND * csound, DSSIINIT * p)
 
     DSSIPlugin_->Active = 0;
     DSSIPlugin_->EventCount = 0;
-    if (p->iverbose != 0) {
+    if (verbose != 0) {
       csound->Message(csound, "DSSI4CS: Init Done.\n");
-      if (*p->iverbose != 0)
-        info(csound, DSSIPlugin_);
+      info(csound, DSSIPlugin_);
     }
-    dlclose(PluginLibrary);
+    //dlclose(PluginLibrary);
     return OK;
 }
 
@@ -774,9 +776,10 @@ int dssiaudio(CSOUND * csound, DSSIAUDIO * p)
 
     if (p->DSSIPlugin_->Active == 1) {
       for (j = 0; j < icnt; j++) {
-        for (i = 0; i < Ksmps; i++)
+        for (i = 0; i < Ksmps; i++) {
           p->DSSIPlugin_->audio[p->InputPorts[j]][i] =
             p->ain[j][i] * (1.0/csound->Get0dBFS(csound));
+        }
       }
       Descriptor->run(p->DSSIPlugin_->Handle, Ksmps);
       for (j = 0; j < ocnt; j++) {
@@ -836,11 +839,17 @@ int dssictls_init(CSOUND * csound, DSSICTLS * p)
       return csound->InitError(csound, "DSSI4CS: Invalid plugin handle.");
     }
     if (p->DSSIPlugin_->Type == LADSPA) {
-      Descriptor = (LADSPA_Descriptor *) p->DSSIPlugin_->Descriptor;
+      Descriptor = p->DSSIPlugin_->Descriptor;
     }
     else {
-      Descriptor =
-          (LADSPA_Descriptor *) p->DSSIPlugin_->DSSIDescriptor->LADSPA_Plugin;
+      Descriptor = p->DSSIPlugin_->DSSIDescriptor->LADSPA_Plugin;
+    }
+
+    if (PortIndex >= Descriptor->PortCount) {
+      return
+        csound->InitError(csound,
+                          Str("DSSI4CS: Port %lu from '%s' does not exist."),
+                          PortIndex, Descriptor->Name);
     }
     p->HintSampleRate =
         (LADSPA_IS_HINT_SAMPLE_RATE
@@ -850,12 +859,6 @@ int dssictls_init(CSOUND * csound, DSSICTLS * p)
                     "DSSI4CS: Port %lu multiplier (HintSampleRate): %i.\n",
                     PortIndex, p->HintSampleRate);
 #endif
-
-    if (PortIndex > Descriptor->PortCount) {
-      csound->InitError(csound, Str("DSSI4CS: Port %lu from '%s' does not exist."),
-                                PortIndex, Descriptor->Name);
-      return NOTOK;
-    }
     LADSPA_PortDescriptor PortDescriptor =
         Descriptor->PortDescriptors[PortIndex];
     if (LADSPA_IS_PORT_OUTPUT(PortDescriptor))
@@ -906,8 +909,7 @@ int dssictls_dummy(CSOUND * csound, DSSICTLS * p)
 int dssisynth_init(CSOUND * csound, DSSISYNTH * p)
 {
     /* TODO docs: dssisynth only for DSSI plugs */
-    csound->InitError(csound, "DSSI4CS: dssisynth not implemented yet.");
-    return NOTOK;
+    return csound->InitError(csound, "DSSI4CS: dssisynth not implemented yet.");
 }
 
 int dssisynth(CSOUND * csound, DSSISYNTH * p)
@@ -920,8 +922,7 @@ int dssisynth(CSOUND * csound, DSSISYNTH * p)
 *****************************************************************************/
 int dssinote_init(CSOUND * csound, DSSINOTE * p)
 {
-    csound->InitError(csound, Str("DSSI4CS: dssinote not implemented yet."));
-    return NOTOK;
+    return csound->InitError(csound, Str("DSSI4CS: dssinote not implemented yet."));
 }
 
 int dssinote(CSOUND * csound, DSSINOTE * p)
@@ -931,8 +932,8 @@ int dssinote(CSOUND * csound, DSSINOTE * p)
 
 int dssievent_init(CSOUND * csound, DSSINOTEON * p)
 {
-    csound->InitError(csound, Str("DSSI4CS: dssievent not implemented yet."));
-    return NOTOK;
+    return
+      csound->InitError(csound, Str("DSSI4CS: dssievent not implemented yet."));
 }
 
 int dssievent(CSOUND * csound, DSSINOTEON * p)
@@ -1095,14 +1096,14 @@ int dssilist(CSOUND * csound, DSSILIST * p)
     const char *src;
 
     src = getenv("LADSPA_PATH");
-    if(src)
+    if (src)
       pcLADSPAPath = strndup(src, 1024);
     else
       pcLADSPAPath = NULL;
 
     pcDSSIPath = getenv("DSSI_PATH");
     src = getenv("DSSI_PATH");
-    if(src)
+    if (src)
       pcDSSIPath = strndup(src, 1024);
     else
       pcDSSIPath = NULL;
diff --git a/Opcodes/dssi4cs/src/load.c b/Opcodes/dssi4cs/src/load.c
index b82f2a0..405af8b 100644
--- a/Opcodes/dssi4cs/src/load.c
+++ b/Opcodes/dssi4cs/src/load.c
@@ -19,7 +19,7 @@ void   *dlopenLADSPA(CSOUND *csound, const char *pcFilename, int iFlag)
 
     char   *pcBuffer;
     const char *pcEnd;
-          char *pcLADSPAPath = NULL;
+    char *pcLADSPAPath = NULL;
     char *pcDSSIPath = NULL;
     const char *pcStart;
     int     iEndsInSO;
@@ -52,7 +52,11 @@ void   *dlopenLADSPA(CSOUND *csound, const char *pcFilename, int iFlag)
         csound->Message(csound,
                         Str("DSSI4CS: LADSPA_PATH environment "
                             "variable not set.\n"));
+#ifdef LIB64
+        pcLADSPAPath = strdup("/usr/lib64/ladspa/");
+#else
         pcLADSPAPath = strdup("/usr/lib/ladspa/");
+#endif
       }
       if (pcDSSIPath) {
         int len = strlen(pcLADSPAPath)+strlen(pcDSSIPath)+2;
@@ -67,7 +71,6 @@ void   *dlopenLADSPA(CSOUND *csound, const char *pcFilename, int iFlag)
           pcEnd = pcStart;
           while (*pcEnd != ':' && *pcEnd != '\0')
             pcEnd++;
-
           pcBuffer = csound->Malloc(csound,
                                     iFilenameLength + 2 + (pcEnd - pcStart));
           if (pcEnd > pcStart)
@@ -84,8 +87,8 @@ void   *dlopenLADSPA(CSOUND *csound, const char *pcFilename, int iFlag)
 
           csound->Free(csound, pcBuffer);
           if (pvResult != NULL) {
-            if(pcLADSPAPath) free(pcLADSPAPath);
-            if(pcDSSIPath) free(pcDSSIPath);
+            if (pcLADSPAPath) free(pcLADSPAPath);
+            if (pcDSSIPath) free(pcDSSIPath);
             return pvResult;
           }
           pcStart = pcEnd;
@@ -94,8 +97,8 @@ void   *dlopenLADSPA(CSOUND *csound, const char *pcFilename, int iFlag)
         }
       }
     }
-    if(pcLADSPAPath) free(pcLADSPAPath);
-    if(pcDSSIPath) free(pcDSSIPath);
+    if (pcLADSPAPath) free(pcLADSPAPath);
+    if (pcDSSIPath) free(pcDSSIPath);
     /* As a last ditch effort, check if filename does not end with
        ".so". In this case, add this suffix and recurse. */
     iEndsInSO = 0;
diff --git a/Opcodes/emugens/emugens.c b/Opcodes/emugens/emugens.c
index 2cf74d3..a44121c 100644
--- a/Opcodes/emugens/emugens.c
+++ b/Opcodes/emugens/emugens.c
@@ -22,7 +22,6 @@
     02111-1307 USA
 */
 
-// #include <math.h>
 #include <csdl.h>
 
 /*
@@ -48,8 +47,11 @@ static int linlink(CSOUND *csound, LINLINK *p) {
     MYFLT x0 = *p->kx0;
     MYFLT y0 = *p->ky0;
     MYFLT x = *p->kx;
-    /* if x0 == *(p->kx1) this crashes */
-    *p->kout = (x - x0) / (*(p->kx1) -x0) * (*(p->ky1) - y0) + y0;
+    MYFLT x1 = *p->kx1;
+    if (UNLIKELY(x0 == x1))
+      return csound->PerfError(csound, p->h.insdshead,
+                               Str("linlin.k: Division by zero"));
+    *p->kout = (x - x0) / (x1 -x0) * (*(p->ky1) - y0) + y0;
     return OK;
 }
 
@@ -110,7 +112,6 @@ static int xyscale(CSOUND *csound, XYSCALE *p) {
 
 midi to frequency conversion
 
-kfreq = mtof(69, 442)  ; A4 is optional, default=440
 kfreq = mtof(69)
 
 */
@@ -423,8 +424,9 @@ static int cmp_init(CSOUND *csound, Cmp *p) {
     } else if (op[0] == '=') {
       p->mode = 4;
     } else {
-      printf("cmp: operator not understood. Expecting <, <=, >, >=, ==\n");
-      return NOTOK;
+      return
+        csound->InitError(csound, Str("cmp: operator not understood. "
+                                      "Expecting <, <=, >, >=, ==\n"));
     }
     return OK;
 }
diff --git a/Opcodes/emugens/scugens.c b/Opcodes/emugens/scugens.c
index 7213eca..81c2c79 100644
--- a/Opcodes/emugens/scugens.c
+++ b/Opcodes/emugens/scugens.c
@@ -128,8 +128,15 @@ static int laga_next(CSOUND *csound, LAG *p) {
     MYFLT y1 = p->y1;
     MYFLT b1 = p->b1;
     MYFLT y0;
+    uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+    uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
+    if (UNLIKELY(offset)) memset(p->out, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early))  {
+      nsmps -= early;
+      memset(&p->out[nsmps], '\0', early*sizeof(MYFLT));
+    }
     if (lag == p->lag) {
-      for (n=0; n<nsmps; n++) {
+      for (n=offset; n<nsmps; n++) {
         y0 = in[n];
         y1 = y0 + b1 * (y1 - y0);
         out[n] = y1;
@@ -141,7 +148,7 @@ static int laga_next(CSOUND *csound, LAG *p) {
       p->b1 = lag == FL(0.0) ? FL(0.0) : exp(LOG001 / (lag * p->sr));
       MYFLT b1_slope = CALCSLOPE(p->b1, b1, nsmps);
       p->lag = lag;
-      for (n=0; n<nsmps; n++) {
+      for (n=offset; n<nsmps; n++) {
         b1 += b1_slope;
         y0 = in[n];
         y1 = y0 + b1 * (y1 - y0);
@@ -169,11 +176,17 @@ static int lagud_a(CSOUND *csound, LagUD *p) {
       y1 = p->y1,
       b1u = p->b1u,
       b1d = p->b1d;
-
+    uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+    uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
     uint32_t n, nsmps = CS_KSMPS;
 
+    if (UNLIKELY(offset)) memset(p->out, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early))  {
+      nsmps -= early;
+      memset(&p->out[nsmps], '\0', early*sizeof(MYFLT));
+    }
     if ((lagu == p->lagu) && (lagd == p->lagd)) {
-      for (n=0; n<nsmps; n++) {
+      for (n=offset; n<nsmps; n++) {
         MYFLT y0 = in[n];
         if (y0 > y1)
           y1 = y0 + b1u * (y1 - y0);
@@ -190,7 +203,7 @@ static int lagud_a(CSOUND *csound, LagUD *p) {
       p->b1d = lagd == FL(0.0) ? FL(0.0) : exp(LOG001 / (lagd * sr));
       MYFLT b1d_slope = CALCSLOPE(p->b1d, b1d, nsmps);
       p->lagd = lagd;
-      for (n=0; n<nsmps; n++) {
+      for (n=offset; n<nsmps; n++) {
         MYFLT y0 = in[n];
         b1u += b1u_slope;
         b1d += b1d_slope;
@@ -272,8 +285,15 @@ static int trig_a(CSOUND *csound, Trig *p) {
       prevtrig = p->prevtrig,
       level = p->level;
     unsigned long counter = p->counter;
+    uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+    uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
     uint32_t n, nsmps = CS_KSMPS;
-    for(n=0; n<nsmps; n++) {
+    if (UNLIKELY(offset)) memset(p->out, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early))  {
+      nsmps -= early;
+      memset(&p->out[nsmps], '\0', early*sizeof(MYFLT));
+    }
+    for (n=offset; n<nsmps; n++) {
       MYFLT curtrig = in[n];
       MYFLT zout;
       if (counter > 0) {
@@ -365,22 +385,22 @@ static int trig_init(CSOUND *csound, Trig *p) {
 typedef struct {
   OPDS    h;
   MYFLT   *out, *trig, *rate, *start, *end, *resetPos;
-  MYFLT   level, previn, resetk;
+  MYFLT   level, previn/*, resetk*/;
 } Phasor;
 
 static int phasor_init(CSOUND *csound, Phasor *p) {
     p->previn = 0;
     p->level = 0;
-    p->resetk = 1;
+    /* p->resetk = 1; */
     return OK;
 }
 
-static int phasor_init0(CSOUND *csound, Phasor *p) {
-    p->previn = 0;
-    p->level = 0;
-    p->resetk = 0;
-    return OK;
-}
+/* static int phasor_init0(CSOUND *csound, Phasor *p) { */
+/*     p->previn = 0; */
+/*     p->level = 0; */
+/*     p->resetk = 0; */
+/*     return OK; */
+/* } */
 
 static int phasor_aa(CSOUND *csound, Phasor *p) {
     MYFLT *out  = p->out;
@@ -388,11 +408,19 @@ static int phasor_aa(CSOUND *csound, Phasor *p) {
     MYFLT *rate = p->rate;
     MYFLT start = *p->start;
     MYFLT end   = *p->end;
-    MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
+    //MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
+    MYFLT resetPos = *p->resetPos;
     MYFLT previn = p->previn;
     MYFLT level = p->level;
+    uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+    uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
     uint32_t n, nsmps = CS_KSMPS;
-    for(n=0; n<nsmps; n++) {
+    if (UNLIKELY(offset)) memset(p->out, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early))  {
+      nsmps -= early;
+      memset(&p->out[nsmps], '\0', early*sizeof(MYFLT));
+    }
+    for (n=offset; n<nsmps; n++) {
       MYFLT curin = in[n];
       MYFLT zrate = rate[n];
       if (previn <= FL(0.0) && curin > FL(0.0)) {
@@ -415,12 +443,20 @@ static int phasor_ak(CSOUND *csound, Phasor *p) {
     MYFLT rate  = *p->rate;
     MYFLT start = *p->start;
     MYFLT end   = *p->end;
-    // MYFLT resetPos = *p->resetPos;
-    MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
+    MYFLT resetPos = *p->resetPos;
+    //MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
     MYFLT previn = p->previn;
     MYFLT level = p->level;
-    uint32_t n, nsmps = CS_KSMPS;
-    for(n=0; n<nsmps; n++) {
+    uint32_t n;
+    uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+    uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
+    uint32_t nsmps = CS_KSMPS;
+    if (UNLIKELY(offset)) memset(p->out, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early))  {
+      nsmps -= early;
+      memset(&p->out[nsmps], '\0', early*sizeof(MYFLT));
+    }
+    for (n=offset; n<nsmps; n++) { // Only calculate inside event
       MYFLT curin = in[n];
       if (previn <= FL(0.0) && curin > FL(0.0)) {
         MYFLT frac = FL(1.0) - previn/(curin-previn);
@@ -441,12 +477,12 @@ static int phasor_kk(CSOUND *csound, Phasor *p) {
     MYFLT rate  = *p->rate;
     MYFLT start = *p->start;
     MYFLT end   = *p->end;
-    // MYFLT resetPos = *p->resetPos;
-    MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
+    MYFLT resetPos = *p->resetPos;
+    //MYFLT resetPos = p->resetk ? (*p->resetPos) : 0;
     MYFLT previn = p->previn;
     MYFLT level = p->level;
 
-    if (previn <= FL(0.0) && curin > FL(0.0)) {
+    if (UNLIKELY(previn <= FL(0.0) && curin > FL(0.0))) {
       level = resetPos;
     }
     level = sc_wrap(level, start, end);
@@ -471,18 +507,18 @@ static OENTRY localops[] = {
   { "sc_trig",    S(Trig),  0, 3,   "k", "kk", (SUBR)trig_init, (SUBR)trig_k },
   { "sc_trig",    S(Trig),  0, 5,   "a", "ak",
     (SUBR)trig_init, NULL, (SUBR)trig_a },
-  { "sc_phasor",  S(Phasor),  0, 3,   "k", "kkkkk",
+  { "sc_phasor",  S(Phasor),  0, 3,   "k", "kkkkO",
     (SUBR)phasor_init, (SUBR)phasor_kk },
-  { "sc_phasor",  S(Phasor),  0, 5,   "a", "akkkk",
+  { "sc_phasor",  S(Phasor),  0, 5,   "a", "akkkO",
     (SUBR)phasor_init, NULL, (SUBR)phasor_ak },
-  { "sc_phasor",  S(Phasor),  0, 5,   "a", "aakkk",
+  { "sc_phasor",  S(Phasor),  0, 5,   "a", "aakkO",
     (SUBR)phasor_init, NULL, (SUBR)phasor_aa },
-  { "sc_phasor",  S(Phasor),  0, 3,   "k", "kkkk",
-    (SUBR)phasor_init0, (SUBR)phasor_kk },
-  { "sc_phasor",  S(Phasor),  0, 5,   "a", "akkk",
-    (SUBR)phasor_init0, NULL, (SUBR)phasor_ak },
-  { "sc_phasor",  S(Phasor),  0, 5,   "a", "aakk",
-    (SUBR)phasor_init0, NULL, (SUBR)phasor_aa }
+  /* { "sc_phasor",  S(Phasor),  0, 3,   "k", "kkkk", */
+  /*   (SUBR)phasor_init0, (SUBR)phasor_kk }, */
+  /* { "sc_phasor",  S(Phasor),  0, 5,   "a", "akkk", */
+  /*   (SUBR)phasor_init0, NULL, (SUBR)phasor_ak }, */
+  /* { "sc_phasor",  S(Phasor),  0, 5,   "a", "aakk", */
+  /*   (SUBR)phasor_init0, NULL, (SUBR)phasor_aa } */
 };
 
 LINKAGE
diff --git a/Opcodes/fareyseq.c b/Opcodes/fareyseq.c
index 4820b60..98d4f14 100644
--- a/Opcodes/fareyseq.c
+++ b/Opcodes/fareyseq.c
@@ -254,7 +254,7 @@ int tablefilter (CSOUND *csound, TABFILT *p)
     }
     if (UNLIKELY((*p->ftype < 1))) {
       return csound->PerfError(csound, p->h.insdshead,
-                               Str("Farey: Filter type < 1 dft=%.2f  sft=%.2f"),
+                               Str("Farey: Filter type < 1 ftype=%.2f"),
                                *p->ftype);
     }
 
@@ -304,7 +304,7 @@ int tableifilter (CSOUND *csound, TABFILT *p)
     }
     if (UNLIKELY((*p->ftype < 1))) {
       return csound->PerfError(csound, p->h.insdshead,
-                               Str("Farey: Filter type < 1"),
+                               Str("Farey: Filter type < 1 ftype=%.2f"),
                                *p->ftype);
     }
 
diff --git a/Opcodes/faustgen.cpp b/Opcodes/faustgen.cpp
index e115016..ecd087c 100644
--- a/Opcodes/faustgen.cpp
+++ b/Opcodes/faustgen.cpp
@@ -38,12 +38,14 @@
 #include <pthread.h>
 #include "faust/dsp/llvm-dsp.h"
 #include "faust/gui/UI.h"
+#include <string>
 #if defined(MACOSX) || defined(linux) || defined(HAIKU)
 #include <unistd.h>
 #endif
 
 #define MAXARG 40
 
+
 /**
  * Faust controls class for Csound
  *
@@ -87,6 +89,9 @@ public:
   virtual void openVerticalBox(const char* label) {};
   virtual void closeBox() {};
 
+  virtual void addSoundfile(const char* label, const char* filename,
+                            Soundfile** sf_zone) {};
+
   virtual void addButton(const char* label, FAUSTFLOAT* zone) {
     addctl(label, zone, 0, 0);
   }
@@ -420,7 +425,7 @@ int init_faustaudio(CSOUND *csound, faustgen *p){
     return csound->InitError(csound,
                              Str("no factory available\n"));
   fobj = *fobjp;
-  while(fobj->cnt != factory) {
+  while((int) fobj->cnt != factory) {
     fobj = fobj->nxt;
     if(fobj == NULL)
       return csound->InitError(csound,
@@ -481,7 +486,7 @@ int init_faustaudio(CSOUND *csound, faustgen *p){
   /* memory for sampAccurate offsets */
   csound->GetOParms(csound, &parms);
   if(parms.sampleAccurate){
-    int size;
+    size_t size;
     size = p->engine->getNumInputs()*sizeof(MYFLT *);
     if(p->memin.auxp == NULL ||
        p->memin.size < size)
@@ -502,7 +507,6 @@ void *init_faustgen_thread(void *pp){
   faustgen *p = ((hdata2 *) pp)->p;
   OPARMS parms;
   std::string err_msg;
-  int size;
   int argc = 3;
   const char* argv[argc];
   faustobj  **pfdsp, *fdsp;
@@ -587,7 +591,7 @@ void *init_faustgen_thread(void *pp){
   /* memory for sampAccurate offsets */
   csound->GetOParms(csound, &parms);
   if(parms.sampleAccurate){
-    int size;
+    size_t size;
     size = p->engine->getNumInputs()*sizeof(MYFLT *);
     if(p->memin.auxp == NULL ||
        p->memin.size < size)
@@ -688,7 +692,7 @@ int init_faustctl(CSOUND *csound, faustctl *p){
                              Str("no dsp instances available\n"));
   fobj = *fobjp;
 
-  while(fobj->cnt != instance) {
+  while((int) fobj->cnt != instance) {
     fobj = fobj->nxt;
     if(fobj == NULL)
       return csound->InitError(csound,
diff --git a/Opcodes/flanger.c b/Opcodes/flanger.c
index 062026d..b676309 100644
--- a/Opcodes/flanger.c
+++ b/Opcodes/flanger.c
@@ -119,7 +119,7 @@ static int wguide1(CSOUND *csound, WGUIDE1 *p)
     if (*p->filt_khp != p->prvhp) {
       double b;
       p->prvhp = *p->filt_khp;
-      b = 2.0 - cos((double)(*p->filt_khp * csound->tpidsr));
+      b = 2.0 - cos((double)(p->prvhp * csound->tpidsr));
       p->c2 = (MYFLT)(b - sqrt(b * b - 1.0));
       p->c1 = FL(1.0) - p->c2;
     }
@@ -239,14 +239,14 @@ static int wguide2(CSOUND *csound, WGUIDE2 *p)
     if (*p->filt_khp1 != p->prvhp1) {
       double b;
       p->prvhp1 = *p->filt_khp1;
-      b = 2.0 - cos((double)(*p->filt_khp1 * csound->tpidsr));
+      b = 2.0 - cos((double)(p->prvhp1 * csound->tpidsr));
       p->c2_1 = (MYFLT)(b - sqrt((b * b) - 1.0));
       p->c1_1 = FL(1.0) - p->c2_1;
     }
     if (*p->filt_khp2 != p->prvhp2) {
       double b;
       p->prvhp2 = *p->filt_khp2;
-      b = 2.0 - cos((double)(*p->filt_khp2 * csound->tpidsr));
+      b = 2.0 - cos((double)(p->prvhp2 * csound->tpidsr));
       p->c2_2 = (MYFLT)(b - sqrt((double)(b * b) - 1.0));
       p->c1_2 = FL(1.0) - p->c2_2;
     }
diff --git a/Opcodes/fluidOpcodes/fluidOpcodes.cpp b/Opcodes/fluidOpcodes/fluidOpcodes.cpp
index a12928d..99fb00a 100644
--- a/Opcodes/fluidOpcodes/fluidOpcodes.cpp
+++ b/Opcodes/fluidOpcodes/fluidOpcodes.cpp
@@ -45,9 +45,6 @@
 
 using namespace csound;
 
-static std::vector<fluid_synth_t *> *fluid_synths = 0;
-static void *fluid_synths_mutex = 0;
-
 /**
  * Template union for safely and efficiently
  * typecasting the value of a MYFLT variable
@@ -55,10 +52,10 @@ static void *fluid_synths_mutex = 0;
  */
 template<typename A, typename F>
 struct AddressCaster {
-    union {
-        A* a;
-        F f;
-    };
+        union {
+                A *a;
+                F f;
+        };
 };
 
 /**
@@ -67,9 +64,9 @@ struct AddressCaster {
  */
 template<typename A, typename F> void tof(A *a, F *f)
 {
-    AddressCaster<A, F> addressCaster;
-    addressCaster.a = a;
-    *f = addressCaster.f;
+        AddressCaster<A, F> addressCaster;
+        addressCaster.a = a;
+        *f = addressCaster.f;
 };
 
 /**
@@ -78,707 +75,714 @@ template<typename A, typename F> void tof(A *a, F *f)
  */
 template<typename A, typename F> void toa(F *f, A *&a)
 {
-    AddressCaster<A, F> addressCaster;
-    addressCaster.f = *f;
-    a = addressCaster.a;
+        AddressCaster<A, F> addressCaster;
+        addressCaster.f = *f;
+        a = addressCaster.a;
 };
 
 class FluidEngine : public OpcodeBase<FluidEngine>
 {
-    // Outputs.
-    MYFLT *iFluidSynth;
-    // Inputs.
-    MYFLT *iChorusEnabled;
-    MYFLT *iReverbEnabled;
-    MYFLT *iChannelCount;
-    MYFLT *iVoiceCount;
-    // State.
-    fluid_synth_t *fluidSynth;
-    fluid_settings_t *fluidSettings;
-    int chorusEnabled;
-    int reverbEnabled;
-    int channelCount;
-    int voiceCount;
-    void *mutex;
+        // Outputs.
+        MYFLT *iFluidSynth;
+        // Inputs.
+        MYFLT *iChorusEnabled;
+        MYFLT *iReverbEnabled;
+        MYFLT *iChannelCount;
+        MYFLT *iVoiceCount;
+        // State.
+        //fluid_synth_t *fluidSynth;
+        //fluid_settings_t *fluidSettings;
+        int chorusEnabled;
+        int reverbEnabled;
+        int channelCount;
+        int voiceCount;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        int result = OK;
-        fluid_synth_t *fluidSynth = 0;
-        fluid_settings_t *fluidSettings = 0;
-        chorusEnabled = (int) *iChorusEnabled;
-        reverbEnabled = (int) *iReverbEnabled;
-        channelCount = (int) *iChannelCount;
-        voiceCount = (int) *iVoiceCount;
-        if (channelCount <= 0) {
-            channelCount = 256;
-        } else if (channelCount < 16) {
-            channelCount = 16;
-        } else if (channelCount > 256) {
-            channelCount = 256;
-        }
-        if (voiceCount <= 0) {
-            voiceCount = 4096;
-        } else if (voiceCount < 16) {
-            voiceCount = 16;
-        } else if (voiceCount > 4096) {
-            voiceCount = 4096;
-        }
-        fluidSettings = new_fluid_settings();
-        if (fluidSettings != NULL) {
-            fluid_settings_setnum(fluidSettings,
-                                  (char *)"synth.sample-rate",
-                                  (double) csound->GetSr(csound));
-            fluid_settings_setint(fluidSettings,
-                                  (char *)"synth.midi-channels", channelCount);
-            fluid_settings_setint(fluidSettings,
-                                  (char *)"synth.polyphony", voiceCount);
-            fluidSynth = new_fluid_synth(fluidSettings);
-        }
-        if (!fluidSynth) {
-            if (fluidSettings) {
-                delete_fluid_settings(fluidSettings);
-            }
-            result = csound->InitError(csound,
-                                       Str("error allocating fluid engine\n"));
-        } else {
-            fluid_synth_set_chorus_on(fluidSynth, chorusEnabled);
-            fluid_synth_set_reverb_on(fluidSynth, reverbEnabled);
-            log(csound, "Created fluidEngine 0x%p with sampling rate = %f, "
-                "chorus %s, reverb %s, channels %d, voices %d.\n",
-                fluidSynth, (double) csound->GetSr(csound),
-                chorusEnabled ? "on" : "off",
-                reverbEnabled ? "on" : "off",
-                channelCount,
-                voiceCount);
-            tof(fluidSynth, iFluidSynth);
-            {
-                LockGuard synthsGuard(csound, fluid_synths_mutex);
-                fluid_synths->push_back(fluidSynth);
-            }
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                int result = OK;
+                fluid_synth_t *fluidSynth = 0;
+                fluid_settings_t *fluidSettings = 0;
+                chorusEnabled = (int) *iChorusEnabled;
+                reverbEnabled = (int) *iReverbEnabled;
+                channelCount = (int) *iChannelCount;
+                voiceCount = (int) *iVoiceCount;
+                if (channelCount <= 0) {
+                        channelCount = 256;
+                } else if (channelCount < 16) {
+                        channelCount = 16;
+                } else if (channelCount > 256) {
+                        channelCount = 256;
+                }
+                if (voiceCount <= 0) {
+                        voiceCount = 4096;
+                } else if (voiceCount < 16) {
+                        voiceCount = 16;
+                } else if (voiceCount > 4096) {
+                        voiceCount = 4096;
+                }
+                fluidSettings = new_fluid_settings();
+                if (fluidSettings != NULL) {
+                        fluid_settings_setnum(fluidSettings,
+                                              (char *)"synth.sample-rate",
+                                              (double) csound->GetSr(csound));
+                        fluid_settings_setint(fluidSettings,
+                                              (char *)"synth.midi-channels", channelCount);
+                        fluid_settings_setint(fluidSettings,
+                                              (char *)"synth.polyphony", voiceCount);
+                        fluidSynth = new_fluid_synth(fluidSettings);
+                }
+                if (!fluidSynth) {
+                        if (fluidSettings) {
+                                delete_fluid_settings(fluidSettings);
+                        }
+                        result = csound->InitError(csound,
+                                                   Str("error allocating fluid engine\n"));
+                } else {
+                        fluid_synth_set_chorus_on(fluidSynth, chorusEnabled);
+                        fluid_synth_set_reverb_on(fluidSynth, reverbEnabled);
+                        log(csound, "Created fluidEngine 0x%p with sampling rate = %f, "
+                            "chorus %s, reverb %s, channels %d, voices %d.\n",
+                            fluidSynth, (double) csound->GetSr(csound),
+                            chorusEnabled ? "on" : "off",
+                            reverbEnabled ? "on" : "off",
+                            channelCount,
+                            voiceCount);
+                        tof(fluidSynth, iFluidSynth);
+                        {
+                void *fluid_synths_mutex = 0;
+                csound::QueryGlobalPointer(csound, "fluid_synths_mutex", fluid_synths_mutex);
+                                LockGuard synthsGuard(csound, fluid_synths_mutex);
+                std::vector<fluid_synth_t *> *fluid_synths = 0;
+                csound::QueryGlobalPointer(csound, "fluid_synths", fluid_synths);
+                                fluid_synths->push_back(fluidSynth);
+                        }
+                }
+                return result;
         }
-        return result;
-    }
 };
 
 class FluidLoad : public OpcodeBase<FluidLoad>
 {
-    // Outputs.
-    MYFLT *iInstrumentNumber;
-    // Inputs.
-    MYFLT *iFilename;
-    MYFLT *iFluidSynth;
-    MYFLT *iListPresets;
-    // State.
-    char *filename;
-    char *filepath;
-    fluid_synth_t *fluidSynth;
-    int soundFontId;
-    int listPresets;
-    void *mutex;
+        // Outputs.
+        MYFLT *iInstrumentNumber;
+        // Inputs.
+        MYFLT *iFilename;
+        MYFLT *iFluidSynth;
+        MYFLT *iListPresets;
+        // State.
+        char *filename;
+        char *filepath;
+        fluid_synth_t *fluidSynth;
+        int soundFontId;
+        int listPresets;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        int result = OK;
-        soundFontId = -1;
-        toa(iFluidSynth, fluidSynth);
-        listPresets = (int) *iListPresets;
-        CS_TYPE* argType = csound->GetTypeForArg(iFilename);
-        if(strcmp("S", argType->varTypeName) == 0) {
-            filename = csound->Strdup(csound, ((STRINGDAT *)iFilename)->data);
-        } else
-            filename = csound->strarg2name(csound,
-                                           (char*) NULL,
-                                           (std::isnan(*iFilename) ?
-                                            csound->GetString(csound, *iFilename) :
-                                            (char *) iFilename),
-                                           (char *)"fluid.sf2.",
-                                           std::isnan(*iFilename));
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                int result = OK;
+                soundFontId = -1;
+                toa(iFluidSynth, fluidSynth);
+                listPresets = (int) *iListPresets;
+                CS_TYPE *argType = csound->GetTypeForArg(iFilename);
+                if (strcmp("S", argType->varTypeName) == 0) {
+                        filename = csound->Strdup(csound, ((STRINGDAT *)iFilename)->data);
+                } else
+                        filename = csound->strarg2name(csound,
+                                                       (char *) NULL,
+                                                       (std::isnan(*iFilename) ?
+                                                        csound->GetString(csound, *iFilename) :
+                                                        (char *) iFilename),
+                                                       (char *)"fluid.sf2.",
+                                                       std::isnan(*iFilename));
 
-        filepath = csound->FindInputFile(csound, filename, "SFDIR;SSDIR");
-        if (filepath && fluid_is_soundfont(filepath)) {
-            log(csound, "Loading SoundFont : %s.\n", filepath);
-            soundFontId = fluid_synth_sfload(fluidSynth,
-                                             filepath,
-                                             0);
-            log(csound, "fluidSynth: 0x%p  soundFontId: %d.\n",
-                fluidSynth, soundFontId);
-        }
-        *iInstrumentNumber = (MYFLT) soundFontId;
-        if (soundFontId < 0) {
-            csound->InitError(csound,
-                              Str("fluid: unable to load %s"), filename);
-        }
-        csound->NotifyFileOpened(csound, filepath, CSFTYPE_SOUNDFONT, 0, 0);
-        if (soundFontId < 0) {
-            result = NOTOK;
-        } else if (listPresets) {
-            fluid_sfont_t *fluidSoundfont =
-                fluid_synth_get_sfont_by_id(fluidSynth, soundFontId);
-            fluid_preset_t fluidPreset;
-            fluidSoundfont->iteration_start(fluidSoundfont);
-            OPARMS oparms;
-            csound->GetOParms(csound, &oparms);
-            if (oparms.msglevel & 0x7)
-                while (fluidSoundfont->iteration_next(fluidSoundfont,
-                                                      &fluidPreset)) {
-                    log(csound,
-                        "SoundFont: %3d  Bank: %3d  Preset: %3d  %s\n",
-                        soundFontId,
-                        fluidPreset.get_banknum(&fluidPreset),
-                        fluidPreset.get_num(&fluidPreset),
-                        fluidPreset.get_name(&fluidPreset));
+                filepath = csound->FindInputFile(csound, filename, "SFDIR;SSDIR");
+                if (filepath && fluid_is_soundfont(filepath)) {
+                        log(csound, "Loading SoundFont : %s.\n", filepath);
+                        soundFontId = fluid_synth_sfload(fluidSynth,
+                                                         filepath,
+                                                         0);
+                        log(csound, "fluidSynth: 0x%p  soundFontId: %d.\n",
+                            fluidSynth, soundFontId);
+                }
+                *iInstrumentNumber = (MYFLT) soundFontId;
+                if (UNLIKELY(soundFontId < 0)) {
+                        return csound->InitError(csound,
+                                                 Str("fluid: unable to load %s"), filename);
+                }
+                csound->NotifyFileOpened(csound, filepath, CSFTYPE_SOUNDFONT, 0, 0);
+                if (soundFontId < 0) {
+                        result = NOTOK;
+                } else if (listPresets) {
+                        fluid_sfont_t *fluidSoundfont =
+                            fluid_synth_get_sfont_by_id(fluidSynth, soundFontId);
+                        fluid_preset_t fluidPreset;
+                        fluidSoundfont->iteration_start(fluidSoundfont);
+                        OPARMS oparms;
+                        csound->GetOParms(csound, &oparms);
+                        if (oparms.msglevel & 0x7)
+                                while (fluidSoundfont->iteration_next(fluidSoundfont,
+                                                                      &fluidPreset)) {
+                                        log(csound,
+                                            "SoundFont: %3d  Bank: %3d  Preset: %3d  %s\n",
+                                            soundFontId,
+                                            fluidPreset.get_banknum(&fluidPreset),
+                                            fluidPreset.get_num(&fluidPreset),
+                                            fluidPreset.get_name(&fluidPreset));
+                                }
                 }
+                return result;
         }
-        return result;
-    }
 };
 
 class FluidProgramSelect : public OpcodeBase<FluidProgramSelect>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *iChannelNumber;
-    MYFLT *iInstrumentNumber;
-    MYFLT *iBankNumber;
-    MYFLT *iPresetNumber;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int channel;
-    unsigned int instrument;
-    unsigned int bank;
-    unsigned int preset;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *iChannelNumber;
+        MYFLT *iInstrumentNumber;
+        MYFLT *iBankNumber;
+        MYFLT *iPresetNumber;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int channel;
+        unsigned int instrument;
+        unsigned int bank;
+        unsigned int preset;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        channel = (int) *iChannelNumber;
-        instrument = (unsigned int) *iInstrumentNumber;
-        bank = (unsigned int) *iBankNumber;
-        preset = (unsigned int) *iPresetNumber;
-        fluid_synth_program_select(fluidSynth,
-                                   channel,
-                                   instrument,
-                                   bank,
-                                   preset);
-        return OK;
-    }
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                channel = (int) *iChannelNumber;
+                instrument = (unsigned int) *iInstrumentNumber;
+                bank = (unsigned int) *iBankNumber;
+                preset = (unsigned int) *iPresetNumber;
+                fluid_synth_program_select(fluidSynth,
+                                           channel,
+                                           instrument,
+                                           bank,
+                                           preset);
+                return OK;
+        }
 };
 
 class FluidCCI : public OpcodeBase<FluidCCI>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *iChannelNumber;
-    MYFLT *iControllerNumber;
-    MYFLT *kVal;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int channel;
-    int controller;
-    int value;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *iChannelNumber;
+        MYFLT *iControllerNumber;
+        MYFLT *kVal;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int channel;
+        int controller;
+        int value;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        channel = (int) *iChannelNumber;
-        controller = (int) *iControllerNumber;
-        value = (int) *kVal;
-        fluid_synth_cc(fluidSynth, channel, controller, value);
-        return OK;
-    }
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                channel = (int) *iChannelNumber;
+                controller = (int) *iControllerNumber;
+                value = (int) *kVal;
+                fluid_synth_cc(fluidSynth, channel, controller, value);
+                return OK;
+        }
 };
 
 class FluidCCK : public OpcodeBase<FluidCCK>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *iChannelNumber;
-    MYFLT *iControllerNumber;
-    MYFLT *kVal;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int channel;
-    int controller;
-    int value;
-    int priorValue;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *iChannelNumber;
+        MYFLT *iControllerNumber;
+        MYFLT *kVal;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int channel;
+        int controller;
+        int value;
+        int priorValue;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        priorValue = -1;
-        return OK;
-    }
-    int kontrol(CSOUND *csound)
-    {
-        LockGuard guard(csound, mutex);
-        value = (int) *kVal;
-        if (value != priorValue) {
-            priorValue = value;
-            channel = (int) *iChannelNumber;
-            controller = (int) *iControllerNumber;
-            fluid_synth_cc(fluidSynth, channel, controller, value);
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                priorValue = -1;
+                return OK;
+        }
+        int kontrol(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                value = (int) *kVal;
+                if (value != priorValue) {
+                        priorValue = value;
+                        channel = (int) *iChannelNumber;
+                        controller = (int) *iControllerNumber;
+                        fluid_synth_cc(fluidSynth, channel, controller, value);
+                }
+                return OK;
         }
-        return OK;
-    }
 };
 
 class FluidNote : public OpcodeNoteoffBase<FluidNote>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *iChannelNumber;
-    MYFLT *iMidiKeyNumber;
-    MYFLT *iVelocity;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int channel;
-    int key;
-    int velocity;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *iChannelNumber;
+        MYFLT *iMidiKeyNumber;
+        MYFLT *iVelocity;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int channel;
+        int key;
+        int velocity;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        channel = (int) *iChannelNumber;
-        key = (int) *iMidiKeyNumber;
-        velocity = (int) *iVelocity;
-        fluid_synth_noteon(fluidSynth, channel, key, velocity);
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        LockGuard guard(csound, mutex);
-        fluid_synth_noteoff(fluidSynth, channel, key);
-        return OK;
-    }
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                channel = (int) *iChannelNumber;
+                key = (int) *iMidiKeyNumber;
+                velocity = (int) *iVelocity;
+                fluid_synth_noteon(fluidSynth, channel, key, velocity);
+                return OK;
+        }
+        int noteoff(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                fluid_synth_noteoff(fluidSynth, channel, key);
+                return OK;
+        }
 };
 
 class FluidOut : public OpcodeBase<FluidOut>
 {
-    // Outputs.
-    MYFLT *aLeftOut;
-    MYFLT *aRightOut;
-    // Inputs.
-    MYFLT *iFluidSynth;
-    // State.
-    fluid_synth_t *fluidSynth;
-    float leftSample;
-    float rightSample;
-    int frame;
-    int ksmps;
-    void *mutex;
+        // Outputs.
+        MYFLT *aLeftOut;
+        MYFLT *aRightOut;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        // State.
+        fluid_synth_t *fluidSynth;
+        float leftSample;
+        float rightSample;
+        int frame;
+        int ksmps;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        ksmps = opds.insdshead->ksmps;
-        return OK;
-    }
-    int audio(CSOUND *csound)
-    {
-        LockGuard guard(csound, mutex);
-        uint32_t offset = opds.insdshead->ksmps_offset;
-        uint32_t early  = opds.insdshead->ksmps_no_end;
-        if (UNLIKELY(offset)) {
-            memset(aLeftOut, '\0', offset*sizeof(MYFLT));
-            memset(aRightOut, '\0', offset*sizeof(MYFLT));
-        }
-        if (UNLIKELY(early)) {
-            ksmps -= early;
-            memset(&aLeftOut[ksmps], '\0', early*sizeof(MYFLT));
-            memset(&aRightOut[ksmps], '\0', early*sizeof(MYFLT));
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                ksmps = opds.insdshead->ksmps;
+                return OK;
         }
-        for (frame = offset; frame < ksmps; frame++) {
-            leftSample = 0.0f;
-            rightSample = 0.0f;
-            fluid_synth_write_float(fluidSynth, 1, &leftSample, 0, 1,
-                                    &rightSample, 0, 1);
-            aLeftOut[frame] = leftSample /* * csound->e0dbfs */;
-            aRightOut[frame] = rightSample /* * csound->e0dbfs */;
+        int audio(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                uint32_t offset = opds.insdshead->ksmps_offset;
+                uint32_t early  = opds.insdshead->ksmps_no_end;
+                if (UNLIKELY(offset)) {
+                        memset(aLeftOut, '\0', offset*sizeof(MYFLT));
+                        memset(aRightOut, '\0', offset*sizeof(MYFLT));
+                }
+                if (UNLIKELY(early)) {
+                        ksmps -= early;
+                        memset(&aLeftOut[ksmps], '\0', early*sizeof(MYFLT));
+                        memset(&aRightOut[ksmps], '\0', early*sizeof(MYFLT));
+                }
+                for (frame = offset; frame < ksmps; frame++) {
+                        leftSample = 0.0f;
+                        rightSample = 0.0f;
+                        fluid_synth_write_float(fluidSynth, 1, &leftSample, 0, 1,
+                                                &rightSample, 0, 1);
+                        aLeftOut[frame] = leftSample /* * csound->e0dbfs */;
+                        aRightOut[frame] = rightSample /* * csound->e0dbfs */;
+                }
+                return OK;
         }
-        return OK;
-    }
 };
 
 class FluidAllOut : public OpcodeBase<FluidAllOut>
 {
-    // Outputs.
-    MYFLT *aLeftOut;
-    MYFLT *aRightOut;
-    // State.
-    float leftSample;
-    float rightSample;
-    int frame;
-    int ksmps;
-    void *mutex;
+        // Outputs.
+        MYFLT *aLeftOut;
+        MYFLT *aRightOut;
+        // State.
+        float leftSample;
+        float rightSample;
+        int frame;
+        int ksmps;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        ksmps = opds.insdshead->ksmps;
-        return OK;
-    }
-    int audio(CSOUND *csound)
-    {
-        LockGuard guard(csound, mutex);
-        uint32_t offset = opds.insdshead->ksmps_offset;
-        uint32_t early  = opds.insdshead->ksmps_no_end;
-        if (UNLIKELY(offset)) {
-            memset(aLeftOut, '\0', offset*sizeof(MYFLT));
-            memset(aRightOut, '\0', offset*sizeof(MYFLT));
-        }
-        if (UNLIKELY(early)) {
-            ksmps -= early;
-            memset(&aLeftOut[ksmps], '\0', early*sizeof(MYFLT));
-            memset(&aRightOut[ksmps], '\0', early*sizeof(MYFLT));
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                ksmps = opds.insdshead->ksmps;
+                return OK;
         }
-        LockGuard synthsGuard(csound, fluid_synths_mutex);
-        for (frame = offset; frame < ksmps; frame++) {
-            aLeftOut[frame] = FL(0.0);
-            aRightOut[frame] = FL(0.0);
-            for (size_t i = 0, n = fluid_synths->size(); i < n; i++) {
-                fluid_synth_t *fluidSynth = (*fluid_synths)[i];
-                leftSample = FL(0.0);
-                rightSample = FL(0.0);
-                fluid_synth_write_float(fluidSynth, 1, &leftSample, 0, 1,
-                                        &rightSample, 0, 1);
-                aLeftOut[frame] += (MYFLT) leftSample /* * csound->e0dbfs */;
-                aRightOut[frame] += (MYFLT) rightSample /* * csound->e0dbfs */;
-            }
+        int audio(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                uint32_t offset = opds.insdshead->ksmps_offset;
+                uint32_t early  = opds.insdshead->ksmps_no_end;
+                if (UNLIKELY(offset)) {
+                        memset(aLeftOut, '\0', offset*sizeof(MYFLT));
+                        memset(aRightOut, '\0', offset*sizeof(MYFLT));
+                }
+                if (UNLIKELY(early)) {
+                        ksmps -= early;
+                        memset(&aLeftOut[ksmps], '\0', early*sizeof(MYFLT));
+                        memset(&aRightOut[ksmps], '\0', early*sizeof(MYFLT));
+                }
+                std::vector<fluid_synth_t *> *fluid_synths = 0;
+                csound::QueryGlobalPointer(csound, "fluid_synths", fluid_synths);
+        void *fluid_synths_mutex = 0;
+                csound::QueryGlobalPointer(csound, "fluid_synths_mutex", fluid_synths_mutex);
+                LockGuard synthsGuard(csound, fluid_synths_mutex);
+                for (frame = offset; frame < ksmps; frame++) {
+                        aLeftOut[frame] = FL(0.0);
+                        aRightOut[frame] = FL(0.0);
+                        for (size_t i = 0, n = fluid_synths->size(); i < n; i++) {
+                                fluid_synth_t *fluidSynth = (*fluid_synths)[i];
+                                leftSample = FL(0.0);
+                                rightSample = FL(0.0);
+                                fluid_synth_write_float(fluidSynth, 1, &leftSample, 0, 1,
+                                                        &rightSample, 0, 1);
+                                aLeftOut[frame] += (MYFLT) leftSample /* * csound->e0dbfs */;
+                                aRightOut[frame] += (MYFLT) rightSample /* * csound->e0dbfs */;
+                        }
+                }
+                return OK;
         }
-        return OK;
-    }
 };
 
 class FluidControl : public OpcodeBase<FluidControl>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *kMidiStatus;
-    MYFLT *kMidiChannel;
-    MYFLT *kMidiData1;
-    MYFLT *kMidiData2;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int midiStatus;
-    int midiChannel;
-    int midiData1;
-    int midiData2;
-    int priorMidiStatus;
-    int priorMidiChannel;
-    int priorMidiData1;
-    int priorMidiData2;
-    int printMsgs;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *kMidiStatus;
+        MYFLT *kMidiChannel;
+        MYFLT *kMidiData1;
+        MYFLT *kMidiData2;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int midiStatus;
+        int midiChannel;
+        int midiData1;
+        int midiData2;
+        int priorMidiStatus;
+        int priorMidiChannel;
+        int priorMidiData1;
+        int priorMidiData2;
+        int printMsgs;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        mutex = csound->Create_Mutex(0);
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        priorMidiStatus = -1;
-        priorMidiChannel = -1;
-        priorMidiData1 = -1;
-        priorMidiData2 = -1;
-        OPARMS oparms;
-        csound->GetOParms(csound, &oparms);
-        printMsgs = ((oparms.msglevel & 7) == 7 ? 1 : 0);
-        return OK;
-    }
-    int kontrol(CSOUND *csound)
-    {
-        LockGuard guard(csound, mutex);
-        midiStatus    = 0xF0 & (int) *kMidiStatus;
-        midiChannel = (int) *kMidiChannel;
-        midiData1 = (int) *kMidiData1;
-        midiData2 = (int) *kMidiData2;
-        int result =  -1;
+        int init(CSOUND *csound)
+        {
+                mutex = csound->Create_Mutex(0);
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                priorMidiStatus = -1;
+                priorMidiChannel = -1;
+                priorMidiData1 = -1;
+                priorMidiData2 = -1;
+                OPARMS oparms;
+                csound->GetOParms(csound, &oparms);
+                printMsgs = ((oparms.msglevel & 7) == 7 ? 1 : 0);
+                return OK;
+        }
+        int kontrol(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                midiStatus    = 0xF0 & (int) *kMidiStatus;
+                midiChannel = (int) *kMidiChannel;
+                midiData1 = (int) *kMidiData1;
+                midiData2 = (int) *kMidiData2;
+                int result =  -1;
 
-        if (midiData2 != priorMidiData2 ||
-                midiData1 != priorMidiData1 ||
-                midiChannel != priorMidiChannel ||
-                midiStatus != priorMidiStatus) {
-            switch (midiStatus) {
-            case (int) 0x80:
+                if (midiData2 != priorMidiData2 ||
+                        midiData1 != priorMidiData1 ||
+                        midiChannel != priorMidiChannel ||
+                        midiStatus != priorMidiStatus) {
+                        switch (midiStatus) {
+                        case (int) 0x80:
 noteOff:
-                result = fluid_synth_noteoff(fluidSynth,
-                                             midiChannel, midiData1);
-                if (printMsgs)
-                    csound->Message(csound,
-                                    Str("result: %d \n Note off: c:%3d k:%3d\n"),
-                                    result,
-                                    midiChannel,
-                                    midiData1);
-                break;
-            case (int) 0x90:
-                if (!midiData2) {
-                    goto noteOff;
+                                result = fluid_synth_noteoff(fluidSynth,
+                                                             midiChannel, midiData1);
+                                if (printMsgs)
+                                        csound->Message(csound,
+                                                        Str("result: %d \n Note off: c:%3d k:%3d\n"),
+                                                        result,
+                                                        midiChannel,
+                                                        midiData1);
+                                break;
+                        case (int) 0x90:
+                                if (!midiData2) {
+                                        goto noteOff;
+                                }
+                                result = fluid_synth_noteon(fluidSynth, midiChannel,
+                                                            midiData1, midiData2);
+                                if (printMsgs)
+                                        log(csound,
+                                            "result: %d \nNote on: c:%3d k:%3d v:%3d\n",result,
+                                            midiChannel, midiData1, midiData2);
+                                break;
+                        case (int) 0xA0:
+                                if (printMsgs)
+                                        log(csound, "Key pressure (not handled): "
+                                            "c:%3d k:%3d v:%3d\n",
+                                            midiChannel, midiData1, midiData2);
+                                break;
+                        case (int) 0xB0:
+                                result = fluid_synth_cc(fluidSynth, midiChannel,
+                                                        midiData1, midiData2);
+                                if (printMsgs)
+                                        log(csound,
+                                            "Result: %d Control change: c:%3d c:%3d v:%3d\n",result,
+                                            midiChannel, midiData1, midiData2);
+                                break;
+                        case (int) 0xC0:
+                                result = fluid_synth_program_change(fluidSynth,
+                                                                    midiChannel, midiData1);
+                                if (printMsgs)
+                                        log(csound,
+                                            "Result: %d Program change: c:%3d p:%3d\n",result,
+                                            midiChannel, midiData1);
+                                break;
+                        case (int) 0xD0:
+                                if (printMsgs)
+                                        log(csound, "After touch (not handled): c:%3d v:%3d\n",
+                                            midiChannel, midiData1);
+                                break;
+                        case (int) 0xE0: {
+                                        int pbVal = midiData1 + (midiData2 << 7);
+                                        fluid_synth_pitch_bend(fluidSynth, midiChannel, pbVal);
+                                        if (printMsgs)
+                                                log(csound,
+                                                    "Result: %d, Pitch bend:     c:%d b:%d\n", result,
+                                                    midiChannel, pbVal);
+                                }
+                                break;
+                        case (int) 0xF0:
+                                if (printMsgs)
+                                        log(csound, "System exclusive (not handled): "
+                                            "c:%3d v1:%3d v2:%3d\n",
+                                            midiChannel, midiData1, midiData2);
+                                break;
+                        }
+                        priorMidiStatus = midiStatus;
+                        priorMidiChannel = midiChannel;
+                        priorMidiData1 = midiData1;
+                        priorMidiData2 = midiData2;
                 }
-                result = fluid_synth_noteon(fluidSynth, midiChannel,
-                                            midiData1, midiData2);
-                if (printMsgs)
-                    log(csound,
-                        "result: %d \nNote on: c:%3d k:%3d v:%3d\n",result,
-                        midiChannel, midiData1, midiData2);
-                break;
-            case (int) 0xA0:
-                if (printMsgs)
-                    log(csound, "Key pressure (not handled): "
-                        "c:%3d k:%3d v:%3d\n",
-                        midiChannel, midiData1, midiData2);
-                break;
-            case (int) 0xB0:
-                result = fluid_synth_cc(fluidSynth, midiChannel,
-                                        midiData1, midiData2);
-                if (printMsgs)
-                    log(csound,
-                        "Result: %d Control change: c:%3d c:%3d v:%3d\n",result,
-                        midiChannel, midiData1, midiData2);
-                break;
-            case (int) 0xC0:
-                result = fluid_synth_program_change(fluidSynth,
-                                                    midiChannel, midiData1);
-                if (printMsgs)
-                    log(csound,
-                        "Result: %d Program change: c:%3d p:%3d\n",result,
-                        midiChannel, midiData1);
-                break;
-            case (int) 0xD0:
-                if (printMsgs)
-                    log(csound, "After touch (not handled): c:%3d v:%3d\n",
-                        midiChannel, midiData1);
-                break;
-            case (int) 0xE0: {
-                int pbVal = midiData1 + (midiData2 << 7);
-                fluid_synth_pitch_bend(fluidSynth, midiChannel, pbVal);
-                if (printMsgs)
-                    log(csound,
-                        "Result: %d, Pitch bend:     c:%d b:%d\n", result,
-                        midiChannel, pbVal);
-            }
-            break;
-            case (int) 0xF0:
-                if (printMsgs)
-                    log(csound, "System exclusive (not handled): "
-                        "c:%3d v1:%3d v2:%3d\n",
-                        midiChannel, midiData1, midiData2);
-                break;
-            }
-            priorMidiStatus = midiStatus;
-            priorMidiChannel = midiChannel;
-            priorMidiData1 = midiData1;
-            priorMidiData2 = midiData2;
+                return OK;
         }
-        return OK;
-    }
 };
 
 class FluidSetInterpMethod : public OpcodeBase<FluidSetInterpMethod>
 {
-    // Inputs.
-    MYFLT *iFluidSynth;
-    MYFLT *iChannelNumber;
-    MYFLT *iInterpMethod;
-    // State.
-    fluid_synth_t *fluidSynth;
-    int channel;
-    int interpolationMethod;
-    void *mutex;
+        // Inputs.
+        MYFLT *iFluidSynth;
+        MYFLT *iChannelNumber;
+        MYFLT *iInterpMethod;
+        // State.
+        fluid_synth_t *fluidSynth;
+        int channel;
+        int interpolationMethod;
+        void *mutex;
 public:
-    int init(CSOUND *csound)
-    {
-        int result = OK;
-        LockGuard guard(csound, mutex);
-        toa(iFluidSynth, fluidSynth);
-        channel = (int) *iChannelNumber;
-        interpolationMethod = (int) *iInterpMethod;
-        if (interpolationMethod != 0 && interpolationMethod != 1 &&
-                interpolationMethod != 4 && interpolationMethod != 7) {
-            csound->InitError(csound,
-                              Str("Illegal Interpolation Method: Must be "
-                                  "either 0, 1, 4, or 7.\n"));
-            result = NOTOK;
-        } else {
-            fluid_synth_set_interp_method(fluidSynth, channel,
-                                          interpolationMethod);
+        int init(CSOUND *csound)
+        {
+                LockGuard guard(csound, mutex);
+                toa(iFluidSynth, fluidSynth);
+                channel = (int) *iChannelNumber;
+                interpolationMethod = (int) *iInterpMethod;
+                if (UNLIKELY(interpolationMethod != 0 && interpolationMethod != 1 &&
+                             interpolationMethod != 4 && interpolationMethod != 7)) {
+                        return csound->InitError(csound,
+                                                 Str("Illegal Interpolation Method: Must be "
+                                                     "either 0, 1, 4, or 7.\n"));
+                } else {
+                        fluid_synth_set_interp_method(fluidSynth, channel,
+                                                      interpolationMethod);
+                }
+                return OK;
         }
-        return result;
-    }
 };
 
 static OENTRY localops[] = {
-    {
-        (char *)"fluidEngine",
-        sizeof(FluidEngine),
-        0,
-        1,
-        (char *)"i",
-        (char *)"ppoo",
-        (SUBR) &FluidEngine::init_,
-        (SUBR) 0,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidLoad",
-        sizeof(FluidLoad),
-        0,
-        1,
-        (char *)"i",
-        (char *)"Tio",
-        (SUBR) &FluidLoad::init_,
-        (SUBR) 0,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidProgramSelect",
-        sizeof(FluidProgramSelect),
-        0,
-        1,
-        (char *)"",
-        (char *)"iiiii",
-        (SUBR) &FluidProgramSelect::init_,
-        (SUBR) 0,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidCCi",
-        sizeof(FluidCCI),
-        0,
-        1,
-        (char *)"",
-        (char *)"iiii",
-        (SUBR) &FluidCCI::init_,
-        (SUBR) 0,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidCCk",
-        sizeof(FluidCCK),
-        0,
-        3,
-        (char *)"",
-        (char *)"ikkk",
-        (SUBR) &FluidCCK::init_,
-        (SUBR) &FluidCCK::kontrol_,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidNote",
-        sizeof(FluidNote),
-        0,
-        3,
-        (char *)"",
-        (char *)"iiii",
-        (SUBR) &FluidNote::init_,
-        (SUBR) &FluidNote::kontrol_,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidOut",
-        sizeof(FluidOut),
-        0,
-        5,
-        (char *)"aa",
-        (char *)"i",
-        (SUBR) &FluidOut::init_,
-        (SUBR) 0,
-        (SUBR) &FluidOut::audio_
-    },
-    {
-        (char *)"fluidAllOut",
-        sizeof(FluidAllOut),
-        0,
-        5,
-        (char *)"aa",
-        (char *)"",
-        (SUBR) &FluidAllOut::init_,
-        (SUBR) 0,
-        (SUBR) &FluidAllOut::audio_
-    },
-    {
-        (char *)"fluidControl",
-        sizeof(FluidControl),
-        0,
-        3,
-        (char *)"",
-        (char *)"ikkkk",
-        (SUBR) FluidControl::init_,
-        (SUBR) FluidControl::kontrol_,
-        (SUBR) 0
-    },
-    {
-        (char *)"fluidSetInterpMethod",
-        sizeof(FluidSetInterpMethod),
-        0,
-        1,
-        (char *)"",
-        (char *)"iii",
-        (SUBR) &FluidSetInterpMethod::init_,
-        (SUBR) 0,
-        (SUBR) 0
-    },
-    {
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        (SUBR) 0,
-        (SUBR) 0,
-        (SUBR) 0
-    }
+        {
+                (char *)"fluidEngine",
+                sizeof(FluidEngine),
+                0,
+                1,
+                (char *)"i",
+                (char *)"ppoo",
+                (SUBR) &FluidEngine::init_,
+                (SUBR) 0,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidLoad",
+                sizeof(FluidLoad),
+                0,
+                1,
+                (char *)"i",
+                (char *)"Tio",
+                (SUBR) &FluidLoad::init_,
+                (SUBR) 0,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidProgramSelect",
+                sizeof(FluidProgramSelect),
+                0,
+                1,
+                (char *)"",
+                (char *)"iiiii",
+                (SUBR) &FluidProgramSelect::init_,
+                (SUBR) 0,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidCCi",
+                sizeof(FluidCCI),
+                0,
+                1,
+                (char *)"",
+                (char *)"iiii",
+                (SUBR) &FluidCCI::init_,
+                (SUBR) 0,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidCCk",
+                sizeof(FluidCCK),
+                0,
+                3,
+                (char *)"",
+                (char *)"ikkk",
+                (SUBR) &FluidCCK::init_,
+                (SUBR) &FluidCCK::kontrol_,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidNote",
+                sizeof(FluidNote),
+                0,
+                3,
+                (char *)"",
+                (char *)"iiii",
+                (SUBR) &FluidNote::init_,
+                (SUBR) &FluidNote::kontrol_,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidOut",
+                sizeof(FluidOut),
+                0,
+                5,
+                (char *)"aa",
+                (char *)"i",
+                (SUBR) &FluidOut::init_,
+                (SUBR) 0,
+                (SUBR) &FluidOut::audio_
+        },
+        {
+                (char *)"fluidAllOut",
+                sizeof(FluidAllOut),
+                0,
+                5,
+                (char *)"aa",
+                (char *)"",
+                (SUBR) &FluidAllOut::init_,
+                (SUBR) 0,
+                (SUBR) &FluidAllOut::audio_
+        },
+        {
+                (char *)"fluidControl",
+                sizeof(FluidControl),
+                0,
+                3,
+                (char *)"",
+                (char *)"ikkkk",
+                (SUBR) FluidControl::init_,
+                (SUBR) FluidControl::kontrol_,
+                (SUBR) 0
+        },
+        {
+                (char *)"fluidSetInterpMethod",
+                sizeof(FluidSetInterpMethod),
+                0,
+                1,
+                (char *)"",
+                (char *)"iii",
+                (SUBR) &FluidSetInterpMethod::init_,
+                (SUBR) 0,
+                (SUBR) 0
+        },
+        {
+                0,
+                0,
+                0,
+                0,
+                0,
+                0,
+                (SUBR) 0,
+                (SUBR) 0,
+                (SUBR) 0
+        }
 };
 
 PUBLIC int csoundModuleCreate(CSOUND *csound)
 {
-    (void) csound;
-    fluid_synths = new std::vector<fluid_synth_t *>();
-    //printf("csoundModuleCreate: csound: %p fluid_synths: %p\n", csound, fluid_synths);
-    fluid_synths_mutex = csound->Create_Mutex(0);
-    return 0;
+        std::vector<fluid_synth_t *> *fluid_synths = new std::vector<fluid_synth_t *>();
+        int result = 0;
+        result = csound::CreateGlobalPointer(csound, "fluid_synths", fluid_synths);
+        void *fluid_synths_mutex = csound->Create_Mutex(0);
+        result = csound::CreateGlobalPointer(csound, "fluid_synths_mutex", fluid_synths_mutex);
+        return 0;
 }
 
 PUBLIC int csoundModuleInit(CSOUND *csound)
 {
-    //printf("csoundModuleInit: %p \n", csound);
-    OENTRY  *ep;
-    int     err = 0;
+        //printf("csoundModuleInit: %p \n", csound);
+        OENTRY  *ep;
+        int     err = 0;
 
-    for (ep = (OENTRY *) &(localops[0]);
-            ep->opname != NULL;
-            ep++) {
-        err |= csound->AppendOpcode(csound,
-                                    ep->opname,
-                                    ep->dsblksiz,
-                                    ep->flags,
-                                    ep->thread,
-                                    ep->outypes,
-                                    ep->intypes,
-                                    (int (*)(CSOUND *, void *)) ep->iopadr,
-                                    (int (*)(CSOUND *, void *)) ep->kopadr,
-                                    (int (*)(CSOUND *, void *)) ep->aopadr);
-    }
-    return err;
+        for (ep = (OENTRY *) &(localops[0]);
+                ep->opname != NULL;
+                ep++) {
+                err |= csound->AppendOpcode(csound,
+                                            ep->opname,
+                                            ep->dsblksiz,
+                                            ep->flags,
+                                            ep->thread,
+                                            ep->outypes,
+                                            ep->intypes,
+                                            (int (*)(CSOUND *, void *)) ep->iopadr,
+                                            (int (*)(CSOUND *, void *)) ep->kopadr,
+                                            (int (*)(CSOUND *, void *)) ep->aopadr);
+        }
+        return err;
 }
 
 /**
@@ -787,30 +791,33 @@ PUBLIC int csoundModuleInit(CSOUND *csound)
  */
 PUBLIC int csoundModuleDestroy(CSOUND *csound)
 {
-    //printf("csoundModuleDestroy: %p \n", csound);
-  if(fluid_synths_mutex)
-     csound->LockMutex(fluid_synths_mutex);
-  if(fluid_synths) {
-    for (size_t i = 0, n = fluid_synths->size(); i < n; i++) {
-        fluid_synth_t *fluidSynth = (*fluid_synths)[i];
-        //printf("deleting engine: %p \n", fluidSynth);
-        fluid_settings_t *fluidSettings = fluid_synth_get_settings(fluidSynth);
-        delete_fluid_synth(fluidSynth);
-        delete_fluid_settings(fluidSettings);
-    }
-    fluid_synths->clear();
-    delete fluid_synths;
-    fluid_synths = 0;
-  }
-  if(fluid_synths_mutex) {
-    csound->UnlockMutex(fluid_synths_mutex);
-    csound->DestroyMutex(fluid_synths_mutex);
-  }
-    fluid_synths_mutex = 0;
-    return 0;
+//printf("csoundModuleDestroy: %p \n", csound);
+        void *fluid_synths_mutex = 0;
+        csound::QueryGlobalPointer(csound, "fluid_synths_mutex", fluid_synths_mutex);
+        if (fluid_synths_mutex) {
+                std::vector<fluid_synth_t *> *fluid_synths = 0;
+                csound::QueryGlobalPointer(csound, "fluid_synths", fluid_synths);
+                csound->LockMutex(fluid_synths_mutex);
+                if (fluid_synths) {
+                        for (size_t i = 0, n = fluid_synths->size(); i < n; i++) {
+                                fluid_synth_t *fluidSynth = (*fluid_synths)[i];
+//printf("deleting engine: %p \n", fluidSynth);
+                                fluid_settings_t *fluidSettings = fluid_synth_get_settings(fluidSynth);
+                                delete_fluid_synth(fluidSynth);
+                                delete_fluid_settings(fluidSettings);
+                        }
+                        fluid_synths->clear();
+                        delete fluid_synths;
+                        fluid_synths = 0;
+                }
+                csound->UnlockMutex(fluid_synths_mutex);
+                csound->DestroyMutex(fluid_synths_mutex);
+                fluid_synths_mutex = 0;
+        }
+        return 0;
 }
 
 PUBLIC int csoundModuleInfo(void)
 {
-    return ((CS_APIVERSION << 16) + (CS_APISUBVER << 8) + (int) sizeof(MYFLT));
+        return ((CS_APIVERSION << 16) + (CS_APISUBVER << 8) + (int) sizeof(MYFLT));
 }
diff --git a/Opcodes/fm4op.c b/Opcodes/fm4op.c
index 7dbaf52..cc99bbb 100644
--- a/Opcodes/fm4op.c
+++ b/Opcodes/fm4op.c
@@ -33,7 +33,7 @@
 /*  should worry about this (making money) worry away.   */
 /*                                                       */
 /*********************************************************/
-// #include "csdl.h"
+
 #include "csoundCore.h"
 #include "fm4op.h"
 
@@ -75,28 +75,29 @@ MYFLT TwoZero_tick(TwoZero *p, MYFLT sample)
 
 MYFLT Wave_tick(MYFLT *vTime, int len, MYFLT *data, MYFLT rate, MYFLT phase)
 {                                /* Tick on vibrato table */
-    int32    temp;
-    MYFLT   temp_time, alpha;
+    int32   temp;
+    MYFLT   alpha;
     MYFLT   lastOutput;
+    MYFLT   vvTime = *vTime;
 
-    *vTime += rate;            /*  Update current time    */
-    while (*vTime >= len)      /*  Check for end of sound */
-      *vTime -= len;           /*  loop back to beginning */
-    while (*vTime < FL(0.0))       /*  Check for end of sound */
-      *vTime += len;           /*  loop back to beginning */
+    vvTime += rate;            /*  Update current time    */
+    while (vvTime >= len)      /*  Check for end of sound */
+      vvTime -= len;           /*  loop back to beginning */
+    while (vvTime < FL(0.0))       /*  Check for end of sound */
+      vvTime += len;           /*  loop back to beginning */
 
-    temp_time = *vTime;
+    *vTime = vvTime;
 
     if (phase != FL(0.0)) {
-      temp_time += phase;      /*  Add phase offset       */
-      while (temp_time >= len) /*  Check for end of sound */
-        temp_time -= len;      /*  loop back to beginning */
-      while (temp_time < FL(0.0))  /*  Check for end of sound */
-        temp_time += len;      /*  loop back to beginning */
+      vvTime += phase;      /*  Add phase offset       */
+      while (vvTime >= len) /*  Check for end of sound */
+        vvTime -= len;      /*  loop back to beginning */
+      while (vvTime < FL(0.0))  /*  Check for end of sound */
+        vvTime += len;      /*  loop back to beginning */
     }
-    temp = (int32) temp_time;  /*  Integer part of time address    */
+    temp = (int32) vvTime;  /*  Integer part of time address    */
     /*  fractional part of time address */
-    alpha = temp_time - (MYFLT)temp;
+    alpha = vvTime - (MYFLT)temp;
     lastOutput = data[temp];   /* Do linear interpolation */
     /* same as alpha*data[temp+1] + (1-alpha)data[temp] */
     lastOutput += (alpha * (data[temp+1] - lastOutput));
diff --git a/Opcodes/follow.c b/Opcodes/follow.c
index 0a051ee..5e1fbec 100644
--- a/Opcodes/follow.c
+++ b/Opcodes/follow.c
@@ -60,7 +60,7 @@ static int follow(CSOUND *csound, FOL *p)
     for (n=offset; n<nsmps; n++) {
       MYFLT sig = FABS(in[n]);
       if (sig > max) max = sig;
-      if (--count == 0L) {
+      if (UNLIKELY(--count == 0L)) {
         p->wgh = max;
         max = FL(0.0);
         count = p->length;
diff --git a/Opcodes/fout.c b/Opcodes/fout.c
index 24ef078..87b7d35 100644
--- a/Opcodes/fout.c
+++ b/Opcodes/fout.c
@@ -61,8 +61,8 @@ static CS_NOINLINE int fout_deinit_callback(CSOUND *csound, void *p_)
                                       csound->GetFileName(pp->fd));
             csound->FileClose(csound, pp->fd);
             pp->fd = NULL;
-            }
           }
+        }
       }
     }
 
@@ -93,8 +93,8 @@ static CS_NOINLINE int fout_open_file(CSOUND *csound, FOUT_FILE *p, void *fp,
     }
     /* get file name, */
     if (isString) name = cs_strdup(csound, ((STRINGDAT *)iFile)->data);
-    else if (csound->ISSTRCOD(*iFile)) name = cs_strdup(csound,
-                                               get_arg_string(csound, *iFile));
+    else if (csound->ISSTRCOD(*iFile))
+      name = cs_strdup(csound, get_arg_string(csound, *iFile));
     /* else csound->strarg2name(csound, NULL, iFile, "fout.", 0);*/
     else {
       /* or handle to previously opened file */
@@ -168,7 +168,7 @@ static CS_NOINLINE int fout_open_file(CSOUND *csound, FOUT_FILE *p, void *fp,
       if (UNLIKELY(fd == NULL)) {
         csound->InitError(csound, Str("error opening file '%s'"), name);
         csound->Free(csound, name);
-        return -1;
+        return NOTOK;
       }
       /* setvbuf(f, (char *) NULL, _IOLBF, 0); */ /* Ensure line buffering */
       pp->file_opened[idx].raw = f;
@@ -189,25 +189,27 @@ static CS_NOINLINE int fout_open_file(CSOUND *csound, FOUT_FILE *p, void *fp,
           p->async = 0;
         }
         else {
-        p->fd = fd = csound->FileOpenAsync(csound, &sf, fileType, name, fileParams,
-                                           "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO,
-                                           p->bufsize,  0);
-        p->async = 1;
+          p->fd = fd = csound->FileOpenAsync(csound, &sf, fileType,
+                                             name, fileParams,
+                                             "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO,
+                                             p->bufsize,  0);
+          p->async = 1;
         }
         p->nchnls = ((SF_INFO*) fileParams)->channels;
       }
       else {
-         if (csound->realtime_audio_flag == 0 || forceSync == 1) {
-        fd = csound->FileOpen2(csound, &sf, fileType, name, fileParams,
-                               "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO, 0);
-        p->async = 0;
-
-         } else {
-        p->fd = fd = csound->FileOpenAsync(csound, &sf, fileType, name, fileParams,
-                                           "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO,
-                                           p->bufsize,  0);
-        p->async = 1;
-         }
+        if (csound->realtime_audio_flag == 0 || forceSync == 1) {
+          fd = csound->FileOpen2(csound, &sf, fileType, name, fileParams,
+                                 "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO, 0);
+          p->async = 0;
+
+        } else {
+          p->fd = fd = csound->FileOpenAsync(csound, &sf, fileType,
+                                             name, fileParams,
+                                             "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO,
+                                             p->bufsize,  0);
+          p->async = 1;
+        }
         p->nchnls = ((SF_INFO*) fileParams)->channels;
         do_scale = ((SF_INFO*) fileParams)->format;
       }
@@ -215,7 +217,7 @@ static CS_NOINLINE int fout_open_file(CSOUND *csound, FOUT_FILE *p, void *fp,
       if (UNLIKELY(fd == NULL)) {
         csound->InitError(csound, Str("error opening sound file '%s'"), name);
         csound->Free(csound, name);
-        return -1;
+        return NOTOK;
       }
       if (!do_scale) {
 #ifdef USE_DOUBLE
@@ -233,7 +235,7 @@ static CS_NOINLINE int fout_open_file(CSOUND *csound, FOUT_FILE *p, void *fp,
         pp->buf_size = buf_reqd;
         pp->buf = (MYFLT*) csound->ReAlloc(csound, pp->buf, sizeof(MYFLT)
                                                             * buf_reqd);
-                                                            }
+      }
       */ /* VL - now using per-instance buffer */
       pp->file_opened[idx].file = sf;
       pp->file_opened[idx].fd = fd;
@@ -302,10 +304,10 @@ static int outfile(CSOUND *csound, OUTFILE *p)
         //sf_write_double(p->f.sf, buf, p->buf_pos);
         //#endif
         if (p->f.async==1)
-        csound->WriteAsync(csound, p->f.fd, buf, p->buf_pos);
+          csound->WriteAsync(csound, p->f.fd, buf, p->buf_pos);
         else sf_write_MYFLT(p->f.sf, buf, p->buf_pos);
         p->buf_pos = 0;
-       }
+      }
 
     }
     return OK;
@@ -354,7 +356,7 @@ static int outfile_array(CSOUND *csound, OUTFILEA *p)
     return OK;
 }
 
-static const int fout_format_table[50] = {
+static const int fout_format_table[51] = {
     /* 0 - 9 */
     (SF_FORMAT_FLOAT | SF_FORMAT_RAW), (SF_FORMAT_PCM_16 | SF_FORMAT_RAW),
     SF_FORMAT_PCM_16, SF_FORMAT_ULAW, SF_FORMAT_PCM_16, SF_FORMAT_PCM_32,
@@ -382,7 +384,9 @@ static const int fout_format_table[50] = {
     (SF_FORMAT_ALAW | SF_FORMAT_IRCAM), (SF_FORMAT_ULAW | SF_FORMAT_IRCAM),
     (SF_FORMAT_PCM_16 | SF_FORMAT_IRCAM), (SF_FORMAT_PCM_32 | SF_FORMAT_IRCAM),
     (SF_FORMAT_FLOAT | SF_FORMAT_IRCAM), (SF_FORMAT_PCM_U8 | SF_FORMAT_IRCAM),
-    (SF_FORMAT_PCM_24 | SF_FORMAT_IRCAM), (SF_FORMAT_DOUBLE | SF_FORMAT_IRCAM)
+    (SF_FORMAT_PCM_24 | SF_FORMAT_IRCAM), (SF_FORMAT_DOUBLE | SF_FORMAT_IRCAM),
+    /* 50 */
+    (SF_FORMAT_OGG | SF_FORMAT_VORBIS)
 };
 
 static int fout_flush_callback(CSOUND *csound, void *p_)
@@ -429,10 +433,13 @@ static int outfile_set_S(CSOUND *csound, OUTFILE *p/*, int istring*/)
 
     memset(&sfinfo, 0, sizeof(SF_INFO));
     format_ = (int) MYFLT2LRND(*p->iflag);
-    if ((unsigned int) format_ >= (unsigned int) 50)
+    if (format_ >= 51)
       sfinfo.format = SF_FORMAT_PCM_16 | SF_FORMAT_RAW;
-    else
-      sfinfo.format = fout_format_table[format_];
+    else if (format_ < 0) {
+      sfinfo.format = FORMAT2SF(csound->oparms->outformat);
+      sfinfo.format |= TYPE2SF(csound->oparms->filetyp);
+    }
+    else sfinfo.format = fout_format_table[format_];
     if (!SF2FORMAT(sfinfo.format))
       sfinfo.format |= FORMAT2SF(csound->oparms->outformat);
     if (!SF2TYPE(sfinfo.format))
@@ -447,12 +454,12 @@ static int outfile_set_S(CSOUND *csound, OUTFILE *p/*, int istring*/)
       p->guard_pos = 512* p->nargs;
 
     if (CS_KSMPS >= 512)
-        buf_reqd = CS_KSMPS *  p->nargs;
-      else
-        buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS *  p->nargs;
-     if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
-        csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
-      }
+      buf_reqd = CS_KSMPS *  p->nargs;
+    else
+      buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS *  p->nargs;
+    if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
+      csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
+    }
     p->f.bufsize =  p->buf.size;
     sfinfo.channels = p->nargs;
     n = fout_open_file(csound, &(p->f), NULL, CSFILE_SND_W,
@@ -485,8 +492,12 @@ static int outfile_set_A(CSOUND *csound, OUTFILEA *p)
 
     memset(&sfinfo, 0, sizeof(SF_INFO));
     format_ = (int) MYFLT2LRND(*p->iflag);
-    if ((unsigned int) format_ >= (unsigned int) 50)
+     if (format_ >=  51)
       sfinfo.format = SF_FORMAT_PCM_16 | SF_FORMAT_RAW;
+    else if (format_ < 0) {
+      sfinfo.format = FORMAT2SF(csound->oparms->outformat);
+      sfinfo.format |= TYPE2SF(csound->oparms->filetyp);
+    }
     else
       sfinfo.format = fout_format_table[format_];
     if (!SF2FORMAT(sfinfo.format))
@@ -539,9 +550,9 @@ static int koutfile(CSOUND *csound, KOUTFILE *p)
         //#else
         //sf_write_double(p->f.sf, buf, p->buf_pos);
         //#endif
-        if (p->f.async==1)
+      if (p->f.async==1)
         csound->WriteAsync(csound, p->f.fd, buf, p->buf_pos);
-        else sf_write_MYFLT(p->f.sf, buf, p->buf_pos);
+      else sf_write_MYFLT(p->f.sf, buf, p->buf_pos);
       p->buf_pos = 0;
     }
     return OK;
@@ -570,16 +581,15 @@ static int koutfile_set_(CSOUND *csound, KOUTFILE *p, int istring)
       sfinfo.format = fout_format_table[format_] | SF_FORMAT_RAW;
 
     if (CS_KSMPS >= 512)
-        buf_reqd = CS_KSMPS *  p->nargs;
-      else
-        buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS
-          *  p->nargs;
-     if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
-        csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
-      }
-     p->f.bufsize = p->buf.size;
-     n = fout_open_file(csound, &(p->f), NULL, CSFILE_SND_W,
-                        p->fname, istring, &sfinfo, 0);
+      buf_reqd = CS_KSMPS *  p->nargs;
+    else
+      buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS * p->nargs;
+    if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
+      csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
+    }
+    p->f.bufsize = p->buf.size;
+    n = fout_open_file(csound, &(p->f), NULL, CSFILE_SND_W,
+                       p->fname, istring, &sfinfo, 0);
     if (UNLIKELY(n < 0))
       return NOTOK;
 
@@ -630,11 +640,11 @@ static int fiopen_(CSOUND *csound, FIOPEN *p, int istring)
 }
 
 static int fiopen(CSOUND *csound, FIOPEN *p){
-  return fiopen_(csound, p, 0);
+    return fiopen_(csound, p, 0);
 }
 
 static int fiopen_S(CSOUND *csound, FIOPEN *p){
-  return fiopen_(csound, p, 1);
+    return fiopen_(csound, p, 1);
 }
 
 static int ficlose_opcode_(CSOUND *csound, FICLOSE *p, int istring)
@@ -642,11 +652,11 @@ static int ficlose_opcode_(CSOUND *csound, FICLOSE *p, int istring)
     STDOPCOD_GLOBALS  *pp = (STDOPCOD_GLOBALS*) csound->stdOp_Env;
     int               idx = -1;
 
-    if (istring || csound->ISSTRCOD(*(p->iFile))){
-       char    *fname = NULL;
+    if (istring || csound->ISSTRCOD(*(p->iFile))) {
+      char    *fname = NULL;
       if (istring) fname = cs_strdup(csound, ((STRINGDAT *)p->iFile)->data);
       else if (csound->ISSTRCOD(*(p->iFile)))
-       fname = cs_strdup(csound, get_arg_string(csound, *p->iFile));
+        fname = cs_strdup(csound, get_arg_string(csound, *p->iFile));
       if (UNLIKELY(fname == NULL || fname[0] == (char) 0)) {
         if (fname != NULL) csound->Free(csound, fname);
         return csound->InitError(csound, Str("invalid file name"));
@@ -696,11 +706,11 @@ static int ficlose_opcode_(CSOUND *csound, FICLOSE *p, int istring)
 }
 
 static int ficlose_opcode(CSOUND *csound, FICLOSE *p){
-  return ficlose_opcode_(csound,p,0);
+    return ficlose_opcode_(csound,p,0);
 }
 
 static int ficlose_opcode_S(CSOUND *csound, FICLOSE *p){
-  return ficlose_opcode_(csound,p,1);
+    return ficlose_opcode_(csound,p,1);
 }
 
 /* syntax:
@@ -858,13 +868,12 @@ static int infile_set_(CSOUND *csound, INFILE *p, int istring)
       p->frames = (int)(512 / CS_KSMPS) * CS_KSMPS;
 
     if (CS_KSMPS >= 512)
-        buf_reqd = CS_KSMPS *   sfinfo.channels;
-      else
-        buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS
-          *  p->nargs;
-     if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
-        csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
-      }
+      buf_reqd = CS_KSMPS * sfinfo.channels;
+    else
+      buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS * p->nargs;
+    if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
+      csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
+    }
     p->f.bufsize =  p->buf.size;
     n = fout_open_file(csound, &(p->f), NULL, CSFILE_SND_R,
                        p->fname, istring, &sfinfo, 0);
@@ -888,11 +897,11 @@ static int infile_set_(CSOUND *csound, INFILE *p, int istring)
 }
 
 static int infile_set(CSOUND *csound, INFILE *p){
-  return infile_set_(csound,p,0);
+    return infile_set_(csound,p,0);
 }
 
 static int infile_set_S(CSOUND *csound, INFILE *p){
-  return infile_set_(csound,p,1);
+    return infile_set_(csound,p,1);
 }
 
 static inline void tabensure(CSOUND *csound, ARRAYDAT *p, int size)
@@ -966,24 +975,24 @@ static int infile_act(CSOUND *csound, INFILE *p)
     ksmps = nsmps;
     if (UNLIKELY(offset))
       for (i = 0; i < nargs; i++)
-            memset(p->argums[i], '\0', offset*sizeof(MYFLT));
+        memset(p->argums[i], '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
       nsmps -= early;
       for (i = 0; i < nargs; i++)
-            memset(&p->argums[i][nsmps], '\0', early*sizeof(MYFLT));
+        memset(&p->argums[i][nsmps], '\0', early*sizeof(MYFLT));
     }
     if (p->flag) {
       if (p->buf_pos >= p->guard_pos) {
-        if (UNLIKELY(p->f.async == 0)){
-            sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
-            p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
-                                                 p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          } else {
-            p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
-                                        p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          }
+        if (UNLIKELY(p->f.async == 0)) {
+          sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
+          p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
+                                               p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        } else {
+          p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
+                                      p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        }
         p->currpos += p->frames;
         p->buf_pos = 0;
       }
@@ -1029,16 +1038,16 @@ static int infile_arr(CSOUND *csound, INFILEA *p)
     }
     if (p->flag) {
       if (p->buf_pos >= p->guard_pos) {
-        if (UNLIKELY(p->f.async == 0)){
-            sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
-            p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
-                                                 p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          } else {
-            p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
-                                        p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          }
+        if (UNLIKELY(p->f.async == 0)) {
+          sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
+          p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
+                                               p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        } else {
+          p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
+                                      p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        }
         p->currpos += p->frames;
         p->buf_pos = 0;
       }
@@ -1088,14 +1097,13 @@ static int kinfile_set_(CSOUND *csound, KINFILE *p, int istring)
     else
       p->frames = (int)(512 / CS_KSMPS) * CS_KSMPS;
 
-   if (CS_KSMPS >= 512)
-        buf_reqd = CS_KSMPS *   sfinfo.channels;
-      else
-        buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS
-          *  p->nargs;
-     if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
-        csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
-      }
+    if (CS_KSMPS >= 512)
+      buf_reqd = CS_KSMPS *   sfinfo.channels;
+    else
+      buf_reqd = (1 + (int)(512 / CS_KSMPS)) * CS_KSMPS * p->nargs;
+    if (p->buf.auxp == NULL || p->buf.size < buf_reqd*sizeof(MYFLT)) {
+      csound->AuxAlloc(csound, sizeof(MYFLT)*buf_reqd, &p->buf);
+    }
     p->f.bufsize =  p->buf.size;
     n = fout_open_file(csound, &(p->f), NULL, CSFILE_SND_R,
                        p->fname, istring, &sfinfo, 0);
@@ -1117,11 +1125,11 @@ static int kinfile_set_(CSOUND *csound, KINFILE *p, int istring)
 }
 
 static int kinfile_set(CSOUND *csound, KINFILE *p){
-  return kinfile_set_(csound,p,0);
+    return kinfile_set_(csound,p,0);
 }
 
 static int kinfile_set_S(CSOUND *csound, KINFILE *p){
-  return kinfile_set_(csound,p,1);
+    return kinfile_set_(csound,p,1);
 }
 
 
@@ -1133,16 +1141,16 @@ static int kinfile(CSOUND *csound, KINFILE *p)
 
     if (p->flag) {
       if (p->buf_pos >= p->guard_pos) {
-        if (UNLIKELY(p->f.async == 0)){
-            sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
-            p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
-                                                 p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          } else {
-            p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
-                                        p->frames*p->f.nchnls);
-            p->remain /= p->f.nchnls;
-          }
+        if (UNLIKELY(p->f.async == 0)) {
+          sf_seek(p->f.sf, p->currpos*p->f.nchnls, SEEK_SET);
+          p->remain = (uint32_t) sf_read_MYFLT(p->f.sf, (MYFLT*) buf,
+                                               p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        } else {
+          p->remain = csoundReadAsync(csound,p->f.fd,(MYFLT *)buf,
+                                      p->frames*p->f.nchnls);
+          p->remain /= p->f.nchnls;
+        }
         p->currpos += p->frames;
         p->buf_pos = 0;
       }
@@ -1240,11 +1248,11 @@ static int i_infile_(CSOUND *csound, I_INFILE *p, int istring)
 }
 
 static int i_infile(CSOUND *csound, I_INFILE *p){
-  return i_infile_(csound,p,0);
+    return i_infile_(csound,p,0);
 }
 
 static int i_infile_S(CSOUND *csound, I_INFILE *p){
-  return i_infile_(csound,p,1);
+    return i_infile_(csound,p,1);
 }
 
 
@@ -1395,11 +1403,11 @@ static int fprintf_set_(CSOUND *csound, FPRINTF *p, int istring)
 }
 
 static int fprintf_set(CSOUND *csound, FPRINTF *p){
-  return fprintf_set_(csound,p,0);
+    return fprintf_set_(csound,p,0);
 }
 
 static int fprintf_set_S(CSOUND *csound, FPRINTF *p){
-  return fprintf_set_(csound,p,1);
+    return fprintf_set_(csound,p,1);
 }
 
 
diff --git a/Opcodes/framebuffer/Framebuffer.c b/Opcodes/framebuffer/Framebuffer.c
index 0b79a74..76ba96f 100644
--- a/Opcodes/framebuffer/Framebuffer.c
+++ b/Opcodes/framebuffer/Framebuffer.c
@@ -131,7 +131,7 @@ int Framebuffer_process(CSOUND *csound, Framebuffer *self)
 
 void Framebuffer_checkArgumentSanity(CSOUND *csound, Framebuffer *self)
 {
-    if ((uint32_t)self->elementCount < csound->GetKsmps(csound)) {
+    if (UNLIKELY((uint32_t)self->elementCount < csound->GetKsmps(csound))) {
 
       csound->Die(csound, Str("framebuffer: Error, specified element "
                               "count less than ksmps value, Exiting"));
@@ -139,15 +139,15 @@ void Framebuffer_checkArgumentSanity(CSOUND *csound, Framebuffer *self)
 
     if (self->inputType == ARATE_VAR) {
 
-        if (self->outputType != KRATE_ARRAY) {
+      if (UNLIKELY(self->outputType != KRATE_ARRAY)) {
 
           csound->Die(csound, Str("framebuffer: Error, only k-rate arrays "
                                   "allowed for a-rate var inputs, Exiting"));
         }
     }
-    else if (self->inputType == KRATE_ARRAY) {
+    else if (LIKELY(self->inputType == KRATE_ARRAY)) {
 
-        if (self->outputType != ARATE_VAR) {
+      if (UNLIKELY(self->outputType != ARATE_VAR)) {
 
           csound->Die(csound, Str("framebuffer: Error, only a-rate vars "
                                   "allowed for k-rate array inputs, Exiting"));
@@ -155,13 +155,13 @@ void Framebuffer_checkArgumentSanity(CSOUND *csound, Framebuffer *self)
 
         ARRAYDAT *array = (ARRAYDAT *) self->inputArgument;
 
-        if (array->dimensions != 1) {
+        if (UNLIKELY(array->dimensions != 1)) {
 
           csound->Die(csound, Str("framebuffer: Error, k-rate array input "
                                   "must be one dimensional, Exiting"));
         }
 
-        if (array->sizes[0] > self->elementCount) {
+        if (UNLIKELY(array->sizes[0] > self->elementCount)) {
 
           csound->Die(csound, Str("framebuffer: Error, k-rate array input "
                                   "element count must be less than \nor equal "
diff --git a/Opcodes/framebuffer/OLABuffer.c b/Opcodes/framebuffer/OLABuffer.c
index 46098c9..ab36bff 100644
--- a/Opcodes/framebuffer/OLABuffer.c
+++ b/Opcodes/framebuffer/OLABuffer.c
@@ -143,7 +143,7 @@ void OLABuffer_checkArgumentSanity(CSOUND *csound, OLABuffer *self)
 {
     MYFLT overlapCount = *self->overlapArgument;
 
-    if (floor(overlapCount) != overlapCount) {
+    if (UNLIKELY(floor(overlapCount) != overlapCount)) {
 
       csound->Die(csound,
                   Str("olabuffer: Error, overlap factor must be an integer"));
@@ -151,7 +151,7 @@ void OLABuffer_checkArgumentSanity(CSOUND *csound, OLABuffer *self)
 
     ARRAYDAT *array = (ARRAYDAT *) self->inputArgument;
 
-    if (array->dimensions != 1) {
+    if (UNLIKELY(array->dimensions != 1)) {
 
       csound->Die(csound,
                   Str("olabuffer: Error, k-rate array must be one dimensional"));
@@ -159,20 +159,21 @@ void OLABuffer_checkArgumentSanity(CSOUND *csound, OLABuffer *self)
 
     int frameSampleCount = array->sizes[0];
 
-    if (frameSampleCount <= (int)overlapCount) {
+    if (UNLIKELY(frameSampleCount <= (int)overlapCount)) {
 
       csound->Die(csound,
                   Str("olabuffer: Error, k-rate array size must be "
                       "larger than ovelap factor"));
     }
 
-    if (frameSampleCount % (int)overlapCount != 0) {
+    if (UNLIKELY(frameSampleCount % (int)overlapCount != 0)) {
 
       csound->Die(csound, Str("olabuffer: Error, overlap factor must be "
                               "an integer multiple of k-rate array size"));
     }
 
-    if (frameSampleCount / (int)overlapCount < (int) csound->GetKsmps(csound)) {
+    if (UNLIKELY(frameSampleCount / (int)overlapCount <
+                 (int) csound->GetKsmps(csound))) {
 
       csound->Die(csound, Str("olabuffer: Error, k-rate array size divided "
                               "by overlap factor must be larger than or equal "
diff --git a/Opcodes/freeverb.c b/Opcodes/freeverb.c
index d91b3ac..27e43b5 100644
--- a/Opcodes/freeverb.c
+++ b/Opcodes/freeverb.c
@@ -154,6 +154,7 @@ static int freeverb_init(CSOUND *csound, FREEVERB *p)
       k = calc_nsamples(p, allpass_delays[i >> 1][i & 1]);
       allpassp->nSamples = k;
       allpassp->bufPos = 0;
+      //memset(allpassp->buf, '\0', k*sizeof(MYFLT));
       for (j = 0; j < k; j++)
         allpassp->buf[j] = FL(0.0);
       nbytes += allpass_nbytes(p, allpass_delays[i >> 1][i & 1]);
diff --git a/Opcodes/ftsamplebank.cpp b/Opcodes/ftsamplebank.cpp
index 16b4e0e..ca8e3b9 100644
--- a/Opcodes/ftsamplebank.cpp
+++ b/Opcodes/ftsamplebank.cpp
@@ -160,25 +160,26 @@ int loadSamplesToTables(CSOUND *csound, int index, char* directory,
         while((ent = readdir(dir)) != NULL) {
           std::ostringstream fullFileName;
           //only use supported file types
-          for(int i=0;i<fileExtensions.size();i++)
+          for(int i=0;(size_t)i<fileExtensions.size();i++)
           {
             std::string fname = ent->d_name;
-            if (fname.find(fileExtensions[i], (fname.length() - fileExtensions[i].length())) != std::string::npos)
+            if (fname.find(fileExtensions[i],
+                           (fname.length() - fileExtensions[i].length())) !=
+                std::string::npos)
             {
-                if(strlen(directory)>2)
-                  {
+              if(strlen(directory)>2)
+                {
 #if defined(WIN32)
-                    fullFileName << directory << "\\" << ent->d_name;
+                  fullFileName << directory << "\\" << ent->d_name;
 #else
-                    fullFileName << directory << "/" << ent->d_name;
+                  fullFileName << directory << "/" << ent->d_name;
 #endif
-                  }
-                else
-                  fullFileName << ent->d_name;
-
+                }
+              else
+                fullFileName << ent->d_name;
 
-                noOfFiles++;
-                fileNames.push_back(fullFileName.str());
+              noOfFiles++;
+              fileNames.push_back(fullFileName.str());
             }
           }
         }
@@ -187,7 +188,7 @@ int loadSamplesToTables(CSOUND *csound, int index, char* directory,
         std::sort(fileNames.begin(), fileNames.end() );
 
         // push statements to score, starting with table number 'index'
-          for(int y = 0; y < fileNames.size(); y++)
+        for(int y = 0; (size_t) y < fileNames.size(); y++)
             {
               std::ostringstream statement;
               statement << "f" << index+y << " 0 0 1 \"" << fileNames[y] <<
diff --git a/Opcodes/gab/gab.c b/Opcodes/gab/gab.c
index 6c48acd..5b71384 100644
--- a/Opcodes/gab/gab.c
+++ b/Opcodes/gab/gab.c
@@ -55,8 +55,6 @@ static int krsnsetx(CSOUND *csound, KRESONX *p)
     if (LIKELY(!(*p->istor))) {
       memset(p->yt1, 0, p->loop*sizeof(MYFLT));
       memset(p->yt2, 0, p->loop*sizeof(MYFLT));
-      /* int j; */
-      /* for (j=0; j< p->loop; j++) p->yt1[j] = p->yt2[j] = FL(0.0); */
     }
     p->prvcf = p->prvbw = -FL(100.0);
     return OK;
@@ -139,9 +137,10 @@ static int fastabw(CSOUND *csound, FASTAB *p)
     if (UNLIKELY(early)) nsmps -= early;
     if (p->xmode) {
       MYFLT xbmul = p->xbmul;   /* load once */
+      int len = p->tablen;
       for (n=offset; n<nsmps; n++)  { /* for loops compile better */
         int i = (int)(ndx[n]*xbmul);
-        if (UNLIKELY(i > p->tablen || i<0)) {
+        if (UNLIKELY(i > len || i<0)) {
           csound->Message(csound, "ndx: %f \n", ndx[n]);
           return csound->PerfError(csound, p->h.insdshead, Str("tabw off end"));
         }
@@ -149,9 +148,10 @@ static int fastabw(CSOUND *csound, FASTAB *p)
       }
     }
     else {
+      int len = p->tablen;
       for (n=offset; n<nsmps; n++) {
         int i = ndx[n];
-        if (UNLIKELY(i > p->tablen || i<0)) {
+        if (UNLIKELY(i > len || i<0)) {
           return csound->PerfError(csound, p->h.insdshead, Str("tabw off end"));
         }
         tab[i] = rslt[n];
@@ -243,18 +243,20 @@ static int fastab(CSOUND *csound, FASTAB *p)
     }
     if (p->xmode) {
       MYFLT xbmul = p->xbmul;
+      int len = p->tablen;
       for (i=offset; i<nsmps; i++) {
         int n = (int) (ndx[i] * xbmul);
-        if (UNLIKELY(n > p->tablen || n<0)) {
+        if (UNLIKELY(n > len || n<0)) {
           return csound->PerfError(csound, p->h.insdshead, Str("tab off end %d"),n);
         }
         rslt[i] = tab[n];
       }
     }
     else {
+      int len = p->tablen;
       for (i=offset; i<nsmps; i++) {
         int n = (int) ndx[i];
-        if (UNLIKELY(n > p->tablen || n<0)) {
+        if (UNLIKELY(n > len || n<0)) {
           return csound->PerfError(csound, p->h.insdshead, Str("tab off end %d"),n);
         }
         rslt[i] = tab[n];
@@ -327,38 +329,13 @@ TAB_MACRO(tab13_init, tab13_i_tmp, tab13_k_tmp, 13)
 TAB_MACRO(tab14_init, tab14_i_tmp, tab14_k_tmp, 14)
 TAB_MACRO(tab15_init, tab15_i_tmp, tab15_k_tmp, 15)
 
-/************************************************************* */
-/* Opcodes from Peter Neubaeker                                */
-/* *********************************************************** */
-
-#if 0
-static void printi(CSOUND *csound, PRINTI *p)
-{
-    char    *sarg;
-
-    if (UNLIKELY((*p->ifilcod != sstrcod) || (*p->STRARG == 0))) {
-      return csound->InitError(csound, Str("printi parameter was not "
-                                           "a \"quoted string\""));
-    }
-    else {
-      sarg = p->STRARG;
-      do {
-        putchar(*sarg);
-      } while (*++sarg != 0);
-      putchar(10);
-      putchar(13);
-    }
-    return OK;
-}
-#endif
-
 /* ====================== */
 /* opcodes from Jens Groh */
 /* ====================== */
 
 static int nlalp_set(CSOUND *csound, NLALP *p)
 {
-   if (!(*p->istor)) {
+    if (LIKELY(!(*p->istor))) {
      p->m0 = 0.0;
      p->m1 = 0.0;
    }
@@ -524,7 +501,9 @@ static int adsynt2(CSOUND *csound,ADSYNT2 *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
 
-    if (UNLIKELY(p->inerr)) {
+    /* I believe this can never happen as InitError will remove instance */
+    /* The check should be on p->amptp and p->freqtp  -- JPff            */
+    if (UNLIKELY(p->inerr || p->amptp==NULL || p->freqtp==NULL)) {
       return csound->InitError(csound, Str("adsynt2: not initialised"));
     }
     ftp = p->ftp;
diff --git a/Opcodes/gab/gab.h b/Opcodes/gab/gab.h
index 52edc73..f2e8d74 100644
--- a/Opcodes/gab/gab.h
+++ b/Opcodes/gab/gab.h
@@ -53,14 +53,6 @@ typedef struct {
     MYFLT   *ifn;
 } TB_INIT;
 
-/*  ************************************************************ */
-/*  Opcodes from Peter Neubaeker                                 */
-/*  ************************************************************ */
-/*  typedef struct { */
-/*      OPDS    h; */
-/*      MYFLT   *ifilcod; */
-/*  } PRINTI;  */
-
 /* ====================== */
 /* opcodes from Jens Groh */
 /* ====================== */
diff --git a/Opcodes/gab/hvs.c b/Opcodes/gab/hvs.c
index b2a5393..36b29ce 100644
--- a/Opcodes/gab/hvs.c
+++ b/Opcodes/gab/hvs.c
@@ -60,13 +60,13 @@ static int hvs1_set(CSOUND *csound, HVS1 *p)
 {
     FUNC        *ftp;
 
-    if ((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No out table"));
     p->outTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No positions table"));
     p->posTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No snap table"));
     p->snapTable = ftp->ftable;
     if (UNLIKELY(*p->inumPointsX < 2 ))
@@ -76,7 +76,7 @@ static int hvs1_set(CSOUND *csound, HVS1 *p)
     if (*p->iConfigTab == 0)
       p->iconfFlag = 0;
     else {
-      if ((ftp = csound->FTnp2Find(csound, p->iConfigTab)) == NULL)
+      if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iConfigTab)) == NULL))
         return csound->InitError(csound, Str("hvs: no config table"));
       p->outTable = ftp->ftable;
       p->iconfFlag = 1;
@@ -101,7 +101,7 @@ static int hvs1(CSOUND *csound, HVS1 *p)
     int j;
 
     if (p->iconfFlag) {
-      for ( j =0; j< noc; j++) {
+      for (j =0; j< noc; j++) {
         switch ((int) p->confTable[j]) {
         case -1: // ignore parameter
           break;
@@ -146,13 +146,13 @@ static int hvs2_set(CSOUND *csound, HVS2 *p)
 {
     FUNC        *ftp;
 
-    if ((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No out table"));
     p->outTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No positions table"));
     p->posTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No snap table"));
     p->snapTable = ftp->ftable;
     if (UNLIKELY(*p->inumlinesX < 2 || *p->inumlinesY < 2))
@@ -162,7 +162,7 @@ static int hvs2_set(CSOUND *csound, HVS2 *p)
     if (*p->iConfigTab == 0)
       p->iconfFlag = 0;
     else {
-      if ((ftp = csound->FTnp2Find(csound, p->iConfigTab)) == NULL)
+      if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iConfigTab)) == NULL))
         return csound->InitError(csound, Str("hvs: no config table"));
       p->outTable = ftp->ftable;
       p->iconfFlag = 1;
@@ -245,13 +245,13 @@ static int hvs3_set(CSOUND *csound, HVS3 *p)
 {
     FUNC        *ftp;
 
-    if ((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iOutTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No out table"));
     p->outTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iPositionsTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No positions table"));
     p->posTable = ftp->ftable;
-    if ((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->iSnapTab)) == NULL))
       return csound->InitError(csound, Str("hvs: No snap table"));
     p->snapTable = ftp->ftable;
     if (UNLIKELY(*p->inumlinesX < 2 || *p->inumlinesY < 2))
@@ -259,7 +259,7 @@ static int hvs3_set(CSOUND *csound, HVS3 *p)
                                            "delimited by 2 lines at least"));
 
 
-    if (*p->iConfigTab == 0)
+    if (LIKELY(*p->iConfigTab == 0))
       p->iconfFlag = 0;
     else {
       if ((ftp = csound->FTnp2Find(csound, p->iConfigTab)) == NULL)
diff --git a/Opcodes/gab/newgabopc.c b/Opcodes/gab/newgabopc.c
index 4f4f5ae..53addc9 100644
--- a/Opcodes/gab/newgabopc.c
+++ b/Opcodes/gab/newgabopc.c
@@ -36,7 +36,7 @@ typedef struct {
 static int  mtable1_set(CSOUND *csound, MTABLE1 *p)      /* mtab by G.Maldonado */
 {
     FUNC *ftp;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL))
       return csound->InitError(csound, Str("vtable1: incorrect table number"));
     p->ftable = ftp->ftable;
     p->nargs = p->INOCOUNT-1;
@@ -51,7 +51,7 @@ static int  mtable1_k(CSOUND *csound, MTABLE1 *p)
     MYFLT *table;
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTFindP(csound, p->xfn) ) == NULL)
+      if (UNLIKELY( (ftp = csound->FTFindP(csound, p->xfn) ) == NULL))
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtable1: incorrect table number"));
       p->pfn = (long)*p->xfn;
@@ -352,7 +352,7 @@ static int inRange_i(CSOUND *csound, INRANGE *p)
 {
     p->narg = p->INOCOUNT-1;
 /*p->numChans = (PortaudioNumOfInPorts == -1) ? nchnls : PortaudioNumOfInPorts; */
-    if (!csound->oparms->sfread)
+    if (UNLIKELY(!csound->oparms->sfread))
       return csound->InitError(csound, Str("inrg: audio input is not enabled"));
     p->numChans = csound->GetNchnls(csound);
     return OK;
@@ -369,7 +369,7 @@ static int inRange(CSOUND *csound, INRANGE *p)
     MYFLT *sp = csound->spin + startChan;
     int narg = p->narg, numchans = p->numChans;
 
-    if (startChan < 0)
+    if (UNLIKELY(startChan < 0))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("inrg: channel number cannot be < 1 "
                                    "(1 is the first channel)"));
@@ -399,7 +399,7 @@ static int lposc_set(CSOUND *csound, LPOSC *p)
     MYFLT  loop, end, looplength;
     if ((ftp = csound->FTnp2Find(csound, p->ift)) == NULL)
       return csound->InitError(csound, Str("invalid function"));
-    if (!(p->fsr=ftp->gen01args.sample_rate)){
+    if (UNLIKELY(!(p->fsr=ftp->gen01args.sample_rate))){
        csound->Message(csound,
                        Str("lposc: no sample rate stored in function;"
                            " assuming=sr\n"));
@@ -471,9 +471,9 @@ static int lposc_stereo_set(CSOUND *csound, LPOSC_ST *p)
 {
     FUNC *ftp;
     double  loop, end, looplength, fsr;
-    if ((ftp = csound->FTnp2Find(csound, p->ift)) == NULL)
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->ift)) == NULL))
       return csound->InitError(csound, Str("invalid function"));
-    if (!(fsr = ftp->gen01args.sample_rate)) {
+    if (UNLIKELY(!(fsr = ftp->gen01args.sample_rate))) {
       csound->Message(csound, Str("lposcil: no sample rate stored in function;"
                                   " assuming=sr\n"));
       p->fsr=CS_ESR;
diff --git a/Opcodes/gab/sliderTable.c b/Opcodes/gab/sliderTable.c
index dae21d1..519df27 100644
--- a/Opcodes/gab/sliderTable.c
+++ b/Opcodes/gab/sliderTable.c
@@ -43,7 +43,7 @@ typedef struct {
 {                                                                       \
     unsigned char chan = p->slchan = (unsigned char)((*p->ichan)-1);    \
     char sbuf[120];                                                     \
-    if (chan  > 15)  {                                                  \
+    if (UNLIKELY(chan  > 15))  {                                        \
       return csound->InitError(csound, Str("illegal channel"));         \
     }                                                                   \
     else {                                                              \
@@ -55,14 +55,14 @@ typedef struct {
         FUNC *outftp, **ftp = p->ftp;                                   \
         MYFLT *chanblock = (MYFLT *)  csound->m_chnbp[chan]->ctl_val;   \
                                                                         \
-        if((outftp = csound->FTnp2Find(csound, p->ioutfn)) != NULL)     \
+        if ((outftp = csound->FTnp2Find(csound, p->ioutfn)) != NULL)    \
           p->outTable = outftp->ftable;                                 \
         while (j < 8) {                                                 \
             int t = (int) *sld->ifn;                                    \
             *slnum = (unsigned char) *sld->ictlno;                      \
             value=*sld->initvalue;                                      \
                                                                         \
-            if (*slnum > 127) {                                         \
+            if (UNLIKELY(*slnum > 127)) {                               \
               snprintf(sbuf, 120,                                       \
                         Str("illegal control number at position n.%d"), \
                         j);                                             \
@@ -72,7 +72,7 @@ typedef struct {
             *min=*sld->imin;                                            \
             *max=*sld->imax;                                            \
             if (t !=0  && t != -1) {           /*table indexing */      \
-              if (value >= 1 || value < 0) {                            \
+              if (UNLIKELY(value >= 1 || value < 0)) {                  \
                 snprintf(sbuf, 120,                                     \
                          Str("sliderXtable: illegal initvalue at "      \
                                   "position %d.  When using table "     \
@@ -82,7 +82,7 @@ typedef struct {
                 break;                                                  \
               }                                                         \
             }                                                           \
-            else if (value < *min || value > *max ) {                   \
+            else if (UNLIKELY(value < *min || value > *max )) {         \
               snprintf(sbuf, 120,                                       \
                       Str("illegal initvalue at position n.%d"), j);    \
               return csound->InitError(csound, "%s", sbuf);             \
@@ -94,7 +94,7 @@ typedef struct {
               value =  (*sld->initvalue - *min) / (*max - *min);        \
               break;                                                    \
             case -1: /* EXPONENTIAL */                                  \
-              if (*min == 0 || *max == 0) {                             \
+              if (UNLIKELY(*min == 0 || *max == 0)) {                   \
                 return csound->InitError(csound,                        \
                                          Str("sliderXtable: zero is "   \
                                              "illegal in exponential "  \
@@ -253,7 +253,7 @@ static int sliderTable64(CSOUND *csound, SLIDER64t *p) /* GAB */
   {                                                                     \
     unsigned char chan = p->slchan = (unsigned char)((*p->ichan)-1);    \
     char sbuf[120];                                                     \
-    if (chan  > 15)  {                                                  \
+    if (UNLIKELY(chan  > 15))  {                                        \
       return csound->InitError(csound, Str("illegal channel"));         \
     }                                                                   \
     {                                                                   \
@@ -269,24 +269,24 @@ static int sliderTable64(CSOUND *csound, SLIDER64t *p) /* GAB */
       MYFLT *yt1 = p->yt1, *c1=p->c1, *c2=p->c2;                        \
                                                                         \
                                                                         \
-      if((outftp = csound->FTnp2Find(csound, p->ioutfn)) != NULL)          \
+      if((outftp = csound->FTnp2Find(csound, p->ioutfn)) != NULL)       \
         p->outTable = outftp->ftable;                                   \
       while (j < n) {                                                   \
         int t = (int) *sld->ifn;                                        \
         *slnum = (unsigned char) *sld->ictlno;                          \
         value=*sld->initvalue;                                          \
                                                                         \
-        if (*slnum > 127) {                                             \
+        if (UNLIKELY(*slnum > 127)) {                                   \
           snprintf(sbuf, 120,                                           \
                   Str("illegal control number at position n.%d"), j);   \
-          return csound->InitError(csound, "%s", sbuf);                       \
+          return csound->InitError(csound, "%s", sbuf);                 \
           break;                                                        \
         }                                                               \
-        if (value < (*min=*sld->imin) ||                                \
-            value > (*max=*sld->imax) ) {                               \
+        if (UNLIKELY(value < (*min=*sld->imin) ||                       \
+                     value > (*max=*sld->imax) )) {                     \
           snprintf(sbuf, 120,                                           \
                   Str("illegal initvalue at position n.%d"), j);        \
-          return csound->InitError(csound, "%s", sbuf);                       \
+          return csound->InitError(csound, "%s", sbuf);                 \
           break;                                                        \
         }                                                               \
                                                                         \
@@ -312,19 +312,19 @@ static int sliderTable64(CSOUND *csound, SLIDER64t *p) /* GAB */
           value = value; /* unchanged, value must be in the 0 to 1 range, */ \
           /* representing the phase of the table */                     \
           if (*sld->ifn > 0)   *ftp = csound->FTnp2Find(csound, sld->ifn); \
-          if (value >= 1 || value < 0) {                                \
+          if (UNLIKELY(value >= 1 || value < 0)) {                      \
             snprintf(sbuf, 120,                                         \
                     Str("sliderXtable: illegal initvalue at "           \
                               "position %d. When using table indexing," \
                               " the init range is 0 to 1"), j);         \
-            return csound->InitError(csound, "%s", sbuf);                     \
+            return csound->InitError(csound, "%s", sbuf);               \
           }                                                             \
         }                                                               \
         chanblock[*slnum++] =  (MYFLT)((int)(value * f7bit + FL(0.5))); \
         /*----- init filtering coeffs*/                                 \
         *yt1++ = FL(0.0);                                               \
         b = (MYFLT)(2.0 - cos((double)(*(sld)->ihp *                    \
-                              csound->tpidsr * CS_KSMPS)));        \
+                              csound->tpidsr * CS_KSMPS)));             \
         *c2 = (MYFLT)(b - sqrt((double)(b * b - FL(1.0))));             \
         *c1++ = FL(1.0) - *c2++;                                        \
                                                                         \
@@ -509,8 +509,8 @@ static int sliderKawai_i(CSOUND *csound, SLIDERKAWAI *p)
     MYFLT *min = p->min, *max= p->max;
     FUNC **ftp = p->ftp;
     do  {
-      if ((value=*sld->initvalue) < (*min=*sld->imin) ||
-          value > (*max=*sld->imax) ) {
+      if (UNLIKELY((value=*sld->initvalue) < (*min=*sld->imin) ||
+                   value > (*max=*sld->imax) )) {
         snprintf(sbuf, 120, Str("illegal initvalue at position n.%d"), j);
         return csound->InitError(csound, "%s", sbuf);
       }
@@ -571,7 +571,7 @@ static int ctrl7a_set(CSOUND *csound, CTRL7a *p)
     else p->ctlno = ctlno;
 
     if (*p->ifn > 0) {
-      if (((p->ftp = csound->FTnp2Find(csound, p->ifn)) == NULL))
+      if (UNLIKELY(((p->ftp = csound->FTnp2Find(csound, p->ifn)) == NULL)))
         p->flag = 0;  /* invalid ftable */
       else p->flag= 1;
     }
diff --git a/Opcodes/gab/stdopcod.h b/Opcodes/gab/stdopcod.h
index edeff75..34ea6d7 100644
--- a/Opcodes/gab/stdopcod.h
+++ b/Opcodes/gab/stdopcod.h
@@ -37,7 +37,7 @@ struct fileinTag {
     void        *fd;          /* file handle returned by CSOUND::FileOpen */
     char        *name;        /* short name */
     int         do_scale;     /* non-zero if 0dBFS scaling should be applied */
-    uint32      refCount;   /* reference count, | 0x80000000 if close reqd */
+    uint32      refCount;     /* reference count, | 0x80000000 if close reqd */
 };
 
 typedef struct VCO2_TABLE_ARRAY_  VCO2_TABLE_ARRAY;
diff --git a/Opcodes/gab/vectorial.c b/Opcodes/gab/vectorial.c
index c7affd3..332645a 100644
--- a/Opcodes/gab/vectorial.c
+++ b/Opcodes/gab/vectorial.c
@@ -31,7 +31,7 @@ static int mtable_i(CSOUND *csound,MTABLEI *p)
     FUNC *ftp;
     int j, nargs;
     MYFLT *table, xbmul = FL(0.0), **out = p->outargs;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtablei: incorrect table number"));
     }
     table = ftp->ftable;
@@ -61,7 +61,7 @@ static int mtable_i(CSOUND *csound,MTABLEI *p)
 static int mtable_set(CSOUND *csound,MTABLE *p) /*  mtab by G.Maldonado */
 {
     FUNC *ftp;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtable: incorrect table number"));
     }
     p->ftable = ftp->ftable;
@@ -81,7 +81,7 @@ static int mtable_k(CSOUND *csound,MTABLE *p)
     long len;
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtablek: incorrect table number"));
       }
@@ -135,7 +135,7 @@ static int mtable_a(CSOUND *csound,MTABLE *p)
 
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtablea: incorrect table number"));
       }
@@ -196,7 +196,7 @@ static int mtab_i(CSOUND *csound,MTABI *p)
     int j, nargs;
     long indx;
     MYFLT *table, **out = p->outargs;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtabi: incorrect table number"));
     }
     table = ftp->ftable;
@@ -211,7 +211,7 @@ static int mtab_i(CSOUND *csound,MTABI *p)
 static int mtab_set(CSOUND *csound,MTAB *p)     /* mtab by G.Maldonado */
 {
     FUNC *ftp;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtab: incorrect table number"));
     }
     p->ftable = ftp->ftable;
@@ -273,7 +273,7 @@ static int mtablew_i(CSOUND *csound,MTABLEIW *p)
     int j, nargs;
     long indx;
     MYFLT *table, xbmul = FL(0.0), **in = p->inargs;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtablewi: incorrect table number"));
     }
     table = ftp->ftable;
@@ -289,7 +289,7 @@ static int mtablew_i(CSOUND *csound,MTABLEIW *p)
 static int mtablew_set(CSOUND *csound,MTABLEW *p)   /* mtabw by G.Maldonado */
 {
     FUNC *ftp;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtablew: incorrect table number"));
     }
     p->ftable = ftp->ftable;
@@ -309,7 +309,7 @@ static int mtablew_k(CSOUND *csound,MTABLEW *p)
     long len, indx;
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtablewk: incorrect table number"));
       }
@@ -342,7 +342,7 @@ static int mtablew_a(CSOUND *csound,MTABLEW *p)
 
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtablewa: incorrect table number"));
       }
@@ -374,7 +374,7 @@ static int mtabw_i(CSOUND *csound, MTABIW *p)
     int j, nargs;
     long indx;
     MYFLT *table, **in = p->inargs;
-    if ((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound, p->xfn)) == NULL)) {
       return csound->InitError(csound, Str("vtabwi: incorrect table number"));
     }
     table = ftp->ftable;
@@ -406,7 +406,7 @@ static int mtabw_k(CSOUND *csound,MTABW *p)
     long len, indx;
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtablewk: incorrect table number"));
       }
@@ -435,7 +435,7 @@ static int mtabw_a(CSOUND *csound,MTABW *p)
 
     if (p->pfn != (long)*p->xfn) {
       FUNC *ftp;
-      if ( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL) {
+      if (UNLIKELY( (ftp = csound->FTnp2Find(csound, p->xfn) ) == NULL)) {
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("vtabwa: incorrect table number"));
       }
@@ -462,16 +462,16 @@ static int vectorOp_set(CSOUND *csound, VECTOROP *p)
     FUNC    *ftp;
 
     ftp = csound->FTnp2Find(csound, p->ifn);
-    if (ftp == NULL)
+    if (UNLIKELY(ftp == NULL))
       return NOTOK;
     p->vector = ftp->ftable;
     /* long elements = (long) *p->kelements; */
     p->len = (long) ftp->flen;
     /* p->dstoffset = (long) *p->kdstoffset;
-     if ((elements | (long)*p->kdstoffset) < 0L ||
-          (elements + (long)*p->kdstoffset) > p->len) {
+     if (UNLIKELY((elements | (long)*p->kdstoffset) < 0L ||
+          (elements + (long)*p->kdstoffset) > p->len)) {
        return csound->InitError(csound,
-                      Str("vectorop: Destination table length exceeded"));
+                                Str("vectorop: Destination table length exceeded"));
      } */
     return OK;
 }
@@ -546,7 +546,7 @@ static int vmult_i(CSOUND *csound, VECTOROPI *p)
     ftp = csound->FTnp2Find(csound, p->ifn);
     if (UNLIKELY(ftp == NULL))  {
       return csound->InitError(csound,Str("vadd_i: invalid table number %i"),
-                        (int) *p->ifn);
+                               (int) *p->ifn);
     }
     vector = ftp->ftable;
     len = (int32) ftp->flen;
@@ -604,9 +604,8 @@ static int vpow_i(CSOUND *csound, VECTOROPI *p)
 
     ftp = csound->FTnp2Find(csound, p->ifn);
     if (UNLIKELY(ftp == NULL))  {
-      csound->InitError(csound,Str("vpow_i: invalid table number %i"),
-                        (int) *p->ifn);
-      return NOTOK;
+      return csound->InitError(csound,Str("vpow_i: invalid table number %i"),
+                               (int) *p->ifn);
     }
     vector = ftp->ftable;
     len = (int32) ftp->flen;
@@ -988,7 +987,7 @@ static int vaddv_i(CSOUND *csound, VECTORSOPI *p)
       vector2 += srcoffset;
     }
     /*n = (elements < len2 ? elements : len2);*/
-    if (elements > len2) {
+    if (UNLIKELY(elements > len2)) {
       csound->Warning(csound,Str("vaddv_i: ifn2 length exceeded"));
       n = len2;
     }
@@ -1441,24 +1440,24 @@ static int vpowvk(CSOUND *csound,VECTORSOP *p)
 
 static int vpowv_i(CSOUND *csound, VECTORSOPI *p)
 {
-  FUNC    *ftp1, *ftp2;
-  MYFLT   *vector1, *vector2;
-  int32    i, j, n, elements, srcoffset, dstoffset, len1, len2;
+    FUNC    *ftp1, *ftp2;
+    MYFLT   *vector1, *vector2;
+    int32    i, j, n, elements, srcoffset, dstoffset, len1, len2;
 
-  ftp1 = csound->FTnp2Find(csound, p->ifn1);
-  ftp2 = csound->FTnp2Find(csound, p->ifn2);
-  if (UNLIKELY(ftp1 == NULL)) {
+    ftp1 = csound->FTnp2Find(csound, p->ifn1);
+    ftp2 = csound->FTnp2Find(csound, p->ifn2);
+    if (UNLIKELY(ftp1 == NULL)) {
       return csound->InitError(csound,
                                Str("vpowv_i: ifn1 invalid table number %i"),
                                (int) *p->ifn1);
     }
-  else if (UNLIKELY(ftp2 == NULL))  {
-    return csound->InitError(csound,
-                             Str("vpowv_i: ifn2 invalid table number %i"),
-                             (int) *p->ifn2);
+    else if (UNLIKELY(ftp2 == NULL))  {
+      return csound->InitError(csound,
+                               Str("vpowv_i: ifn2 invalid table number %i"),
+                               (int) *p->ifn2);
     }
-     /*if (*p->ifn1 == *p->ifn2)
-       csound->Warning(csound, Str("vpowv_i: ifn1 = ifn2."));*/
+    /*if (*p->ifn1 == *p->ifn2)
+      csound->Warning(csound, Str("vpowv_i: ifn1 = ifn2."));*/
     vector1 = ftp1->ftable;
     vector2 = ftp2->ftable;
     len1 = (int32) ftp1->flen+1;
@@ -1478,7 +1477,7 @@ static int vpowv_i(CSOUND *csound, VECTORSOPI *p)
       elements = len1;
       csound->Warning(csound,Str("vpowv_i: ifn1 length exceeded"));
     }
-        /*elements = (elements < len1 ? elements : len1);*/
+    /*elements = (elements < len1 ? elements : len1);*/
     if (srcoffset < 0) {
       /*int   i, */n = -srcoffset;
       n = (n < elements ? n : elements);
@@ -1722,7 +1721,7 @@ static int vmap_i(CSOUND *csound,VECTORSOPI *p)
 static int vlimit_set(CSOUND *csound,VLIMIT *p)
 {
     FUNC        *ftp;
-    if ((ftp = csound->FTnp2Find(csound,p->ifn)) != NULL) {
+    if (UNLIKELY((ftp = csound->FTnp2Find(csound,p->ifn)) != NULL)) {
       p->vector = ftp->ftable;
       p->elements = (int) *p->ielements;
     }
@@ -1905,7 +1904,7 @@ static int vrandh_set(CSOUND *csound,VRANDH *p)
           p->rand = (int32) (seed % 0x7FFFFFFEUL) + 1L;
         }
         csound->Message(csound,
-                        Str("vrandh: Seeding from current time %lu\n"),
+                        Str("vrandh: Seeding from current time %u\n"),
                         seed);
       }
       else {
@@ -2005,7 +2004,7 @@ static int vrandi_set(CSOUND *csound,VRANDI *p)
           p->rand = (int32) (seed % 0x7FFFFFFEUL) + 1L;
         }
         csound->Message(csound,
-                        Str("vrandi: Seeding from current time %lu\n"), seed);
+                        Str("vrandi: Seeding from current time %u\n"), seed);
       }
       else {
         if (*p->isize == 0)
@@ -2195,9 +2194,8 @@ static int vseg_set(CSOUND *csound,VSEG *p)
     FUNC *nxtfunc, *curfunc, *ftp;
     int32        flength;
 
-    if(!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (!(p->INCOUNT & 1)) {
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     nsegs = ((p->INCOUNT-2) >> 1);      /* count segs & alloc if nec */
@@ -2296,7 +2294,7 @@ static int vexpseg(CSOUND *csound,VSEG *p)
     nxttab = segp->nxtfunction->ftable;
     upcnt = (int32)segp->d-segp->cnt;
     if (upcnt > 0) cntoverdur = upcnt/ segp->d;
-    while(--segp->cnt < 0)
+    while (--segp->cnt < 0)
       p->cursegp = ++segp;
     flength = p->elements;
     vector = p->vector;
diff --git a/Opcodes/gendy.c b/Opcodes/gendy.c
index 053de38..c58e12b 100644
--- a/Opcodes/gendy.c
+++ b/Opcodes/gendy.c
@@ -113,9 +113,9 @@ static int gendyset(CSOUND *csound, GENDY *p)
     p->phase   = FL(1.0);
     p->speed   = FL(100.0);
     p->index   = 0;
-    if (*p->initcps < FL(1.0))
+    if (UNLIKELY(*p->initcps < FL(1.0)))
       p->points = 12;
-    else if (*p->initcps > GENDYMAXCPS)
+    else if (UNLIKELY(*p->initcps > GENDYMAXCPS))
       p->points = GENDYMAXCPS;
     else
       p->points = (int32)*p->initcps;
@@ -245,9 +245,9 @@ static int gendyxset(CSOUND *csound, GENDYX *p)
     p->phase   = FL(1.0);
     p->speed   = FL(100.0);
     p->index   = 0;
-    if (*p->initcps < FL(1.0))
+    if (UNLIKELY(*p->initcps < FL(1.0)))
       p->points = 12;
-    else if (*p->initcps > GENDYMAXCPS)
+    else if (UNLIKELY(*p->initcps > GENDYMAXCPS))
       p->points = GENDYMAXCPS;
     else
       p->points = (int32)*p->initcps;
@@ -388,9 +388,9 @@ static int gendycset(CSOUND *csound, GENDYC *p)
     p->curve   = FL(0.0);
     p->phase   = 0;
     p->index   = 0;
-    if (*p->initcps < FL(1.0))
+    if (UNLIKELY(*p->initcps < FL(1.0)))
       p->points = 12;
-    else if (*p->initcps > GENDYMAXCPS)
+    else if (UNLIKELY(*p->initcps > GENDYMAXCPS))
       p->points = GENDYMAXCPS;
     else
       p->points = (int32)*p->initcps;
diff --git a/Opcodes/grain4.c b/Opcodes/grain4.c
index 8403da7..f9339ac 100644
--- a/Opcodes/grain4.c
+++ b/Opcodes/grain4.c
@@ -99,23 +99,23 @@ static int grainsetv4(CSOUND *csound, GRAINV4 *p)
     if ( *p->ipshift !=FL(0.0) ) {
       if (UNLIKELY(*p->ipitch1 < FL(0.0) )) {
         return
-          csound->InitError(csound, Str(
-                        "granule_set: ipitch1 must be greater then zero"));
+          csound->InitError(csound,
+                            Str("granule_set: ipitch1 must be greater then zero"));
       }
       if (UNLIKELY(*p->ipitch2 < FL(0.0) )) {
         return
-          csound->InitError(csound, Str(
-                        "granule_set: ipitch2 must be greater then zero"));
+          csound->InitError(csound,
+                            Str("granule_set: ipitch2 must be greater then zero"));
       }
       if (UNLIKELY(*p->ipitch3 < FL(0.0) )) {
         return
-          csound->InitError(csound, Str(
-                        "granule_set: ipitch3 must be greater then zero"));
+          csound->InitError(csound,
+                            Str("granule_set: ipitch3 must be greater then zero"));
       }
       if (UNLIKELY(*p->ipitch4 < FL(0.0) )) {
         return
-          csound->InitError(csound, Str(
-                        "granule_set: ipitch4 must be greater then zero"));
+          csound->InitError(csound,
+                            Str("granule_set: ipitch4 must be greater then zero"));
       }
     }
 
@@ -150,8 +150,9 @@ static int grainsetv4(CSOUND *csound, GRAINV4 *p)
     }
     if (UNLIKELY((*p->iatt < FL(0.0)) || (*p->idec < 0.0) ||
                  ((*p->iatt + *p->idec) > FL(100.0)))) {
-      return csound->InitError(csound, Str(
-                           "granule_set: Illegal value of iatt and/or idec"));
+      return
+        csound->InitError(csound,
+                          Str("granule_set: Illegal value of iatt and/or idec"));
     } /* end if */
 
     /* Initialize random number generator */
@@ -296,7 +297,7 @@ static int graingenv4(CSOUND *csound, GRAINV4 *p)
       memset(&ar[nsmps], '\0', early*sizeof(MYFLT));
     }
    /* *** Start the loop .... *** */
-   for (n=offset; n<nsmps; n++) {                         /* while (--nsmps) */
+   for (n=offset; n<nsmps; n++) {
                                 /* Optimisations */
      int32      *fpnt = p->fpnt, *cnt = p->cnt, *gskip = p->gskip;
      int32      *gap = p->gap, *gsize = p->gsize;
@@ -412,9 +413,9 @@ static int graingenv4(CSOUND *csound, GRAINV4 *p)
            if (*p->igsize_os != 0)
              *gsize += (int32)((*gsize * p->gsize_os) * grand(p));
 
-             *stretch = *gsize + *gap;
+           *stretch = *gsize + *gap;
 
-         }
+       }
        fpnt++; cnt++; gskip++; gap++; gsize++;
        stretch++; mode++; pshift++; phs++;
      }
diff --git a/Opcodes/hdf5/CMakeLists.txt b/Opcodes/hdf5/CMakeLists.txt
index 56ffc01..38619a0 100644
--- a/Opcodes/hdf5/CMakeLists.txt
+++ b/Opcodes/hdf5/CMakeLists.txt
@@ -1,15 +1,32 @@
 option(BUILD_HDF5_OPCODES "Build the hdf5 read/write opcodes" ON)
 
-find_library (HDF5_library NAMES hdf5)
-FIND_PATH(HDF5_H hdf5.h PATHS ${EXTRA_PREFIX} PATH_SUFFIXES include)
-
-check_include_file(hdf5.h HDF5_H)
-
-check_deps(BUILD_HDF5_OPCODES HDF5_library HDF5_H)
-if(BUILD_HDF5_OPCODES)
-    make_plugin(hdf5ops HDF5IO.c)
-    target_link_libraries(hdf5ops ${HDF5_library})
-    if(WIN32 AND NOT MSVC)
-        target_link_libraries(hdf5ops szip z)
+if(MSVC)
+    message(STATUS "HDF5_HOME: $ENV{HDF5_HOME}")
+    message(STATUS "Configuring HDF5 for static linkage.")
+    find_library (HDF5_library NAMES libhdf5 PATHS $ENV{HDF5_HOME} PATH_SUFFIXES lib NO_DEFAULT_PATH)
+    find_library (HDF5_szip_library NAMES libszip PATHS $ENV{HDF5_HOME} PATH_SUFFIXES lib NO_DEFAULT_PATH)
+    find_library (HDF5_zlib_library NAMES libzlib PATHS $ENV{HDF5_HOME} PATH_SUFFIXES lib NO_DEFAULT_PATH)
+    find_path(HDF5_H hdf5.h PATHS $ENV{HDF5_HOME} PATH_SUFFIXES include ${EXTRA_PREFIX} NO_DEFAULT_PATH)
+    check_deps(BUILD_HDF5_OPCODES HDF5_library HDF5_H)
+    if(BUILD_HDF5_OPCODES)
+        message(STATUS "HDF5_H: ${HDF5_H}")
+        message(STATUS "HDF5_library: ${HDF5_library}")
+        message(STATUS "HDF5_szip_library: ${HDF5_szip_library}")
+        message(STATUS "HDF5_zlib_library: ${HDF5_zlib_library}")
+        make_plugin(hdf5ops HDF5IO.c)
+        target_include_directories(hdf5ops PRIVATE ${HDF5_H})
+        target_link_libraries(hdf5ops ${HDF5_library} ${HDF5_szip_library} ${HDF5_zlib_library})
+    endif()
+else()
+    find_package(HDF5)
+    check_deps(BUILD_HDF5_OPCODES HDF5_FOUND)
+    if(BUILD_HDF5_OPCODES)
+        message(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}")
+        message(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}")
+        make_plugin(hdf5ops HDF5IO.c)
+        target_include_directories(hdf5ops PRIVATE ${HDF5_INCLUDE_DIRS})
+        target_link_libraries(hdf5ops ${HDF5_LIBRARIES})
     endif()
 endif()
+check_include_file(hdf5.h HDF5_H)
+
diff --git a/Opcodes/hdf5/HDF5IO.c b/Opcodes/hdf5/HDF5IO.c
index e2b4047..add7752 100644
--- a/Opcodes/hdf5/HDF5IO.c
+++ b/Opcodes/hdf5/HDF5IO.c
@@ -25,8 +25,8 @@
 #include <unistd.h>
 #endif
 
-#define HDF5ERROR(x) if ((x) == -1) {csound->Die(csound, #x" error\nExiting\n");}
-#pragma mark - Common -
+#define HDF5ERROR(x) if (UNLIKELY((x) == -1)) \
+    {csound->Die(csound, #x" error\nExiting\n");}
 
 // Type strings to match the enum types
 static const char typeStrings[8][12] = {
@@ -138,7 +138,7 @@ ArgumentType HDF5IO_getArgumentTypeFromString(CSOUND *csound, const char *string
 // create the file
 // If it exists, open the file for appending
 // Find out what size the MYFLT floating point type is and assign the correct
-//hdf5 type to it
+// hdf5 type to it
 // Return the pointer to the hdf5 file struct
 
 HDF5File *HDF5IO_newHDF5File(CSOUND *csound, AUXCH *hdf5FileMemory,
@@ -151,9 +151,9 @@ HDF5File *HDF5IO_newHDF5File(CSOUND *csound, AUXCH *hdf5FileMemory,
 
     int fileExists = access(hdf5File->fileName, 0);
 
-    if (fileExists == -1) {
+    if (UNLIKELY(fileExists == -1)) {
 
-      if (openForWriting == true) {
+      if (LIKELY(openForWriting == true)) {
 
         hdf5File->fileHandle = H5Fcreate(hdf5File->fileName, H5F_ACC_TRUNC,
                                          H5P_DEFAULT, H5P_DEFAULT);
@@ -170,18 +170,15 @@ HDF5File *HDF5IO_newHDF5File(CSOUND *csound, AUXCH *hdf5FileMemory,
       HDF5ERROR(hdf5File->fileHandle);
     }
 
-    if (sizeof(MYFLT) == sizeof(double)) {
-
+#ifdef USE_DOUBLE
       hdf5File->floatSize = H5T_NATIVE_DOUBLE;
-    }
-    else if (sizeof(MYFLT) == sizeof(float)) {
-
+#else
       hdf5File->floatSize = H5T_NATIVE_FLOAT;
-    }
-    else {
+#endif
+      //else {
 
-      csound->Die(csound, "HDF5IO: Illegal size for floating point type, exiting");
-    }
+      //csound->Die(csound,"HDF5IO: Illegal size for floating point type, exiting");
+      //}
 
     return hdf5File;
 }
@@ -258,8 +255,6 @@ bool HDF5IO_getSampleAccurate(CSOUND *csound)
 }
 
 
-#pragma mark - HDF5Write -
-
 // Set everything up so datasets can be written from the opcodes input variables,
 // i-rate datasets are written at initialisation all others are written on the
 // performance pass.
@@ -329,7 +324,7 @@ void HDF5Write_writeAudioData(CSOUND *csound, HDF5Write *self,
 
     int vectorSize = (int)(self->ksmps - offset - early);
 
-    if (vectorSize == 0) {
+    if (UNLIKELY(vectorSize == 0)) {
       return;
     }
 
@@ -415,7 +410,7 @@ int HDF5Write_finish(CSOUND *csound, void *inReference)
 {
     HDF5Write *self = inReference;
 
-    if (self->datasets != NULL) {
+    if (LIKELY(self->datasets != NULL)) {
       int i;
       for (i = 0; i < self->inputArgumentCount; ++i) {
 
@@ -464,7 +459,7 @@ void HDF5Write_checkArgumentSanity(CSOUND *csound, const HDF5Write *self)
     ArgumentType type = HDF5IO_getArgumentTypeFromArgument(csound,
                                                            self->arguments[0]);
 
-    if (type != STRING_VAR) {
+    if (UNLIKELY(type != STRING_VAR)) {
 
       csound->Die(csound, Str("hdf5write: Error, first argument does not "
                               "appear to be a string, exiting"));
@@ -474,9 +469,9 @@ void HDF5Write_checkArgumentSanity(CSOUND *csound, const HDF5Write *self)
 
       type = HDF5IO_getArgumentTypeFromArgument(csound, self->arguments[i + 1]);
 
-      if (type == STRING_VAR
-          ||
-          type == UNKNOWN) {
+      if (UNLIKELY(type == STRING_VAR
+                   ||
+                   type == UNKNOWN)) {
 
         csound->Die(csound, Str("hdf5write: Error, unable to identify type "
                                 "of argument %zd"), i);
@@ -727,8 +722,6 @@ void HDF5Write_createDatasets(CSOUND *csound, HDF5Write *self)
     }
 }
 
-#pragma mark - HDF5Read -
-
 // Open datasets in a hdf5 file so they can be read by the opcode
 //
 // Get the amount of samples in a control pass
@@ -877,7 +870,7 @@ void HDF5Read_readAudioData(CSOUND *csound, HDF5Read *self,
 
     dataset->offset[0] += vectorSize;
 
-#ifdef MSVC
+#ifdef _MSC_VER
     free (chunkDimensions);
 #endif
 }
@@ -913,7 +906,7 @@ void HDF5Read_readControlData(CSOUND *csound, HDF5Read *self,
     HDF5Read_readData(csound, self, dataset, dataset->offset,
                       chunkDimensions, dataPointer);
     dataset->offset[0]++;
-#ifdef MSVC
+#ifdef _MSC_VER
     free (chunkDimensions);
 #endif
 
@@ -1001,7 +994,7 @@ int HDF5Read_finish(CSOUND *csound, void *inReference)
 void HDF5Read_checkArgumentSanity(CSOUND *csound, const HDF5Read *self)
 {
     int i;
-    if (self->inputArgumentCount != self->outputArgumentCount) {
+    if (UNLIKELY(self->inputArgumentCount != self->outputArgumentCount)) {
 
       if (self->inputArgumentCount > self->outputArgumentCount) {
 
@@ -1023,23 +1016,23 @@ void HDF5Read_checkArgumentSanity(CSOUND *csound, const HDF5Read *self)
       ArgumentType outputType =
         HDF5IO_getArgumentTypeFromArgument(csound, self->arguments[i]);
 
-      if (inputType != STRING_VAR) {
+      if (UNLIKELY(inputType != STRING_VAR)) {
 
         csound->Die(csound, Str("hdf5read: Error, input argument %zd does not "
                                 "appear to be a string, exiting"), i + 1);
       }
-      else if (inputType == UNKNOWN) {
+      else if (UNLIKELY(inputType == UNKNOWN)) {
 
         csound->Die(csound, Str("hdf5read: Error, input argument %zd type "
                                 "is unknown, exiting"), i + 1);
       }
 
-      if (outputType == STRING_VAR) {
+      if (UNLIKELY(outputType == STRING_VAR)) {
 
         csound->Die(csound, Str("hdf5read: Error, output argument %zd appears "
                                 "to be a string, exiting"), i + 1);
       }
-      else if (outputType == UNKNOWN) {
+      else if (UNLIKELY(outputType == UNKNOWN)) {
 
         csound->Die(csound, Str("hdf5read: Error, output argument %zd type "
                                 "is unknown, exiting"), i + 1);
@@ -1058,7 +1051,7 @@ void HDF5Read_initialiseHDF5Dataset(CSOUND *csound, HDF5Read *self,
     htri_t result = H5Lexists(self->hdf5File->fileHandle,
                               dataset->datasetName, H5P_DEFAULT);
 
-    if (result <= 0) {
+    if (UNLIKELY(result <= 0)) {
 
       csound->Die(csound, Str("hdf5read: Error, dataset does not exist or "
                               "cannot be found in file"));
@@ -1303,13 +1296,13 @@ void HDF5Read_initialiseScalarOutput(CSOUND *csound, HDF5Read *self,
         dataset->elementCount = 1;
       }
 
-        if (dataset->readType == IRATE_VAR) {
+      if (dataset->readType == IRATE_VAR) {
 
-            hsize_t arrayDimensions[1] = {1};
-            hsize_t offset[1] = {0};
-            HDF5Read_readData(csound, self, dataset, offset, arrayDimensions,
-                              dataset->argumentPointer);
-        }
+        hsize_t arrayDimensions[1] = {1};
+        hsize_t offset[1] = {0};
+        HDF5Read_readData(csound, self, dataset, offset, arrayDimensions,
+                          dataset->argumentPointer);
+      }
     }
 
 }
diff --git a/Opcodes/hdf5/HDF5IO.h b/Opcodes/hdf5/HDF5IO.h
index a08ee8e..4ad7ecc 100644
--- a/Opcodes/hdf5/HDF5IO.h
+++ b/Opcodes/hdf5/HDF5IO.h
@@ -21,8 +21,6 @@
 #include "hdf5.h"
 #include <stdbool.h>
 
-#pragma mark - HDF5IO -
-
 typedef enum ArgumentType
 {
     STRING_VAR,
@@ -89,8 +87,6 @@ HDF5File *HDF5IO_newHDF5File(CSOUND *csound, AUXCH *hdf5FileMemory,
 
 void HDF5IO_deleteHDF5File(CSOUND *csound, HDF5File *hdf5File);
 
-#pragma mark - HDF5Write -
-
 typedef struct HDF5Write
 {
     OPDS h;
@@ -120,8 +116,6 @@ void HDF5Write_newArrayDataset(CSOUND *csound, HDF5Write *self,
 void HDF5Write_deleteArrayDataset(CSOUND *csound, HDF5Dataset *dataset);
 
 
-#pragma mark - HDF5Read -
-
 typedef struct HDF5Read
 {
     OPDS h;
diff --git a/Opcodes/ifd.c b/Opcodes/ifd.c
index 18a645d..7acb7ff 100644
--- a/Opcodes/ifd.c
+++ b/Opcodes/ifd.c
@@ -362,10 +362,9 @@ static int tifd_process(CSOUND * csound, IFD * p)
     int post;
     MYFLT frac;
     FUNC *ft = csound->FTnp2Find(csound,p->p7);
-    if (ft == NULL){
-      csound->PerfError(csound, p->h.insdshead,
-                        "could not find table number %d\n", (int) *p->p7);
-      return NOTOK;
+    if (UNLIKELY(ft == NULL)) {
+      return csound->PerfError(csound, p->h.insdshead,
+                               "could not find table number %d\n", (int) *p->p7);
     }
     MYFLT *tab = ft->ftable;
     int i,size = ft->flen;
diff --git a/Opcodes/jackTransport.c b/Opcodes/jackTransport.c
index df120aa..7d096fd 100644
--- a/Opcodes/jackTransport.c
+++ b/Opcodes/jackTransport.c
@@ -59,7 +59,7 @@ static int jack_transport (CSOUND *csound, JACKTRANSPORT * p)
     }
     else {
       //move to specified location (in seconds)
-      if ((int)(*p->location)>=0){
+      if ((int)(*p->location)>=0) {
         MYFLT loc_sec = *p->location;
         MYFLT loc_sec_per_sr = loc_sec*csound->GetSr(csound);
         jack_transport_locate(client, loc_sec_per_sr);
@@ -68,7 +68,7 @@ static int jack_transport (CSOUND *csound, JACKTRANSPORT * p)
                             "at %f seconds\n"), loc_sec);
       }
       //start or stop
-      switch ((int)(*p->command)){
+      switch ((int)(*p->command)) {
       case START:
         csound->Warning(csound, Str("jacktransport: playing.\n"));
         jack_transport_start(client);
diff --git a/Opcodes/jacko.cpp b/Opcodes/jacko.cpp
index 3e517f7..d058b0c 100644
--- a/Opcodes/jacko.cpp
+++ b/Opcodes/jacko.cpp
@@ -1,3 +1,26 @@
+/*
+    jacko.cpp:
+
+    Copyright (C) 2010nby Michael Gogins
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 /**
  * T H E   J A C K   O P C O D E S
  * Michael Gogins
@@ -96,7 +119,7 @@
  * which may be either faster or slower than real time.
  *
  * This is essential for rendering scores that are too
- * dense for real-time performance to a soundfile,
+ * dense for real-time jacko_is_driving to a soundfile,
  * without xruns or dropouts.
  *
  * Syntax
@@ -393,10 +416,10 @@
  *
  * kcommand -- 0 means "no action", 1 starts the transport,
  * 2 stops the transport, and 3 positions the transport
- * to kposition seconds from the beginning of performance
+ * to kposition seconds from the beginning of jacko_is_driving
  * (i.e. time 0 in the score).
  *
- * This opcode can be used at init time or during performance.
+ * This opcode can be used at init time or during jacko_is_driving.
  *
  * The granularity of timing is Csound's kperiod.
  *
@@ -423,13 +446,14 @@
  *         for dispatch via the MIDI driver callack through
  *         Csound's normal sensevents mechanism.
  *    4.2. csoundPerformKsmps is called.
- *    4.3. When the Csound performance is finished:
+ *    4.3. When the Csound jacko_is_driving is finished:
  *         4.3.1. The Csound processing thread is re-awakened.
  *         4.3.2. The Jack processing callback is deactivated.
  *         4.3.2. The Jack client is closed.
  * 5. At the end of processing, the module deinitialization
  *    function erases all Jack-related state.
  */
+#include <atomic>
 #include <csound.h>
 #include <cstdlib>
 #include <cstdio>
@@ -461,7 +485,7 @@ struct JackoState;
  * There is one and only one JackoState instance per instance of Csound.
  * It is created by and only by the JackoInit opcode.
  */
-static JackoState *jackoState = 0;
+//static JackoState *jackoState = 0;
 
 static void SenseEventCallback_(CSOUND *csound,
                                 void *data);
@@ -485,292 +509,281 @@ static int midiRead_(CSOUND *csound,
  */
 struct JackoState
 {
-  CSOUND *csound;
-  const char *serverName;
-  const char *clientName;
-  jack_client_t *jackClient;
-  char jackInitialized;
-  char jackActive;
-  char csoundActive;
-  jack_nframes_t csoundFramesPerTick;
-  jack_nframes_t jackFramesPerTick;
-  jack_nframes_t csoundFramesPerSecond;
-  jack_nframes_t jackFramesPerSecond;
-  jack_nframes_t jackFrameTime;
-  std::map<std::string, jack_port_t *> audioInPorts;
-  std::map<std::string, jack_port_t *> audioOutPorts;
-  std::map<std::string, jack_port_t *> midiInPorts;
-  std::map<std::string, jack_port_t *> midiOutPorts;
-  std::list<unsigned char> midiInputQueue;
-  jack_position_t jack_position;
-  pthread_t closeThread;
-  pthread_mutex_t conditionMutex;
-  pthread_cond_t closeCondition;
-  pthread_cond_t csoundCondition;
-  JackoState(CSOUND *csound_, const char *serverName_, const char *clientName_) :
-    csound(csound_),
-    serverName(serverName_),
-    clientName(clientName_),
-    jackInitialized(false),
-    jackActive(false),
-    csoundActive(true)
-  {
-      int result = 0;
-      csound = csound_;
-      csoundFramesPerTick = csound->GetKsmps(csound);
-      csoundFramesPerSecond = csound->GetSr(csound);
-      result |= pthread_mutex_init(&conditionMutex, 0);
-      result |= pthread_cond_init(&csoundCondition, 0);
-      result |= pthread_cond_init(&closeCondition, 0);
-      // Create a thread to run the close routine. It will immediately
-      // block until it is signaled.
-      result |= pthread_create(&closeThread, 0, &JackoState::closeRoutine_, this);
-      std::memset(&jack_position, 0, sizeof(jack_position_t));
-      jack_options_t jack_options = (jack_options_t) (JackServerName |
-                                                      JackNoStartServer |
-                                                      JackUseExactName);
-      jack_status_t status = jack_status_t(0);
-      jackClient = jack_client_open(clientName,
-                                    jack_options,
-                                    &status,
-                                    serverName);
-      if (!jackClient) {
-        csound->Message(csound, Str("Could not create Jack client \"%s\" -- "
-                                    "is Jack server \"%s\" running? Status: %d\n"),
-                        clientName,
-                        serverName,
-                        status);
-        csound->LongJmp(csound, 1);
-      } else {
-        csound->Message(csound,
-                        Str("Created Jack client \"%s\" for Jack server \"%s\".\n"),
-                        clientName, serverName);
-      }
-      jackFramesPerTick = jack_get_buffer_size(jackClient);
-      if (csoundFramesPerTick != jackFramesPerTick) {
-        csound->Message(csound,
-                        Str("Jack buffer size %d != Csound ksmps %d, exiting...\n"),
-                        jackFramesPerTick,
-                        csoundFramesPerTick);
-        csound->LongJmp(csound, 1);
-      }
-      jackFramesPerSecond = jack_get_sample_rate(jackClient);
-      if (csoundFramesPerSecond != jackFramesPerSecond) {
-        csound->Message(csound,
-                        Str("Jack sampling rate %d != Csound sr %d, exiting...\n"),
-                        jackFramesPerSecond,
-                        csoundFramesPerSecond);
-        csound->LongJmp(csound, 1);
-      }
-      csound->RegisterSenseEventCallback(csound, SenseEventCallback_, this);
-      result |= jack_set_process_callback(jackClient, JackProcessCallback_, this);
-      result |= jack_activate(jackClient);
-      if (!result) {
-        csound->Message(csound,
-                        Str("Activated Jack client \"%s\".\n"),
-                        jack_get_client_name(jackClient));
-      } else {
-        csound->Message(csound,
-                        Str("Failed to activate Jack client \"%s\": status %d.\n"),
-                        jack_get_client_name(jackClient),
-                        result);
-        return;
-      }
-      csound->SetExternalMidiInOpenCallback(csound, midiDeviceOpen_);
-      csound->SetExternalMidiReadCallback(csound, midiRead_);
-      jackInitialized = true;
-  }
-  ~JackoState()
-  {
-      //int result = 0;           // This does NOTHING!
-  }
-  int close()
-  {
-      csound->Message(csound, Str("BEGAN JackoState::close()...\n"));
-      int result = OK;
-      // Try not to do thread related operations more than once...
-      if (jackInitialized) {
-        jackInitialized = false;
-        jackActive = false;
-        result = jack_deactivate(jackClient);
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = audioInPorts.begin();
-             it != audioInPorts.end();
-             ++it) {
-          result = jack_port_unregister(jackClient, it->second);
+        CSOUND *csound;
+        const char *serverName;
+        const char *clientName;
+        jack_client_t *jackClient;
+        std::atomic<bool> jacko_is_driving;
+        std::atomic<bool> jackActive;
+        jack_nframes_t csoundFramesPerTick;
+        jack_nframes_t jackFramesPerTick;
+        jack_nframes_t csoundFramesPerSecond;
+        jack_nframes_t jackFramesPerSecond;
+        jack_nframes_t jackFrameTime;
+        std::map<std::string, jack_port_t *> audioInPorts;
+        std::map<std::string, jack_port_t *> audioOutPorts;
+        std::map<std::string, jack_port_t *> midiInPorts;
+        std::map<std::string, jack_port_t *> midiOutPorts;
+        std::list<unsigned char> midiInputQueue;
+        jack_position_t jack_position;
+    pthread_t closeThread;
+        pthread_mutex_t csoundPerformanceThreadConditionMutex;
+    pthread_mutexattr_t csoundPerformanceThreadConditionMutexAttribute;
+        pthread_cond_t csoundPerformanceThreadCondition;
+        JackoState(CSOUND *csound_, const char *serverName_, const char *clientName_) :
+                csound(csound_),
+                serverName(serverName_),
+                clientName(clientName_),
+                jackActive(false),
+                jacko_is_driving(false)
+        {
+                int result = 0;
+                csound = csound_;
+                csoundFramesPerTick = csound->GetKsmps(csound);
+                csoundFramesPerSecond = csound->GetSr(csound);
+        pthread_mutexattr_init(&csoundPerformanceThreadConditionMutexAttribute);
+        pthread_mutexattr_settype(&csoundPerformanceThreadConditionMutexAttribute, PTHREAD_MUTEX_RECURSIVE);
+                result |= pthread_mutex_init(&csoundPerformanceThreadConditionMutex, &csoundPerformanceThreadConditionMutexAttribute);
+                result |= pthread_cond_init(&csoundPerformanceThreadCondition, 0);
+                std::memset(&jack_position, 0, sizeof(jack_position_t));
+                jack_options_t jack_options = (jack_options_t)(JackServerName |
+                                              JackNoStartServer |
+                                              JackUseExactName);
+                jack_status_t status = jack_status_t(0);
+                jackClient = jack_client_open(clientName,
+                                              jack_options,
+                                              &status,
+                                              serverName);
+                if (!jackClient) {
+                        csound->Message(csound, Str("Could not create Jack client \"%s\" -- "
+                                                    "is Jack server \"%s\" running? Status: %d\n"),
+                                        clientName,
+                                        serverName,
+                                        status);
+                        csound->LongJmp(csound, 1);
+                } else {
+                        csound->Message(csound,
+                                        Str("Created Jack client \"%s\" for Jack server \"%s\".\n"),
+                                        clientName, serverName);
+                }
+                jackFramesPerTick = jack_get_buffer_size(jackClient);
+                if (csoundFramesPerTick != jackFramesPerTick) {
+                        csound->Message(csound,
+                                        Str("Jack buffer size %d != Csound ksmps %d, exiting...\n"),
+                                        jackFramesPerTick,
+                                        csoundFramesPerTick);
+                        csound->LongJmp(csound, 1);
+                }
+                jackFramesPerSecond = jack_get_sample_rate(jackClient);
+                if (csoundFramesPerSecond != jackFramesPerSecond) {
+                        csound->Message(csound,
+                                        Str("Jack sampling rate %d != Csound sr %d, exiting...\n"),
+                                        jackFramesPerSecond,
+                                        csoundFramesPerSecond);
+                        csound->LongJmp(csound, 1);
+                }
+                csound->SetExternalMidiInOpenCallback(csound, midiDeviceOpen_);
+                csound->SetExternalMidiReadCallback(csound, midiRead_);
+                csound->RegisterSenseEventCallback(csound, SenseEventCallback_, this);
+                result |= jack_set_process_callback(jackClient, JackProcessCallback_, this);
+                result |= jack_activate(jackClient);
+                if (!result) {
+                        csound->Message(csound,
+                                        Str("Activated Jack client \"%s\".\n"),
+                                        jack_get_client_name(jackClient));
+                } else {
+                        csound->Message(csound,
+                                        Str("Failed to activate Jack client \"%s\": status %d.\n"),
+                                        jack_get_client_name(jackClient),
+                                        result);
+                        return;
+                }
+                //jackInitialized = true;
         }
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = audioOutPorts.begin();
-             it != audioOutPorts.end();
-             ++it) {
-          result = jack_port_unregister(jackClient, it->second);
+        ~JackoState()
+        {
+                //int result = 0;           // This does NOTHING!
         }
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = midiInPorts.begin();
-             it != midiInPorts.end();
-             ++it) {
-          result = jack_port_unregister(jackClient, it->second);
+        int SenseEventCallback()
+        {
+                int result = 0;
+                // Here we must wait once and only once, in order to put
+                // the original Csound processing thread to sleep --
+                // but we must NOT put the Jack processing callback
+                // to sleep when it comes here!
+                if (jacko_is_driving == false) {
+                        // While Jack is processing, wait here.
+                        // The Jack process callback will then call csoundPerformKsmps
+                        // until the Csound jacko_is_driving is complete.
+                        csound->Message(csound, Str("Jacko is now driving Csound performance...\n"));
+                        result |= pthread_mutex_lock(&csoundPerformanceThreadConditionMutex);
+            jacko_is_driving = true;
+                        while (jacko_is_driving == true) {
+                                result |= pthread_cond_wait(&csoundPerformanceThreadCondition, &csoundPerformanceThreadConditionMutex);
+                        }
+                        result |= pthread_mutex_unlock(&csoundPerformanceThreadConditionMutex);
+                        csound->Message(csound, Str("Jacko has quit driving Csound performance.\n"));
+            return 1;
+                }
+                return 0;
         }
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = midiOutPorts.begin();
-             it != midiOutPorts.end();
-             ++it) {
-          result = jack_port_unregister(jackClient, it->second);
+        int JackProcessCallback(jack_nframes_t frames)
+        {
+        if (jacko_is_driving == false) {
+            return 0;
         }
-        result |= jack_client_close(jackClient);
-        result |= pthread_cond_destroy(&csoundCondition);
-        result |= pthread_cond_destroy(&closeCondition);
-        result |= pthread_mutex_destroy(&conditionMutex);
-        audioOutPorts.clear();
-        audioInPorts.clear();
-        midiInPorts.clear();
-        midiOutPorts.clear();
-      }
-      csound->Message(csound, Str("ENDED JackoState::close().\n"));
-      return result;
-  }
-  int processJack(jack_nframes_t frames)
-  {
-      // We must call PerformKsmps here ONLY after the original
-      // Csound performance thread is waiting on its condition.
-      int result = 0;
-      jackFrameTime = jack_last_frame_time(jackClient);
-      if (jackActive && !csoundActive) {
-        // Enqueue any MIDI messages pending in input ports.
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = midiInPorts.begin();
-             it != midiInPorts.end();
-             ++it) {
-          jack_port_t *midiinport = it->second;
-          void *portbuffer = jack_port_get_buffer(midiinport, jackFramesPerTick);
-          if (portbuffer) {
-            jack_nframes_t eventN = jack_midi_get_event_count(portbuffer);
-            for (jack_nframes_t eventI = 0; eventI < eventN; ++eventI) {
-              jack_midi_event_t event;
-              int result = jack_midi_event_get(&event, portbuffer, eventI);
-              if (result == 0) {
-                for (size_t i = 0; i < event.size; ++i) {
-                  midiInputQueue.push_back(event.buffer[i]);
+                // We must call PerformKsmps here ONLY after the original
+                // Csound jacko_is_driving thread is waiting on its condition.
+                int finished = 0;
+                jackFrameTime = jack_last_frame_time(jackClient);
+                if (jacko_is_driving == true) {
+                        // Enqueue any MIDI messages pending in input ports.
+                        for (std::map<std::string, jack_port_t *>
+                                ::iterator it = midiInPorts.begin();
+                                it != midiInPorts.end();
+                                ++it) {
+                                jack_port_t *midiinport = it->second;
+                                void *portbuffer = jack_port_get_buffer(midiinport, jackFramesPerTick);
+                                if (portbuffer) {
+                                        jack_nframes_t eventN = jack_midi_get_event_count(portbuffer);
+                                        for (jack_nframes_t eventI = 0; eventI < eventN; ++eventI) {
+                                                jack_midi_event_t event;
+                                                int result = jack_midi_event_get(&event, portbuffer, eventI);
+                                                if (result == 0) {
+                                                        for (size_t i = 0; i < event.size; ++i) {
+                                                                midiInputQueue.push_back(event.buffer[i]);
+                                                        }
+                                                }
+                                        }
+                                }
+                        }
+                        // Clear MIDI output buffers.
+                        for (std::map<std::string, jack_port_t *>
+                                ::iterator it = midiOutPorts.begin();
+                                it != midiOutPorts.end();
+                                ++it) {
+                                void *buffer = jack_port_get_buffer(it->second, jackFramesPerTick);
+                                jack_midi_clear_buffer(buffer);
+                        }
+                        finished = csound->PerformKsmps(csound);
+                        // We break here when the Csound performace is complete, and close
+            // the Jack connection in a separate thread.
+                        if (finished /* && jackActive */) {
+                                csound->Message(csound, Str("Jacko performance finished.\n"));
+                                jacko_is_driving = false;
+                                // Create a thread to run the close routine.
+                                finished |= pthread_create(&closeThread, 0, &JackoState::closeThreadRoutine_, this);
+                        }
                 }
-              }
-            }
-          }
+                return finished;
         }
-        // Clear MIDI output buffers.
-        for (std::map<std::string, jack_port_t *>
-               ::iterator it = midiOutPorts.begin();
-             it != midiOutPorts.end();
-             ++it) {
-          void *buffer = jack_port_get_buffer(it->second, jackFramesPerTick);
-          jack_midi_clear_buffer(buffer);
+        int close()
+        {
+                csound->Message(csound, Str("BEGAN JackoState::close()...\n"));
+                int result = OK;
+                // Try not to do thread related operations more than once...
+                result = jack_deactivate(jackClient);
+                csound->Message(csound, Str("Jack client deactivated.\n"));
+                // Jack documentation says deactivating the client does the following also:
+                for (std::map<std::string, jack_port_t *>
+                       ::iterator it = audioInPorts.begin();
+                     it != audioInPorts.end();
+                     ++it) {
+                  result = jack_port_unregister(jackClient, it->second);
+                }
+                for (std::map<std::string, jack_port_t *>
+                       ::iterator it = audioOutPorts.begin();
+                     it != audioOutPorts.end();
+                     ++it) {
+                  result = jack_port_unregister(jackClient, it->second);
+                }
+                for (std::map<std::string, jack_port_t *>
+                       ::iterator it = midiInPorts.begin();
+                     it != midiInPorts.end();
+                     ++it) {
+                  result = jack_port_unregister(jackClient, it->second);
+                }
+                for (std::map<std::string, jack_port_t *>
+                       ::iterator it = midiOutPorts.begin();
+                     it != midiOutPorts.end();
+                     ++it) {
+                  result = jack_port_unregister(jackClient, it->second);
+                }
+                csound->Message(csound, Str("Jack ports unregistered.\n"));
+                result |= jack_client_close(jackClient);
+                //csound->Message(csound, Str("Jack client closed.\n"));
+        pthread_cond_signal(&csoundPerformanceThreadCondition);
+                result |= pthread_cond_destroy(&csoundPerformanceThreadCondition);
+                result |= pthread_mutex_unlock(&csoundPerformanceThreadConditionMutex);
+                result |= pthread_mutex_destroy(&csoundPerformanceThreadConditionMutex);
+                audioOutPorts.clear();
+                audioInPorts.clear();
+                midiInPorts.clear();
+                midiOutPorts.clear();
+                csound->Message(csound, Str("ENDED JackoState::close().\n"));
+                return result;
+        }
+        void *closeThreadRoutine()
+        {
+                int result = 0;
+                close();
+                void *result_ = 0;
+                memcpy(&result_, &result, std::min(sizeof(result), sizeof(result_)));
+                return result_;
+        }
+        static void *closeThreadRoutine_(void *userdata)
+        {
+                return ((JackoState *)userdata)->closeThreadRoutine();
+        }
+        void startTransport()
+        {
+                midiInputQueue.clear();
+                jack_transport_start(jackClient);
         }
-        result = csound->PerformKsmps(csound);
-        // We break here when the Csound performance is complete,
-        // and signal the original Csound performance thread to continue.
-        if (result && jackActive) {
-          csoundActive = true;
-          jackActive = false;
-          pthread_mutex_lock(&conditionMutex);
-          pthread_cond_signal(&csoundCondition);
-          pthread_mutex_unlock(&conditionMutex);
-          return result;
+        void stopTransport()
+        {
+                jack_transport_stop(jackClient);
+        }
+        int positionTransport(double timeSeconds)
+        {
+                int result = OK;
+                jack_position.frame_time = timeSeconds;
+                midiInputQueue.clear();
+                result = jack_transport_reposition(jackClient, &jack_position);
+                return result;
+        }
+        /**
+         * Return a MIDI output buffer,
+         * clearing it if not yet cleared for this tick.
+         */
+        jack_midi_data_t *getMidiOutBuffer(jack_port_t *csoundPort)
+        {
+                jack_midi_data_t *buffer =
+                    (jack_midi_data_t *)jack_port_get_buffer(csoundPort, csoundFramesPerTick);
+                return buffer;
         }
-      }
-      return result;
-  }
-  int processCsound()
-  {
-      int result = 0;
-      // Here we must wait once and only once, in order to put
-      // the original Csound processing thread to sleep --
-      // but we must NOT put the Jack processing callback
-      // to sleep when it comes here!
-      if (jackActive && csoundActive) {
-        csoundActive = false;
-        // While Jack is processing, wait here.
-        // The Jack process callback will then call csoundPerformKsmps
-        // until the Csound performance is complete.
-        result |= pthread_mutex_lock(&conditionMutex);
-        result |= pthread_cond_wait(&csoundCondition, &conditionMutex);
-        result |= pthread_mutex_unlock(&conditionMutex);
-      }
-      if (jackActive) {
-        return 1;
-      } else {
-        // Then, when the Csound performance is complete,
-        // we signal the close routine condition so that
-        // Jack can be shut down and cleaned up in a separate
-        // thread. Doing this inside the Jack process callback
-        // takes too long and may cause other problems.
-        result = pthread_mutex_lock(&conditionMutex);
-        result |= pthread_cond_signal(&closeCondition);
-        result |= pthread_mutex_unlock(&conditionMutex);
-        return result;
-      }
-  }
-  void *closeRoutine()
-  {
-      int result = 0;
-      // Wait until signaled to actually shut down the Jack client.
-      result = pthread_mutex_lock(&conditionMutex);
-      result |= pthread_cond_wait(&closeCondition, &conditionMutex);
-      result |= pthread_mutex_unlock(&conditionMutex);
-      close();
-      void *result_ = 0;
-      memcpy(&result_, &result, std::min(sizeof(result), sizeof(result_)));
-      return result_;
-  }
-  static void *closeRoutine_(void *userdata)
-  {
-      return ((JackoState *)userdata)->closeRoutine();
-  }
-  void startTransport()
-  {
-      midiInputQueue.clear();
-      jack_transport_start(jackClient);
-  }
-  void stopTransport()
-  {
-      jack_transport_stop(jackClient);
-  }
-  int positionTransport(double timeSeconds)
-  {
-      int result = OK;
-      jack_position.frame_time = timeSeconds;
-      midiInputQueue.clear();
-      result = jack_transport_reposition(jackClient, &jack_position);
-      return result;
-  }
-  /**
-   * Return a MIDI output buffer,
-   * clearing it if not yet cleared for this tick.
-   */
-  jack_midi_data_t *getMidiOutBuffer(jack_port_t *csoundPort)
-  {
-      jack_midi_data_t *buffer =
-        (jack_midi_data_t *)jack_port_get_buffer(csoundPort, csoundFramesPerTick);
-      return buffer;
-  }
 };
 
 static int JackProcessCallback_(jack_nframes_t frames,
                                 void *data)
 {
-    return ((JackoState *)data)->processJack(frames);
+        return ((JackoState *)data)->JackProcessCallback(frames);
 }
 
-static void SenseEventCallback_(CSOUND * csound,
+static void SenseEventCallback_(CSOUND *csound,
                                 void *data)
 {
-    ((JackoState *)data)->processCsound();
+        ((JackoState *)data)->SenseEventCallback();
 }
 
 static int midiDeviceOpen_(CSOUND *csound,
                            void **userData,
                            const char *devName)
 {
-    *userData = jackoState;
-    return 0;
+        JackoState *jackoState;
+        csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+        *userData = jackoState;
+        return 0;
 }
 
 /**
@@ -782,837 +795,862 @@ static int midiRead_(CSOUND *csound,
                      unsigned char *midiData,
                      int midiN)
 {
-    JackoState *jackoState_ = (JackoState *)userData;
-    int midiI = 0;
-    while (!jackoState_->midiInputQueue.empty() && midiI < midiN) {
-      midiData[midiI] = jackoState_->midiInputQueue.front();
-      jackoState_->midiInputQueue.pop_front();
-      midiI++;
-    }
-    //if (midiI) {
-    //  csound->Message(csound, "midiRead_: %d bytes.\n", midiI);
-    //}
-    return midiI;
+        JackoState *jackoState_ = (JackoState *)userData;
+        int midiI = 0;
+        while (!jackoState_->midiInputQueue.empty() && midiI < midiN) {
+                midiData[midiI] = jackoState_->midiInputQueue.front();
+                jackoState_->midiInputQueue.pop_front();
+                midiI++;
+        }
+        //if (midiI) {
+        //  csound->Message(csound, "midiRead_: %d bytes.\n", midiI);
+        //}
+        return midiI;
 }
 
 struct JackoInit : public OpcodeBase<JackoInit>
 {
-  STRINGDAT *ServerName;
-  STRINGDAT *SclientName;
-  const char *serverName;
-  const char *clientName;
-  int init(CSOUND *csound)
-  {
-    serverName = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     ServerName->data,
-                                     (char *)"default",
-                                     (int) 1);
-    clientName = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     SclientName->data,
-                                     (char *)"csound",
-                                     (int) 1);
-    jackoState = new JackoState(csound, serverName, clientName);
-    return OK;
-  }
+        STRINGDAT *ServerName;
+        STRINGDAT *SclientName;
+        const char *serverName;
+        const char *clientName;
+        int init(CSOUND *csound)
+        {
+                serverName = csound->strarg2name(csound,
+                                                 (char *) 0,
+                                                 ServerName->data,
+                                                 (char *)"default",
+                                                 (int) 1);
+                clientName = csound->strarg2name(csound,
+                                                 (char *) 0,
+                                                 SclientName->data,
+                                                 (char *)"csound",
+                                                 (int) 1);
+                JackoState *jackoState = new JackoState(csound, serverName, clientName);
+                int result = csound::CreateGlobalPointer(csound, "jackoState", jackoState);
+                return OK;
+        }
 };
 
 struct JackoInfo : public OpcodeBase<JackoInfo>
 {
-  int init(CSOUND *csound)
-  {
-    log(csound, "Jack information for client: %s\n", jackoState->clientName);
-    log(csound, "  Daemon name:               %s\n", jackoState->serverName);
-    log(csound, "  Frames per second:         %d\n",
-        jackoState->jackFramesPerSecond);
-    log(csound, "  Frames per period:         %d\n",
-        jackoState->jackFramesPerTick);
-    const char **ports = jack_get_ports(jackoState->jackClient, 0, 0, 0);
-    if (ports) {
-      log(csound, "  Ports and connections:\n");
-      for (size_t i = 0; ports[i]; ++i) {
-        const char *PortName = ports[i];
-        jack_port_t *port = jack_port_by_name(jackoState->jackClient, PortName);
-        int flags = jack_port_flags(port);
-        const char *type = jack_port_type(port);
-        const char *portType = "      ";
-        if ((flags & JackPortIsOutput) == JackPortIsOutput) {
-          portType = "Output";
-        } else if ((flags & JackPortIsInput) == JackPortIsInput) {
-          portType = "Input ";
-        }
-        log(csound, "    %3d:   %s   %-25s  %s\n",
-            (i+1), portType, type, (PortName ? PortName : "(no name)"));
-        char alias1[0x100];
-        char alias2[0x100];
-        char * const aliases[2] = {alias1, alias2};
-        size_t aliasN = jack_port_get_aliases(port, aliases);
-        for (size_t aliasI = 0; aliasI < aliasN; ++aliasI) {
-          log(csound, "           Alias: %s\n", aliases[aliasI]);
-        }
-        const char **connections =
-          jack_port_get_all_connections(jackoState->jackClient, port);
-        if (connections) {
-          for (size_t j = 0; connections[j]; ++j) {
-            if ((jack_port_flags(port) & JackPortIsOutput) == JackPortIsOutput) {
-              log(csound, "           Sends to:                           >> %s\n",
-                  connections[j]);
-            } else {
-              log(csound, "           Receives from:                      << %s\n",
-                  connections[j]);
-            }
-          }
+        int init(CSOUND *csound)
+        {
+                JackoState *jackoState =  0;
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                log(csound, "Jack information for client: %s\n", jackoState->clientName);
+                log(csound, "  Daemon name:               %s\n", jackoState->serverName);
+                log(csound, "  Frames per second:         %d\n",
+                    jackoState->jackFramesPerSecond);
+                log(csound, "  Frames per period:         %d\n",
+                    jackoState->jackFramesPerTick);
+                const char **ports = jack_get_ports(jackoState->jackClient, 0, 0, 0);
+                if (ports) {
+                        log(csound, "  Ports and connections:\n");
+                        for (size_t i = 0; ports[i]; ++i) {
+                                const char *PortName = ports[i];
+                                jack_port_t *port = jack_port_by_name(jackoState->jackClient, PortName);
+                                int flags = jack_port_flags(port);
+                                const char *type = jack_port_type(port);
+                                const char *portType = "      ";
+                                if ((flags & JackPortIsOutput) == JackPortIsOutput) {
+                                        portType = "Output";
+                                } else if ((flags & JackPortIsInput) == JackPortIsInput) {
+                                        portType = "Input ";
+                                }
+                                log(csound, "    %3d:   %s   %-25s  %s\n",
+                                    (i+1), portType, type, (PortName ? PortName : "(no name)"));
+                                char alias1[0x100];
+                                char alias2[0x100];
+                                char *const aliases[2] = {alias1, alias2};
+                                size_t aliasN = jack_port_get_aliases(port, aliases);
+                                for (size_t aliasI = 0; aliasI < aliasN; ++aliasI) {
+                                        log(csound, "           Alias: %s\n", aliases[aliasI]);
+                                }
+                                const char **connections =
+                                    jack_port_get_all_connections(jackoState->jackClient, port);
+                                if (connections) {
+                                        for (size_t j = 0; connections[j]; ++j) {
+                                                if ((jack_port_flags(port) & JackPortIsOutput) == JackPortIsOutput) {
+                                                        log(csound, "           Sends to:                           >> %s\n",
+                                                            connections[j]);
+                                                } else {
+                                                        log(csound, "           Receives from:                      << %s\n",
+                                                            connections[j]);
+                                                }
+                                        }
+                                }
+                                std::free(connections);
+                        }
+                        std::free(ports);
+                }
+                return OK;
         }
-        std::free(connections);
-      }
-      std::free(ports);
-    }
-    return OK;
-  }
 };
 
 struct JackoFreewheel : public OpcodeBase<JackoFreewheel>
 {
-  MYFLT *ifreewheel;
-  int init(CSOUND *csound)
-  {
-
-    int freewheel = (int) *ifreewheel;
-    int result = jack_set_freewheel(jackoState->jackClient, freewheel);
-    if (result) {
-      warn(csound,
-           Str("Failed to set Jack freewheeling mode to \"%s\": error %d.\n"),
-           (freewheel ? "on" : "off"), result);
-    } else {
-      log(csound, Str("Set Jack freewheeling mode to \"%s\".\n"),
-          (freewheel ? "on" : "off"));
-    }
-    return result;
-  }
+        MYFLT *ifreewheel;
+        int init(CSOUND *csound)
+        {
+                JackoState *jackoState =  0;
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int freewheel = (int) *ifreewheel;
+                int result = jack_set_freewheel(jackoState->jackClient, freewheel);
+                if (result) {
+                        warn(csound,
+                             Str("Failed to set Jack freewheeling mode to \"%s\": error %d.\n"),
+                             (freewheel ? "on" : "off"), result);
+                } else {
+                        log(csound, Str("Set Jack freewheeling mode to \"%s\".\n"),
+                            (freewheel ? "on" : "off"));
+                }
+                return result;
+        }
 };
 
 struct JackoOn : public OpcodeBase<JackoOn>
 {
-  MYFLT *jon;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      jackoState->jackActive = (char) *jon;
-      log(csound, Str("Turned Jack connections \"%s\".\n"),
-          (jackoState->jackActive ? "on" : "off"));
-      return result;
-  }
+        MYFLT *jon;
+        int init(CSOUND *csound)
+        {
+                int result = OK;
+                JackoState *jackoState =  0;
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                jackoState->jackActive = (char) *jon;
+                log(csound, Str("Turned Jack connections \"%s\".\n"),
+                    (jackoState->jackActive ? "on" : "off"));
+                return result;
+        }
 };
 
 struct JackoAudioInConnect : public OpcodeBase<JackoAudioInConnect>
 {
-  // Out.
-  // Ins.
-  STRINGDAT *SexternalPortName;
-  STRINGDAT *ScsoundPortName;
-  // State.
-  const char *csoundPortName;
-  char csoundFullPortName[0x100];
-  const char *externalPortName;
-  const char *clientName;
-  jack_port_t *csoundPort;
-  jack_port_t *externalPort;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      clientName = jack_get_client_name(jackoState->jackClient);
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
-      externalPortName = csound->strarg2name(csound,
-                                             (char *) 0,
-                                             SexternalPortName->data,
-                                             (char *)"csound",
-                                             (int) 1);
-      csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
-      if (!csoundPort) {
-        csoundPort = jack_port_register(jackoState->jackClient,
-                                        csoundPortName, JACK_DEFAULT_AUDIO_TYPE,
-                                        JackPortIsInput, 0);
-        if (csoundPort) {
-          log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
-        } else {
-          warn(csound, Str("Could not create Jack port \"%s\".\n"),
-               csoundFullPortName);
+        // Out.
+        // Ins.
+        STRINGDAT *SexternalPortName;
+        STRINGDAT *ScsoundPortName;
+        // State.
+        const char *csoundPortName;
+        char csoundFullPortName[0x100];
+        const char *externalPortName;
+        const char *clientName;
+        jack_port_t *csoundPort;
+        jack_port_t *externalPort;
+        int init(CSOUND *csound)
+        {
+                JackoState *jackoState =  0;
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                clientName = jack_get_client_name(jackoState->jackClient);
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
+                externalPortName = csound->strarg2name(csound,
+                                                       (char *) 0,
+                                                       SexternalPortName->data,
+                                                       (char *)"csound",
+                                                       (int) 1);
+                csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
+                if (!csoundPort) {
+                        csoundPort = jack_port_register(jackoState->jackClient,
+                                                        csoundPortName, JACK_DEFAULT_AUDIO_TYPE,
+                                                        JackPortIsInput, 0);
+                        if (csoundPort) {
+                                log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
+                        } else {
+                                warn(csound, Str("Could not create Jack port \"%s\".\n"),
+                                     csoundFullPortName);
+                        }
+                }
+                externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
+                result = jack_connect(jackoState->jackClient, jack_port_name(externalPort),
+                                      jack_port_name(csoundPort));
+                if (result == EEXIST) {
+                        log(csound,
+                            "Connection from \"%s\" to \"%s\" already exists.\n",
+                            externalPortName,
+                            csoundFullPortName);
+                } else if (result) {
+                        warn(csound,
+                             Str("Could not create Jack connection from \"%s\" to \"%s\": "
+                                 "status %d.\n"),
+                             externalPortName,
+                             csoundFullPortName,
+                             result);
+                        return result;
+                } else {
+                        log(csound,
+                            "Created Jack connection from \"%s\" to \"%s\".\n",
+                            externalPortName,
+                            csoundFullPortName);
+                }
+                jackoState->audioInPorts[csoundPortName] = csoundPort;
+                return result;
         }
-      }
-      externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
-      result = jack_connect(jackoState->jackClient, jack_port_name(externalPort),
-                            jack_port_name(csoundPort));
-      if (result == EEXIST) {
-        log(csound,
-            "Connection from \"%s\" to \"%s\" already exists.\n",
-            externalPortName,
-            csoundFullPortName);
-      } else if (result) {
-        warn(csound,
-             Str("Could not create Jack connection from \"%s\" to \"%s\": "
-                 "status %d.\n"),
-             externalPortName,
-             csoundFullPortName,
-             result);
-        return result;
-      } else {
-        log(csound,
-            "Created Jack connection from \"%s\" to \"%s\".\n",
-            externalPortName,
-            csoundFullPortName);
-      }
-      jackoState->audioInPorts[csoundPortName] = csoundPort;
-      return result;
-  }
 };
 
 struct JackoAudioIn : public OpcodeBase<JackoAudioIn>
 {
-  // Out.
-  MYFLT *asignal;
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  // State.
-  const char *csoundPortName;
-  jack_port_t *csoundPort;
-  jack_nframes_t csoundFramesPerTick;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      csoundFramesPerTick = jackoState->csoundFramesPerTick;
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      csoundPort = jackoState->audioInPorts[csoundPortName];
-      return result;
-  }
-  int audio(CSOUND *csound)
-  {
-      jack_default_audio_sample_t *buffer =
-        (jack_default_audio_sample_t *)jack_port_get_buffer(csoundPort,
-                                                            csoundFramesPerTick);
-      for (size_t frame = 0; frame < csoundFramesPerTick; ++frame) {
-        asignal[frame] = buffer[frame];
-      }
-      return OK;
-  }
+        // Out.
+        MYFLT *asignal;
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        // State.
+        const char *csoundPortName;
+        jack_port_t *csoundPort;
+        jack_nframes_t csoundFramesPerTick;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                csoundFramesPerTick = jackoState->csoundFramesPerTick;
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                csoundPort = jackoState->audioInPorts[csoundPortName];
+                return result;
+        }
+        int audio(CSOUND *csound)
+        {
+                jack_default_audio_sample_t *buffer =
+                    (jack_default_audio_sample_t *)jack_port_get_buffer(csoundPort,
+                            csoundFramesPerTick);
+                for (size_t frame = 0; frame < csoundFramesPerTick; ++frame) {
+                        asignal[frame] = buffer[frame];
+                }
+                return OK;
+        }
 };
 
 struct JackoAudioOutConnect : public OpcodeBase<JackoAudioOutConnect>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  STRINGDAT *SexternalPortName;
-  // State.
-  const char *csoundPortName;
-  char csoundFullPortName[0x100];
-  const char *externalPortName;
-  const char *clientName;
-  size_t frames;
-  jack_port_t *csoundPort;
-  jack_port_t *externalPort;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      frames = opds.insdshead->ksmps;
-      clientName = jack_get_client_name(jackoState->jackClient);
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
-      externalPortName = csound->strarg2name(csound,
-                                             (char *) 0,
-                                             SexternalPortName->data,
-                                             (char *)"csound",
-                                             (int) 1);
-      csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
-      if (!csoundPort) {
-        csoundPort = jack_port_register(jackoState->jackClient,
-                                        csoundPortName, JACK_DEFAULT_AUDIO_TYPE,
-                                        JackPortIsOutput, 0);
-        if (csoundPort) {
-          log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
-        } else {
-          warn(csound, Str("Could not create Jack port \"%s\".\n"),
-               csoundFullPortName);
+        // No outs.
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        STRINGDAT *SexternalPortName;
+        // State.
+        const char *csoundPortName;
+        char csoundFullPortName[0x100];
+        const char *externalPortName;
+        const char *clientName;
+        size_t frames;
+        jack_port_t *csoundPort;
+        jack_port_t *externalPort;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                frames = opds.insdshead->ksmps;
+                clientName = jack_get_client_name(jackoState->jackClient);
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
+                externalPortName = csound->strarg2name(csound,
+                                                       (char *) 0,
+                                                       SexternalPortName->data,
+                                                       (char *)"csound",
+                                                       (int) 1);
+                csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
+                if (!csoundPort) {
+                        csoundPort = jack_port_register(jackoState->jackClient,
+                                                        csoundPortName, JACK_DEFAULT_AUDIO_TYPE,
+                                                        JackPortIsOutput, 0);
+                        if (csoundPort) {
+                                log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
+                        } else {
+                                warn(csound, Str("Could not create Jack port \"%s\".\n"),
+                                     csoundFullPortName);
+                        }
+                }
+                externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
+                result = jack_connect(jackoState->jackClient,
+                                      jack_port_name(csoundPort),
+                                      jack_port_name(externalPort));
+                if (result == EEXIST) {
+                        log(csound,
+                            "Connection from \"%s\" to \"%s\" already exists.\n",
+                            csoundFullPortName,
+                            externalPortName);
+                } else if (result) {
+                        warn(csound,
+                             Str("Could not create Jack connection from \"%s\" to \"%s\": "
+                                 "status %d.\n"),
+                             csoundFullPortName,
+                             externalPortName,
+                             result);
+                        return result;
+                } else {
+                        log(csound,
+                            "Created Jack connection from \"%s\" to \"%s\".\n",
+                            csoundFullPortName,
+                            externalPortName);
+                }
+                jackoState->audioOutPorts[csoundPortName] = csoundPort;
+                return result;
         }
-      }
-      externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
-      result = jack_connect(jackoState->jackClient,
-                            jack_port_name(csoundPort),
-                            jack_port_name(externalPort));
-      if (result == EEXIST) {
-        log(csound,
-            "Connection from \"%s\" to \"%s\" already exists.\n",
-            csoundFullPortName,
-            externalPortName);
-      } else if (result) {
-        warn(csound,
-             Str("Could not create Jack connection from \"%s\" to \"%s\": "
-                 "status %d.\n"),
-             csoundFullPortName,
-             externalPortName,
-             result);
-        return result;
-      } else {
-        log(csound,
-            "Created Jack connection from \"%s\" to \"%s\".\n",
-            csoundFullPortName,
-            externalPortName);
-      }
-      jackoState->audioOutPorts[csoundPortName] = csoundPort;
-      return result;
-  }
 };
 
 struct JackoAudioOut : public OpcodeBase<JackoAudioOut>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  MYFLT *asignal;
-  // State.
-  const char *csoundPortName;
-  jack_port_t *csoundPort;
-  jack_nframes_t csoundFramesPerTick;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      csoundFramesPerTick = jackoState->csoundFramesPerTick;
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      csoundPort = jackoState->audioOutPorts[csoundPortName];
-      return result;
-  }
-  int audio(CSOUND *csound)
-  {
-      jack_default_audio_sample_t *buffer =
-        (jack_default_audio_sample_t *)jack_port_get_buffer(csoundPort,
-                                                            csoundFramesPerTick);
-      for (size_t frame = 0; frame < csoundFramesPerTick; ++frame) {
-        buffer[frame] = asignal[frame];
-      }
-      return OK;
-  }
+        // No outs.
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        MYFLT *asignal;
+        // State.
+        const char *csoundPortName;
+        jack_port_t *csoundPort;
+        jack_nframes_t csoundFramesPerTick;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                csoundFramesPerTick = jackoState->csoundFramesPerTick;
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                csoundPort = jackoState->audioOutPorts[csoundPortName];
+                return result;
+        }
+        int audio(CSOUND *csound)
+        {
+                jack_default_audio_sample_t *buffer =
+                    (jack_default_audio_sample_t *)jack_port_get_buffer(csoundPort,
+                            csoundFramesPerTick);
+                for (size_t frame = 0; frame < csoundFramesPerTick; ++frame) {
+                        buffer[frame] = asignal[frame];
+                }
+                return OK;
+        }
 };
 
 struct JackoMidiInConnect : public OpcodeBase<JackoMidiInConnect>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *SexternalPortName;
-  STRINGDAT *ScsoundPortName;
-  // State.
-  const char *csoundPortName;
-  char csoundFullPortName[0x100];
-  const char *externalPortName;
-  const char *clientName;
-  size_t frames;
-  jack_port_t *csoundPort;
-  jack_port_t *externalPort;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      frames = opds.insdshead->ksmps;
-      clientName = jack_get_client_name(jackoState->jackClient);
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
-      externalPortName = csound->strarg2name(csound,
-                                             (char *) 0,
-                                             SexternalPortName->data,
-                                             (char *)"csound",
-                                             (int) 1);
-      csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
-      if (!csoundPort) {
-        csoundPort = jack_port_register(jackoState->jackClient, csoundPortName,
-                                        JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
-        if (csoundPort) {
-          log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
-        } else {
-          warn(csound, Str("Could not create Jack port \"%s\".\n"),
-               csoundFullPortName);
+        // No outs.
+        // Ins.
+        STRINGDAT *SexternalPortName;
+        STRINGDAT *ScsoundPortName;
+        // State.
+        const char *csoundPortName;
+        char csoundFullPortName[0x100];
+        const char *externalPortName;
+        const char *clientName;
+        size_t frames;
+        jack_port_t *csoundPort;
+        jack_port_t *externalPort;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                frames = opds.insdshead->ksmps;
+                clientName = jack_get_client_name(jackoState->jackClient);
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
+                externalPortName = csound->strarg2name(csound,
+                                                       (char *) 0,
+                                                       SexternalPortName->data,
+                                                       (char *)"csound",
+                                                       (int) 1);
+                csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
+                if (!csoundPort) {
+                        csoundPort = jack_port_register(jackoState->jackClient, csoundPortName,
+                                                        JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
+                        if (csoundPort) {
+                                log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
+                        } else {
+                                warn(csound, Str("Could not create Jack port \"%s\".\n"),
+                                     csoundFullPortName);
+                        }
+                }
+                externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
+                result = jack_connect(jackoState->jackClient,
+                                      jack_port_name(externalPort),
+                                      jack_port_name(csoundPort));
+                if (result == EEXIST) {
+                        log(csound,
+                            "Connection from \"%s\" to \"%s\" already exists.\n",
+                            externalPortName,
+                            csoundFullPortName);
+                } else if (result) {
+                        warn(csound,
+                             Str("Could not create Jack connection from \"%s\" to \"%s\": "
+                                 "status %d.\n"),
+                             externalPortName,
+                             csoundFullPortName,
+                             result);
+                        return result;
+                } else {
+                        log(csound,
+                            "Created Jack connection from \"%s\" to \"%s\".\n",
+                            externalPortName,
+                            csoundFullPortName);
+                }
+                jackoState->midiInPorts[csoundPortName] = csoundPort;
+                return result;
         }
-      }
-      externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
-      result = jack_connect(jackoState->jackClient,
-                            jack_port_name(externalPort),
-                            jack_port_name(csoundPort));
-      if (result == EEXIST) {
-        log(csound,
-            "Connection from \"%s\" to \"%s\" already exists.\n",
-            externalPortName,
-            csoundFullPortName);
-      } else if (result) {
-        warn(csound,
-             Str("Could not create Jack connection from \"%s\" to \"%s\": "
-                 "status %d.\n"),
-             externalPortName,
-             csoundFullPortName,
-             result);
-        return result;
-      } else {
-        log(csound,
-            "Created Jack connection from \"%s\" to \"%s\".\n",
-            externalPortName,
-            csoundFullPortName);
-      }
-      jackoState->midiInPorts[csoundPortName] = csoundPort;
-      return result;
-  }
 };
 
 struct JackoMidiOutConnect : public OpcodeBase<JackoMidiOutConnect>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  STRINGDAT *SexternalPortName;
-  // State.
-  const char *csoundPortName;
-  char csoundFullPortName[0x100];
-  const char *externalPortName;
-  const char *clientName;
-  size_t frames;
-  jack_port_t *csoundPort;
-  jack_port_t *externalPort;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      frames = opds.insdshead->ksmps;
-      clientName = jack_get_client_name(jackoState->jackClient);
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
-      externalPortName = csound->strarg2name(csound,
-                                             (char *) 0,
-                                             SexternalPortName->data,
-                                             (char *)"csound",
-                                             (int) 1);
-      csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
-      if (!csoundPort) {
-        csoundPort = jack_port_register(jackoState->jackClient,
-                                        csoundPortName, JACK_DEFAULT_MIDI_TYPE,
-                                        JackPortIsOutput, 0);
-        if (csoundPort) {
-          log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
-        } else {
-          warn(csound, Str("Could not create Jack port \"%s\".\n"),
-               csoundFullPortName);
+        // No outs.
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        STRINGDAT *SexternalPortName;
+        // State.
+        const char *csoundPortName;
+        char csoundFullPortName[0x100];
+        const char *externalPortName;
+        const char *clientName;
+        size_t frames;
+        jack_port_t *csoundPort;
+        jack_port_t *externalPort;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                frames = opds.insdshead->ksmps;
+                clientName = jack_get_client_name(jackoState->jackClient);
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                std::sprintf(csoundFullPortName, "%s:%s", clientName, csoundPortName);
+                externalPortName = csound->strarg2name(csound,
+                                                       (char *) 0,
+                                                       SexternalPortName->data,
+                                                       (char *)"csound",
+                                                       (int) 1);
+                csoundPort = jack_port_by_name(jackoState->jackClient, csoundFullPortName);
+                if (!csoundPort) {
+                        csoundPort = jack_port_register(jackoState->jackClient,
+                                                        csoundPortName, JACK_DEFAULT_MIDI_TYPE,
+                                                        JackPortIsOutput, 0);
+                        if (csoundPort) {
+                                log(csound, "Created Jack port \"%s\".\n", csoundFullPortName);
+                        } else {
+                                warn(csound, Str("Could not create Jack port \"%s\".\n"),
+                                     csoundFullPortName);
+                        }
+                }
+                externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
+                result = jack_connect(jackoState->jackClient, jack_port_name(csoundPort),
+                                      jack_port_name(externalPort));
+                if (result == EEXIST) {
+                        log(csound,
+                            "Connection from \"%s\" to \"%s\" already exists.\n",
+                            csoundFullPortName,
+                            externalPortName);
+                } else if (result) {
+                        warn(csound,
+                             Str("Could not create Jack connection from \"%s\" to \"%s\": "
+                                 "status %d.\n"),
+                             csoundFullPortName,
+                             externalPortName,
+                             result);
+                        return result;
+                } else {
+                        log(csound,
+                            "Created Jack connection from \"%s\" to \"%s\".\n",
+                            csoundFullPortName,
+                            externalPortName);
+                }
+                jackoState->midiOutPorts[csoundPortName] = csoundPort;
+                return result;
         }
-      }
-      externalPort = jack_port_by_name(jackoState->jackClient, externalPortName);
-      result = jack_connect(jackoState->jackClient, jack_port_name(csoundPort),
-                            jack_port_name(externalPort));
-      if (result == EEXIST) {
-        log(csound,
-            "Connection from \"%s\" to \"%s\" already exists.\n",
-            csoundFullPortName,
-            externalPortName);
-      } else if (result) {
-        warn(csound,
-             Str("Could not create Jack connection from \"%s\" to \"%s\": "
-                 "status %d.\n"),
-             csoundFullPortName,
-             externalPortName,
-             result);
-        return result;
-      } else {
-        log(csound,
-            "Created Jack connection from \"%s\" to \"%s\".\n",
-            csoundFullPortName,
-            externalPortName);
-      }
-      jackoState->midiOutPorts[csoundPortName] = csoundPort;
-      return result;
-  }
 };
 
 struct JackoMidiOut : public OpcodeBase<JackoMidiOut>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  MYFLT *kstatus;
-  MYFLT *kchannel;
-  MYFLT *kdata1;
-  MYFLT *kdata2;
-  char status;
-  char channel;
-  char data1;
-  char data2;
-  char priorstatus;
-  char priorchannel;
-  char priordata1;
-  char priordata2;
-  // State.
-  const char *csoundPortName;
-  jack_port_t *csoundPort;
-  jack_nframes_t csoundFramesPerTick;
-  jack_midi_data_t *buffer;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-
-      csoundFramesPerTick = jackoState->csoundFramesPerTick;
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      csoundPort = jackoState->midiOutPorts[csoundPortName];
-      priorstatus = -1;
-      priorchannel = -1;
-      priordata1 = -1;
-      priordata2 = -1;
-      return result;
-  }
-  int kontrol(CSOUND *csound)
-  {
-      int result = OK;
-      status = *kstatus;
-      channel = *kchannel;
-      data1 = *kdata1;
-      data2 = *kdata2;
-      if (status != priorstatus ||
-          channel != priorchannel ||
-          data1 != priordata1 ||
-          data2 != priordata2) {
-        size_t dataSize = 0;
-        if (data2 == -1) {
-          dataSize = 2;
-        } else {
-          dataSize = 3;
+        // No outs.
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        MYFLT *kstatus;
+        MYFLT *kchannel;
+        MYFLT *kdata1;
+        MYFLT *kdata2;
+        char status;
+        char channel;
+        char data1;
+        char data2;
+        char priorstatus;
+        char priorchannel;
+        char priordata1;
+        char priordata2;
+        // State.
+        const char *csoundPortName;
+        jack_port_t *csoundPort;
+        jack_nframes_t csoundFramesPerTick;
+        jack_midi_data_t *buffer;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                csoundFramesPerTick = jackoState->csoundFramesPerTick;
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                csoundPort = jackoState->midiOutPorts[csoundPortName];
+                priorstatus = -1;
+                priorchannel = -1;
+                priordata1 = -1;
+                priordata2 = -1;
+                return result;
         }
-        buffer = jackoState->getMidiOutBuffer(csoundPort);
-        jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, dataSize);
-        data[0] = (status + channel);
-        data[1] = data1;
-        if (data2 != -1) {
-          data[2] = data2;
-          //log(csound, "MIDI:  %3d %3d %3d\n", data[0], data[1], data[2]);
-        } else {
-          //log(csound, "MIDI:  %3d %3d\n", data[0], data[1]);
+        int kontrol(CSOUND *csound)
+        {
+                int result = OK;
+                status = *kstatus;
+                channel = *kchannel;
+                data1 = *kdata1;
+                data2 = *kdata2;
+                if (status != priorstatus ||
+                        channel != priorchannel ||
+                        data1 != priordata1 ||
+                        data2 != priordata2) {
+                        size_t dataSize = 0;
+                        if (data2 == -1) {
+                                dataSize = 2;
+                        } else {
+                                dataSize = 3;
+                        }
+                        buffer = jackoState->getMidiOutBuffer(csoundPort);
+                        jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, dataSize);
+                        data[0] = (status + channel);
+                        data[1] = data1;
+                        if (data2 != -1) {
+                                data[2] = data2;
+                                //log(csound, "MIDI:  %3d %3d %3d\n", data[0], data[1], data[2]);
+                        } else {
+                                //log(csound, "MIDI:  %3d %3d\n", data[0], data[1]);
+                        }
+                }
+                priorstatus = status;
+                priorchannel = channel;
+                priordata1 = data1;
+                priordata2 = data2;
+                return result;
         }
-      }
-      priorstatus = status;
-      priorchannel = channel;
-      priordata1 = data1;
-      priordata2 = data2;
-      return result;
-  }
 };
 
 struct JackoNoteOut : public OpcodeNoteoffBase<JackoNoteOut>
 {
-  // No outs.
-  // Ins.
-  STRINGDAT *ScsoundPortName;
-  MYFLT *ichannel;
-  MYFLT *ikey;
-  MYFLT *ivelocity;
-  char status;
-  char channel;
-  char key;
-  char velocity;
-  // State.
-  const char *csoundPortName;
-  jack_port_t *csoundPort;
-  jack_nframes_t csoundFramesPerTick;
-  jack_midi_data_t *buffer;
-  int init(CSOUND *csound)
-  {
-      int result = OK;
-      csoundFramesPerTick = jackoState->csoundFramesPerTick;
-      csoundPortName = csound->strarg2name(csound,
-                                           (char *)0,
-                                           ScsoundPortName->data,
-                                           (char *)"",
-                                           (int) 1);
-      csoundPort = jackoState->midiOutPorts[csoundPortName];
-      status = 144;
-      channel = (char) *ichannel;
-      key = (char) *ikey;
-      velocity = (char) *ivelocity;
-      buffer = jackoState->getMidiOutBuffer(csoundPort);
-      jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, 3);
-      data[0] = (status + channel);
-      data[1] = key;
-      data[2] = velocity;
-      //log(csound, "noteon:  %3d %3d %3d\n", data[0], data[1], data[2]);
-      return result;
-  }
-  int noteoff(CSOUND *csound)
-  {
-      int result = OK;
-      buffer = jackoState->getMidiOutBuffer(csoundPort);
-      jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, 3);
-      data[0] = (status + channel);
-      data[1] = key;
-      data[2] = 0;
-      //log(csound, "noteoff: %3d %3d %3d\n", data[0], data[1], data[2]);
-      return result;
-  }
+        // No outs.
+        // Ins.
+        STRINGDAT *ScsoundPortName;
+        MYFLT *ichannel;
+        MYFLT *ikey;
+        MYFLT *ivelocity;
+        char status;
+        char channel;
+        char key;
+        char velocity;
+        // State.
+        const char *csoundPortName;
+        jack_port_t *csoundPort;
+        jack_nframes_t csoundFramesPerTick;
+        jack_midi_data_t *buffer;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                int result = OK;
+                csoundFramesPerTick = jackoState->csoundFramesPerTick;
+                csoundPortName = csound->strarg2name(csound,
+                                                     (char *)0,
+                                                     ScsoundPortName->data,
+                                                     (char *)"",
+                                                     (int) 1);
+                csoundPort = jackoState->midiOutPorts[csoundPortName];
+                status = 144;
+                channel = (char) *ichannel;
+                key = (char) *ikey;
+                velocity = (char) *ivelocity;
+                buffer = jackoState->getMidiOutBuffer(csoundPort);
+                jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, 3);
+                data[0] = (status + channel);
+                data[1] = key;
+                data[2] = velocity;
+                //log(csound, "noteon:  %3d %3d %3d\n", data[0], data[1], data[2]);
+                return result;
+        }
+        int noteoff(CSOUND *csound)
+        {
+                int result = OK;
+                buffer = jackoState->getMidiOutBuffer(csoundPort);
+                jack_midi_data_t *data = jack_midi_event_reserve(buffer, 0, 3);
+                data[0] = (status + channel);
+                data[1] = key;
+                data[2] = 0;
+                //log(csound, "noteoff: %3d %3d %3d\n", data[0], data[1], data[2]);
+                return result;
+        }
 };
 
 struct JackoTransport : public OpcodeBase<JackoTransport>
 {
-  // Outs.
-  // Ins.
-  MYFLT *kcommand;
-  MYFLT *Oposition;
-  // State.
-  int command;
-  int priorCommand;
-  double positionSeconds;
-  double priorPositionSeconds;
-  int init(CSOUND *csound)
-  {
-      priorCommand = -1;
-      priorPositionSeconds = 0.0;
-      return kontrol(csound);
-  }
-  int kontrol(CSOUND *csound)
-  {
-      int result = OK;
-      command = int(*kcommand);
-      positionSeconds = double(*Oposition);
-      if (command) {
-        if (command != priorCommand) {
-          priorCommand = command;
-          switch(command) {
-          case 1:
-            result = jackoState->positionTransport(0.0);
-            jackoState->startTransport();
-            log(csound, "Started Jack transport.\n");
-            break;
-        case 2:
-            jackoState->stopTransport();
-            log(csound, "Stopped Jack transport.\n");
-            break;
-        case 3:
-            if (positionSeconds != priorPositionSeconds) {
-              priorPositionSeconds = positionSeconds;
-              result = jackoState->positionTransport(positionSeconds);
-              jackoState->startTransport();
-              if (result) {
-                log(csound, "Failed to start Jack transport at %f seconds with"
-                    " result: %d\n", positionSeconds, result);
-              } else {
-                log(csound, "Started Jack transport at %f seconds.\n",
-                    positionSeconds);
-              }
-            }
-            break;
-         };
+        // Outs.
+        // Ins.
+        MYFLT *kcommand;
+        MYFLT *Oposition;
+        // State.
+        int command;
+        int priorCommand;
+        double positionSeconds;
+        double priorPositionSeconds;
+        JackoState *jackoState;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                priorCommand = -1;
+                priorPositionSeconds = 0.0;
+                return kontrol(csound);
+        }
+        int kontrol(CSOUND *csound)
+        {
+                int result = OK;
+                command = int(*kcommand);
+                positionSeconds = double(*Oposition);
+                if (command) {
+                        if (command != priorCommand) {
+                                priorCommand = command;
+                                switch (command) {
+                                case 1:
+                                        result = jackoState->positionTransport(0.0);
+                                        jackoState->startTransport();
+                                        log(csound, "Started Jack transport.\n");
+                                        break;
+                                case 2:
+                                        jackoState->stopTransport();
+                                        log(csound, "Stopped Jack transport.\n");
+                                        break;
+                                case 3:
+                                        if (positionSeconds != priorPositionSeconds) {
+                                                priorPositionSeconds = positionSeconds;
+                                                result = jackoState->positionTransport(positionSeconds);
+                                                jackoState->startTransport();
+                                                if (result) {
+                                                        log(csound, "Failed to start Jack transport at %f seconds with"
+                                                            " result: %d\n", positionSeconds, result);
+                                                } else {
+                                                        log(csound, "Started Jack transport at %f seconds.\n",
+                                                            positionSeconds);
+                                                }
+                                        }
+                                        break;
+                                };
+                        }
+                }
+                return result;
         }
-      }
-      return result;
-  }
 };
 
 extern "C"
 {
-  static OENTRY oentries[] = {
-    {
-      (char *)"JackoInit",
-      sizeof(JackoInit),
-      0,
-      1,
-      (char *)"",
-      (char *)"SS",
-      (SUBR)&JackoInit::init_,
-      0,
-      0
-    },
-    {
-      (char *)"JackoInfo",
-      sizeof(JackoInfo),
-      0,
-      1,
-      (char *)"",
-      (char *)"",
-      (SUBR)&JackoInfo::init_,
-      0,
-      0
-    },
-    {
-      (char *)"JackoFreewheel",
-      sizeof(JackoFreewheel),
-      0,
-      1,
-      (char *)"",
-      (char *)"i",
-      (SUBR)&JackoFreewheel::init_,
-      0,
-      0
-    },
-    {
-      (char *)"JackoOn",
-      sizeof(JackoOn),
-      0,
-      1,
-      (char *)"",
-      (char *)"j",
-      (SUBR)&JackoOn::init_,
-      0,
-      0
-    },
-    {
-      (char *)"JackoAudioInConnect",
-      sizeof(JackoAudioInConnect),
-      0,
-      1,
-      (char *)"",
-      (char *)"SS",
-      (SUBR)&JackoAudioInConnect::init_,
-      0,
-      0,
-    },
-    {
-      (char *)"JackoAudioIn",
-      sizeof(JackoAudioIn),
-      0,
-      5,
-      (char *)"a",
-      (char *)"S",
-      (SUBR)&JackoAudioIn::init_,
-      0,
-      (SUBR)&JackoAudioIn::audio_,
-    },
-    {
-      (char *)"JackoAudioOutConnect",
-      sizeof(JackoAudioOutConnect),
-      0,
-      1,
-      (char *)"",
-      (char *)"SS",
-      (SUBR)&JackoAudioOutConnect::init_,
-      0,
-      0,
-    },
-    {
-      (char *)"JackoAudioOut",
-      sizeof(JackoAudioOut),
-      0,
-      5,
-      (char *)"",
-      (char *)"Sa",
-      (SUBR)&JackoAudioOut::init_,
-      0,
-      (SUBR)&JackoAudioOut::audio_,
-    },
-    {
-      (char *)"JackoMidiInConnect",
-      sizeof(JackoMidiInConnect),
-      0,
-      1,
-      (char *)"",
-      (char *)"SS",
-      (SUBR)&JackoMidiInConnect::init_,
-      0,
-      0,
-    },
-    {
-      (char *)"JackoMidiOutConnect",
-      sizeof(JackoMidiOutConnect),
-      0,
-      1,
-      (char *)"",
-      (char *)"SS",
-      (SUBR)&JackoMidiOutConnect::init_,
-      0,
-      0,
-    },
-    {
-      (char *)"JackoMidiOut",
-      sizeof(JackoMidiOut),
-      0,
-      3,
-      (char *)"",
-      (char *)"SkkkO",
-      (SUBR)&JackoMidiOut::init_,
-      (SUBR)&JackoMidiOut::kontrol_,
-      0,
-    },
-    {
-      (char *)"JackoNoteOut",
-      sizeof(JackoNoteOut),
-      0,
-      3,
-      (char *)"",
-      (char *)"Siii",
-      (SUBR)&JackoNoteOut::init_,
-      (SUBR)&JackoNoteOut::kontrol_,
-      0
-    },
-    {
-      (char *)"JackoTransport",
-      sizeof(JackoTransport),
-      0,
-      3,
-      (char *)"",
-      (char *)"kO", // O defaults to 0.
-      (SUBR)&JackoTransport::init_,
-      (SUBR)&JackoTransport::kontrol_,
-      0
-    },
-    { 0, 0, 0, 0, 0, 0, (SUBR) 0, (SUBR) 0, (SUBR) 0 }
-  };
+        static OENTRY oentries[] = {
+                {
+                        (char *)"JackoInit",
+                        sizeof(JackoInit),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SS",
+                        (SUBR) &JackoInit::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"JackoInfo",
+                        sizeof(JackoInfo),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"",
+                        (SUBR) &JackoInfo::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"JackoFreewheel",
+                        sizeof(JackoFreewheel),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"i",
+                        (SUBR) &JackoFreewheel::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"JackoOn",
+                        sizeof(JackoOn),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"j",
+                        (SUBR) &JackoOn::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"JackoAudioInConnect",
+                        sizeof(JackoAudioInConnect),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SS",
+                        (SUBR) &JackoAudioInConnect::init_,
+                        0,
+                        0,
+                },
+                {
+                        (char *)"JackoAudioIn",
+                        sizeof(JackoAudioIn),
+                        0,
+                        5,
+                        (char *)"a",
+                        (char *)"S",
+                        (SUBR) &JackoAudioIn::init_,
+                        0,
+                        (SUBR) &JackoAudioIn::audio_,
+                },
+                {
+                        (char *)"JackoAudioOutConnect",
+                        sizeof(JackoAudioOutConnect),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SS",
+                        (SUBR) &JackoAudioOutConnect::init_,
+                        0,
+                        0,
+                },
+                {
+                        (char *)"JackoAudioOut",
+                        sizeof(JackoAudioOut),
+                        0,
+                        5,
+                        (char *)"",
+                        (char *)"Sa",
+                        (SUBR) &JackoAudioOut::init_,
+                        0,
+                        (SUBR) &JackoAudioOut::audio_,
+                },
+                {
+                        (char *)"JackoMidiInConnect",
+                        sizeof(JackoMidiInConnect),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SS",
+                        (SUBR) &JackoMidiInConnect::init_,
+                        0,
+                        0,
+                },
+                {
+                        (char *)"JackoMidiOutConnect",
+                        sizeof(JackoMidiOutConnect),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SS",
+                        (SUBR) &JackoMidiOutConnect::init_,
+                        0,
+                        0,
+                },
+                {
+                        (char *)"JackoMidiOut",
+                        sizeof(JackoMidiOut),
+                        0,
+                        3,
+                        (char *)"",
+                        (char *)"SkkkO",
+                        (SUBR) &JackoMidiOut::init_,
+                        (SUBR) &JackoMidiOut::kontrol_,
+                        0,
+                },
+                {
+                        (char *)"JackoNoteOut",
+                        sizeof(JackoNoteOut),
+                        0,
+                        3,
+                        (char *)"",
+                        (char *)"Siii",
+                        (SUBR) &JackoNoteOut::init_,
+                        (SUBR) &JackoNoteOut::kontrol_,
+                        0
+                },
+                {
+                        (char *)"JackoTransport",
+                        sizeof(JackoTransport),
+                        0,
+                        3,
+                        (char *)"",
+                        (char *)"kO", // O defaults to 0.
+                        (SUBR) &JackoTransport::init_,
+                        (SUBR) &JackoTransport::kontrol_,
+                        0
+                },
+                { 0, 0, 0, 0, 0, 0, (SUBR) 0, (SUBR) 0, (SUBR) 0 }
+        };
 
 
-  PUBLIC int csoundModuleCreate(CSOUND *csound)
-  {
-    return 0;
-  }
+        PUBLIC int csoundModuleCreate(CSOUND *csound)
+        {
+                return 0;
+        }
 
-  PUBLIC int csoundModuleInit(CSOUND *csound)
-  {
-    OENTRY *ep = (OENTRY *)&(oentries[0]);
-    int  err = 0;
-    while (ep->opname != 0) {
-      err |= csound->AppendOpcode(csound,
-                                  ep->opname,
-                                  ep->dsblksiz,
-                                  ep->flags,
-                                  ep->thread,
-                                  ep->outypes,
-                                  ep->intypes,
-                                  (int (*)(CSOUND *, void*)) ep->iopadr,
-                                  (int (*)(CSOUND *, void*)) ep->kopadr,
-                                  (int (*)(CSOUND *, void*)) ep->aopadr);
-      ep++;
-    }
-    return err;
-  }
+        PUBLIC int csoundModuleInit(CSOUND *csound)
+        {
+                OENTRY *ep = (OENTRY *)&(oentries[0]);
+                int  err = 0;
+                while (ep->opname != 0) {
+                        err |= csound->AppendOpcode(csound,
+                                                    ep->opname,
+                                                    ep->dsblksiz,
+                                                    ep->flags,
+                                                    ep->thread,
+                                                    ep->outypes,
+                                                    ep->intypes,
+                                                    (int (*)(CSOUND *, void *)) ep->iopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->kopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->aopadr);
+                        ep++;
+                }
+                return err;
+        }
 
-  PUBLIC int csoundModuleDestroy(CSOUND *csound)
-  {
-    int result = OK;
-        if (jackoState != 0) {
-            delete jackoState;
-            jackoState = 0;
+        PUBLIC int csoundModuleDestroy(CSOUND *csound)
+        {
+                int result = OK;
+                JackoState *jackoState =  0;
+                csound::QueryGlobalPointer(csound, "jackoState", jackoState);
+                if (jackoState) {
+                        delete jackoState;
+                        jackoState = 0;
+                }
+                return result;
         }
-    return result;
-  }
 }
diff --git a/Opcodes/linear_algebra.cpp b/Opcodes/linear_algebra.cpp
index a8a87b1..8adc932 100644
--- a/Opcodes/linear_algebra.cpp
+++ b/Opcodes/linear_algebra.cpp
@@ -1,3 +1,26 @@
+/*
+    linear_algebra.cpp:
+
+    Copyright (C) 2008 by Michael Gogins
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 /**
  * L I N E A R   A L G E B R A   O P C O D E S   F O R   C S O U N D
  * Michael Gogins
@@ -349,6 +372,17 @@ extern "C"
 
 using namespace csound;
 
+static std::ostream &operator <<(std::ostream &o, const std::vector<double>& m)
+{
+    gmm::write(o,m); return o;
+}
+
+static std::ostream &operator <<(std::ostream &o,
+                                 const std::vector< std::complex<double> >& m)
+{
+    gmm::write(o,m); return o;
+}
+
 /**
  * Template union for safely and efficiently
  * typecasting the value of a MYFLT variable
diff --git a/Opcodes/linuxjoystick.c b/Opcodes/linuxjoystick.c
index 3277561..d01b8e1 100644
--- a/Opcodes/linuxjoystick.c
+++ b/Opcodes/linuxjoystick.c
@@ -73,7 +73,7 @@ static int linuxjoystick (CSOUND *csound, LINUXJOYSTICK *stick)
         snprintf(device, 256, "/dev/input/js%i", stick->dev);
         stick->devFD = open(device, O_RDONLY, O_NONBLOCK);
       }
-      if (stick->devFD > 0) {
+      if (LIKELY(stick->devFD > 0)) {
         fcntl(stick->devFD, F_SETFL, fcntl(stick->devFD, F_GETFL, 0)|O_NONBLOCK);
         ioctl(stick->devFD, JSIOCGAXES, &stick->numk);
         ioctl(stick->devFD, JSIOCGBUTTONS, &stick->numb);
@@ -108,7 +108,7 @@ static int linuxjoystick (CSOUND *csound, LINUXJOYSTICK *stick)
       if (read_size == -1 && errno == EAGAIN ) {
         getmore = 0;
       }
-      else if (read_size < 1) {
+      else if (UNLIKELY(read_size < 1)) {
         csound->Warning(csound, Str("linuxjoystick: read %d closing joystick"),
                         read_size);
         close(stick->devFD);
diff --git a/Opcodes/linuxjoystick.h b/Opcodes/linuxjoystick.h
index 95141b5..2fe2654 100644
--- a/Opcodes/linuxjoystick.h
+++ b/Opcodes/linuxjoystick.h
@@ -1,3 +1,23 @@
+/*
+  linuxjoystick.c:
+  Copyright (C) 2010 Justin Glenn Smith <noisesmith at gmail.com>
+
+  This Csound plugin is free software; you can redistribute it
+  and/or modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This plugin is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this plugin; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+  02111-1307 USA
+
+*/
 #include <unistd.h>
 #include "csdl.h"
 #include "linux/joystick.h"
diff --git a/Opcodes/liveconv.c b/Opcodes/liveconv.c
index d7df7ee..de4cb6f 100644
--- a/Opcodes/liveconv.c
+++ b/Opcodes/liveconv.c
@@ -45,26 +45,26 @@ typedef struct {
 static inline
 void init_load(rbload_t *buffer, int size)
 {
-  load_t* iter = buffer->begin;
+    load_t* iter = buffer->begin;
 
-  buffer->head = buffer->begin;
-  buffer->end = buffer->begin + size;
-  buffer->available = 1;
+    buffer->head = buffer->begin;
+    buffer->end = buffer->begin + size;
+    buffer->available = 1;
 
-  for (iter = buffer->begin; iter != buffer->end; iter++) {
-    iter->status = NO_LOAD;
-    iter->pos = 0;
-  }
+    for (iter = buffer->begin; iter != buffer->end; iter++) {
+      iter->status = NO_LOAD;
+      iter->pos = 0;
+    }
 }
 
 static inline
 load_t* next_load(const rbload_t *buffer, load_t* const now)
 {
-  load_t *temp = now + 1;
-  if (temp == buffer->end) {
-    temp = buffer->begin;
-  }
-  return temp;
+    load_t *temp = now + 1;
+    if (UNLIKELY(temp == buffer->end)) {
+      temp = buffer->begin;
+    }
+    return temp;
 }
 
 static inline
@@ -83,34 +83,38 @@ typedef struct {
   **  Input parameters given by user
   */
   OPDS    h;
-  MYFLT   *aOut;                  // output buffer
-  MYFLT   *aIn;                   // input buffer
+  MYFLT   *aOut;          // output buffer
+  MYFLT   *aIn;           // input buffer
 
-  MYFLT   *iFTNum;                // impulse respons table
-  MYFLT   *iPartLen;              // length of impulse response partitions (latency <-> CPU usage)
+  MYFLT   *iFTNum;        // impulse respons table
+  MYFLT   *iPartLen;      // length of impulse response partitions
+                          // (latency <-> CPU usage)
 
-  MYFLT     *kUpdate;                                                             // Control variable for updating the IR buffer (+1 is start load, -1 is start unload)
-  MYFLT           *kClear;                                                                // Clear output buffers
+  MYFLT     *kUpdate;     // Control variable for updating the IR buffer
+                          // (+1 is start load, -1 is start unload)
+  MYFLT     *kClear;      // Clear output buffers
 
   /*
   ** Internal state of opcode maintained outside
   */
-  int     initDone;                   /* flag to indicate initialization */
-  int     cnt;                        /* buffer position, 0 to partSize - 1       */
-  int     nPartitions;                /* number of convolve partitions            */
-  int     partSize;                   /* partition length in sample frames (= iPartLen as integer) */
-  int     rbCnt;                      /* ring buffer index, 0 to nPartitions - 1  */
+  int     initDone;       /* flag to indicate initialization */
+  int     cnt;            /* buffer position, 0 to partSize - 1       */
+  int     nPartitions;    /* number of convolve partitions            */
+  int     partSize;       /* partition length in sample frames
+                             (= iPartLen as integer) */
+  int     rbCnt;          /* ring buffer index, 0 to nPartitions - 1  */
 
   /* The following pointer point into the auxData buffer */
-  MYFLT   *tmpBuf;                    /* temporary buffer for accumulating FFTs   */
-  MYFLT   *ringBuf;                   /* ring buffer of FFTs of input partitions - these buffers are now computed during init */
-  MYFLT   *IR_Data;                   /* impulse responses (scaled)       */
-  MYFLT   *outBuf;                    /* output buffer (size=partSize*2)  */
+  MYFLT   *tmpBuf;        /* temporary buffer for accumulating FFTs   */
+  MYFLT   *ringBuf;       /* ring buffer of FFTs of input partitions -
+                             these buffers are now computed during init */
+  MYFLT   *IR_Data;       /* impulse responses (scaled)       */
+  MYFLT   *outBuf;        /* output buffer (size=partSize*2)  */
 
-  rbload_t        loader;                                                                         /* Bookkeeping of load/unload operations */
+  rbload_t        loader; /* Bookkeeping of load/unload operations */
 
-  void            *fwdsetup, *invsetup;
-  AUXCH   auxData;                    /* Aux data buffer allocated in init pass */
+  void    *fwdsetup, *invsetup;
+  AUXCH   auxData;        /* Aux data buffer allocated in init pass */
 } liveconv_t;
 
 /*
@@ -121,361 +125,381 @@ typedef struct {
 **    partSize - size of partition
 **    nPartitions - number of partitions
 **    ringBuf_startPos - the starting position of the ring buffer
-**                       (corresponds to the start of the partition after the last filled partition)
+**                       (corresponds to the start of the partition after the
+**                        last filled partition)
 */
-static void multiply_fft_buffers(MYFLT *outBuf, MYFLT *ringBuf, MYFLT *IR_Data, int partSize, int nPartitions, int ringBuf_startPos)
+static void multiply_fft_buffers(MYFLT *outBuf, MYFLT *ringBuf, MYFLT *IR_Data,
+                                 int partSize, int nPartitions,
+                                 int ringBuf_startPos)
 {
-  MYFLT   re, im, re1, re2, im1, im2;
-  MYFLT   *rbPtr, *irPtr, *outBufPtr, *outBufEndPm2, *rbEndP;
-
-  /* note: partSize must be at least 2 samples */
-  partSize <<= 1; /* locale partsize is twice the size of the partition size */
-  outBufEndPm2 = (MYFLT*) outBuf + (int) (partSize - 2);  /* Finding the index of the last sample pair in the output buffer */
-  rbEndP = (MYFLT*) ringBuf + (int) (partSize * nPartitions);   /* The end of the ring buffer */
-  rbPtr = &(ringBuf[ringBuf_startPos]);                         /* Initialize ring buffer pointer */
-  irPtr = IR_Data;                                              /* Initialize impulse data pointer */
-  outBufPtr = outBuf;                                           /* Initialize output buffer pointer */
-
-  /* clear output buffer to zero */
-  memset(outBuf, 0, sizeof(MYFLT)*partSize);
-
-  /*
-  ** Multiply FFTs for each partition and mix to output buffer
-  ** Note: IRs are stored in reverse partition order
-  */
-  do {
-    /* wrap ring buffer position */
-    if (rbPtr >= rbEndP)
-      rbPtr = ringBuf;
-    outBufPtr = outBuf;
-    *(outBufPtr++) += *(rbPtr++) * *(irPtr++);    /* convolve DC - real part only */
-    *(outBufPtr++) += *(rbPtr++) * *(irPtr++);    /* convolve Nyquist - real part only */
-    re1 = *(rbPtr++);
-    im1 = *(rbPtr++);
-    re2 = *(irPtr++);
-    im2 = *(irPtr++);
+    MYFLT   re, im, re1, re2, im1, im2;
+    MYFLT   *rbPtr, *irPtr, *outBufPtr, *outBufEndPm2, *rbEndP;
+
+    /* note: partSize must be at least 2 samples */
+    partSize <<= 1; /* locale partsize is twice the size of the partition size */
+             /* Finding the index of the last sample pair in the output buffer */
+    outBufEndPm2 = (MYFLT*) outBuf + (int) (partSize - 2);
+                                                 /* The end of the ring buffer */
+    rbEndP = (MYFLT*) ringBuf + (int) (partSize * nPartitions);
+    rbPtr = &(ringBuf[ringBuf_startPos]);    /* Initialize ring buffer pointer */
+    irPtr = IR_Data;                        /* Initialize impulse data pointer */
+    outBufPtr = outBuf;                    /* Initialize output buffer pointer */
+
+    /* clear output buffer to zero */
+    memset(outBuf, 0, sizeof(MYFLT)*partSize);
 
     /*
-    ** Status:
-    ** outBuf + 2, ringBuf + 4, irBuf + 4
-    ** re = buf + 2, im = buf + 3
+    ** Multiply FFTs for each partition and mix to output buffer
+    ** Note: IRs are stored in reverse partition order
     */
+    do {
+      /* wrap ring buffer position */
+      if (rbPtr >= rbEndP)
+        rbPtr = ringBuf;
+      outBufPtr = outBuf;
+      *(outBufPtr++) +=
+        *(rbPtr++) * *(irPtr++); /* convolve DC - real part only */
+      *(outBufPtr++) +=
+        *(rbPtr++) * *(irPtr++); /* convolve Nyquist - real part only */
+      re1 = *(rbPtr++);
+      im1 = *(rbPtr++);
+      re2 = *(irPtr++);
+      im2 = *(irPtr++);
 
-    re = re1 * re2 - im1 * im2;
-    im = re1 * im2 + re2 * im1;
-    while (outBufPtr < outBufEndPm2) {
-      /* complex multiply */
-      re1 = rbPtr[0];
-      im1 = rbPtr[1];
-      re2 = irPtr[0];
-      im2 = irPtr[1];
-      outBufPtr[0] += re;
-      outBufPtr[1] += im;
-      re = re1 * re2 - im1 * im2;
-      im = re1 * im2 + re2 * im1;
-      re1 = rbPtr[2];
-      im1 = rbPtr[3];
-      re2 = irPtr[2];
-      im2 = irPtr[3];
-      outBufPtr[2] += re;
-      outBufPtr[3] += im;
-      re = re1 * re2 - im1 * im2;
-      im = re1 * im2 + re2 * im1;
-      outBufPtr += 4;
-      rbPtr += 4;
-      irPtr += 4;
       /*
       ** Status:
-      ** outBuf + 2 + 4n, ringBuf + 4 + 4n, irBuf + 4 + 4n
-      ** re = buf + 2 + 4n, im = buf + 3 + 4n
+      ** outBuf + 2, ringBuf + 4, irBuf + 4
+      ** re = buf + 2, im = buf + 3
       */
-    }
-    outBufPtr[0] += re;
-    outBufPtr[1] += im;
 
-  } while (--nPartitions);
+      re = re1 * re2 - im1 * im2;
+      im = re1 * im2 + re2 * im1;
+      while (outBufPtr < outBufEndPm2) {
+        /* complex multiply */
+        re1 = rbPtr[0];
+        im1 = rbPtr[1];
+        re2 = irPtr[0];
+        im2 = irPtr[1];
+        outBufPtr[0] += re;
+        outBufPtr[1] += im;
+        re = re1 * re2 - im1 * im2;
+        im = re1 * im2 + re2 * im1;
+        re1 = rbPtr[2];
+        im1 = rbPtr[3];
+        re2 = irPtr[2];
+        im2 = irPtr[3];
+        outBufPtr[2] += re;
+        outBufPtr[3] += im;
+        re = re1 * re2 - im1 * im2;
+        im = re1 * im2 + re2 * im1;
+        outBufPtr += 4;
+        rbPtr += 4;
+        irPtr += 4;
+        /*
+        ** Status:
+        ** outBuf + 2 + 4n, ringBuf + 4 + 4n, irBuf + 4 + 4n
+        ** re = buf + 2 + 4n, im = buf + 3 + 4n
+        */
+      }
+      outBufPtr[0] += re;
+      outBufPtr[1] += im;
+
+    } while (--nPartitions);
 }
 static inline int buf_bytes_alloc(int partSize, int nPartitions)
 {
-  int nSmps;
+    int nSmps;
 
-  nSmps = (partSize << 1);                                /* tmpBuf     */
-  nSmps += ((partSize << 1) * nPartitions);               /* ringBuf    */
-  nSmps += ((partSize << 1) * nPartitions);               /* IR_Data    */
-  nSmps += ((partSize << 1));                             /* outBuf */
-  nSmps *= (int) sizeof(MYFLT);                                                                                                           /* Buffer type MYFLT */
+    nSmps = (partSize << 1);                            /* tmpBuf     */
+    nSmps += ((partSize << 1) * nPartitions);           /* ringBuf    */
+    nSmps += ((partSize << 1) * nPartitions);           /* IR_Data    */
+    nSmps += ((partSize << 1));                         /* outBuf */
+    nSmps *= (int) sizeof(MYFLT);                       /* Buffer type MYFLT */
 
-  nSmps += (nPartitions+1) * (int) sizeof(load_t);                                /* Load/unload structure */
-  /* One load/unload pr. partitions and an extra for buffering is sufficient */
+    nSmps += (nPartitions+1) * (int) sizeof(load_t);    /* Load/unload structure */
+    /* One load/unload pr. partitions and an extra for buffering is sufficient */
 
-  return nSmps;
+    return nSmps;
 }
+
 static void set_buf_pointers(liveconv_t *p, int partSize, int nPartitions)
 {
-  MYFLT *ptr;
-
-  ptr = (MYFLT*) (p->auxData.auxp);
-  p->tmpBuf = ptr;
-  ptr += (partSize << 1);
-  p->ringBuf = ptr;
-  ptr += ((partSize << 1) * nPartitions);
-  p->IR_Data = ptr;
-  ptr += ((partSize << 1) * nPartitions);
-  p->outBuf = ptr;
-  ptr += (partSize << 1);
-
-  p->loader.begin = (load_t*) ptr;
+    MYFLT *ptr;
+
+    ptr = (MYFLT*) (p->auxData.auxp);
+    p->tmpBuf = ptr;
+    ptr += (partSize << 1);
+    p->ringBuf = ptr;
+    ptr += ((partSize << 1) * nPartitions);
+    p->IR_Data = ptr;
+    ptr += ((partSize << 1) * nPartitions);
+    p->outBuf = ptr;
+    ptr += (partSize << 1);
+
+    p->loader.begin = (load_t*) ptr;
 }
 
 static int liveconv_init(CSOUND *csound, liveconv_t *p)
 {
-  FUNC    *ftp;       // function table
-  int     n, nBytes;
-
-  /* set p->partSize to the initial partition length, iPartLen */
-  p->partSize = MYFLT2LRND(*(p->iPartLen));
-  if (UNLIKELY(p->partSize < 4 || (p->partSize & (p->partSize - 1)) != 0)) {  // Must be a power of 2 at least as large as 4
-    return csound->InitError(csound, Str("liveconv: invalid impulse response "
-                                         "partition length"));
-  }
+    FUNC    *ftp;       // function table
+    int     n, nBytes;
+
+    /* set p->partSize to the initial partition length, iPartLen */
+    p->partSize = MYFLT2LRND(*(p->iPartLen));
+    if (UNLIKELY(p->partSize < 4 || (p->partSize & (p->partSize - 1)) != 0)) {
+      // Must be a power of 2 at least as large as 4
+      return csound->InitError(csound, Str("liveconv: invalid impulse response "
+                                           "partition length"));
+    }
 
-  /* Find and assign the function table numbered iFTNum */
-  ftp = csound->FTnp2Find(csound, p->iFTNum);
-  if (UNLIKELY(ftp == NULL))
-    return NOTOK; /* ftfind should already have printed the error message */
-
-  /* Calculate the total length  */
-  n = (int) ftp->flen;
-  if (UNLIKELY(n <= 0)) {
-    return csound->InitError(csound,
-                             Str("liveconv: invalid length, or insufficient"
-                                 " IR data for convolution"));
-  }
+    /* Find and assign the function table numbered iFTNum */
+    ftp = csound->FTnp2Find(csound, p->iFTNum);
+    if (UNLIKELY(ftp == NULL))
+      return NOTOK; /* ftfind should already have printed the error message */
+
+    /* Calculate the total length  */
+    n = (int) ftp->flen;
+    if (UNLIKELY(n <= 0)) {
+      return csound->InitError(csound,
+                               Str("liveconv: invalid length, or insufficient"
+                                   " IR data for convolution"));
+    }
 
-  // Compute the number of partitions (total length / partition size)
-  p->nPartitions = (n + (p->partSize - 1)) / p->partSize;
+    // Compute the number of partitions (total length / partition size)
+    p->nPartitions = (n + (p->partSize - 1)) / p->partSize;
 
-  /*
-  ** Calculate the amount of aux space to allocate (in bytes) and allocate if necessary
-  ** Function of partition size and number of partitions
-  */
+    /*
+    ** Calculate the amount of aux space to allocate (in bytes) and
+    ** allocate if necessary
+    ** Function of partition size and number of partitions
+    */
 
-  nBytes = buf_bytes_alloc(p->partSize, p->nPartitions);
-  if (nBytes != (int) p->auxData.size)
-    csound->AuxAlloc(csound, (int32) nBytes, &(p->auxData));
+    nBytes = buf_bytes_alloc(p->partSize, p->nPartitions);
+    if (nBytes != (int) p->auxData.size)
+      csound->AuxAlloc(csound, (int32) nBytes, &(p->auxData));
 
-  /*
-  ** From here on is initialization of data
-  */
+    /*
+    ** From here on is initialization of data
+    */
 
-  /* initialize buffer pointers */
-  set_buf_pointers(p, p->partSize, p->nPartitions);
+    /* initialize buffer pointers */
+    set_buf_pointers(p, p->partSize, p->nPartitions);
 
-  /* Initialize load bookkeeping */
-  init_load(&p->loader, (p->nPartitions + 1));
+    /* Initialize load bookkeeping */
+    init_load(&p->loader, (p->nPartitions + 1));
 
-  /* clear ring buffer to zero */
-  n = (p->partSize << 1) * p->nPartitions;
-  memset(p->ringBuf, 0, n*sizeof(MYFLT));
+    /* clear ring buffer to zero */
+    n = (p->partSize << 1) * p->nPartitions;
+    memset(p->ringBuf, 0, n*sizeof(MYFLT));
 
-  /* initialize buffer indices */
-  p->cnt = 0;
-  p->rbCnt = 0;
+    /* initialize buffer indices */
+    p->cnt = 0;
+    p->rbCnt = 0;
 
-  p->fwdsetup = csound->RealFFT2Setup(csound, (p->partSize << 1), FFT_FWD);
-  p->invsetup = csound->RealFFT2Setup(csound, (p->partSize << 1), FFT_INV);
+    p->fwdsetup = csound->RealFFT2Setup(csound, (p->partSize << 1), FFT_FWD);
+    p->invsetup = csound->RealFFT2Setup(csound, (p->partSize << 1), FFT_INV);
 
-  /* clear IR buffer to zero */
-  memset(p->IR_Data, 0, n*sizeof(MYFLT));
+    /* clear IR buffer to zero */
+    memset(p->IR_Data, 0, n*sizeof(MYFLT));
 
-  /* clear output buffers to zero */
-  memset(p->outBuf, 0, (p->partSize << 1)*sizeof(MYFLT));
+    /* clear output buffers to zero */
+    memset(p->outBuf, 0, (p->partSize << 1)*sizeof(MYFLT));
 
-  /*
-  ** After initialization:
-  **    Buffer indexes are zero
-  **    tmpBuf is filled with rubish
-  **    ringBuf and outBuf are filled with zero
-  **    IR_Data buffers are filled with zero
-  */
+    /*
+    ** After initialization:
+    **    Buffer indexes are zero
+    **    tmpBuf is filled with rubish
+    **    ringBuf and outBuf are filled with zero
+    **    IR_Data buffers are filled with zero
+    */
 
-  p->initDone = 1;
-  return OK;
+    p->initDone = 1;
+    return OK;
 }
 
 static int liveconv_perf(CSOUND *csound, liveconv_t *p)
 {
-  MYFLT       *x, *rBuf;
-  FUNC        *ftp;       // function table
-  int         i, k, n, nSamples, rBufPos, updateIR, clearBuf, nPart, cnt;
-
-  load_t                  *load_ptr;
-  // uint32_t                numLoad = p->nPartitions + 1;
-
-  uint32_t          offset = p->h.insdshead->ksmps_offset;
-  uint32_t      early  = p->h.insdshead->ksmps_no_end;
-  uint32_t      nn, nsmps = CS_KSMPS;
-
-  /* Only continue if initialized */
-  if (p->initDone <= 0) goto err1;
+    MYFLT       *x, *rBuf;
+    FUNC        *ftp;       // function table
+    int         i, k, n, nSamples, rBufPos, updateIR, clearBuf, nPart, cnt;
+
+    load_t      *load_ptr;
+    // uint32_t                numLoad = p->nPartitions + 1;
+
+    uint32_t      offset = p->h.insdshead->ksmps_offset;
+    uint32_t      early  = p->h.insdshead->ksmps_no_end;
+    uint32_t      nn, nsmps = CS_KSMPS;
+
+    /* Only continue if initialized */
+    if (UNLIKELY(p->initDone <= 0)) goto err1;
+
+    ftp = csound->FTnp2Find(csound, p->iFTNum);
+    nSamples = p->partSize;   /* Length of partition */
+                              /* Pointer to a partition of the ring buffer */
+    rBuf = &(p->ringBuf[p->rbCnt * (nSamples << 1)]);
+
+    if (UNLIKELY(offset))
+      memset(p->aOut, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early)) {
+      nsmps -= early;
+      memset(&p->aOut[nsmps], '\0', early*sizeof(MYFLT));
+    }
 
-  ftp = csound->FTnp2Find(csound, p->iFTNum);
-  nSamples = p->partSize;   /* Length of partition */
-  rBuf = &(p->ringBuf[p->rbCnt * (nSamples << 1)]); /* Pointer to a partition of the ring buffer */
+    /* If clear flag is set: empty buffers and reset indexes */
+    clearBuf = MYFLT2LRND(*(p->kClear));
+    if (clearBuf) {
 
-  if (UNLIKELY(offset))
-    memset(p->aOut, '\0', offset*sizeof(MYFLT));
-  if (UNLIKELY(early)) {
-    nsmps -= early;
-    memset(&p->aOut[nsmps], '\0', early*sizeof(MYFLT));
-  }
+      /* clear ring buffer to zero */
+      n = (nSamples << 1) * p->nPartitions;
+      memset(p->ringBuf, 0, n*sizeof(MYFLT));
 
-  /* If clear flag is set: empty buffers and reset indexes */
-  clearBuf = MYFLT2LRND(*(p->kClear));
-  if (clearBuf) {
-
-    /* clear ring buffer to zero */
-    n = (nSamples << 1) * p->nPartitions;
-    memset(p->ringBuf, 0, n*sizeof(MYFLT));
+      /* initialize buffer index */
+      p->cnt = 0;
+      p->rbCnt = 0;
 
-    /* initialize buffer index */
-    p->cnt = 0;
-    p->rbCnt = 0;
+      /* clear output buffers to zero */
+      memset(p->outBuf, 0, (nSamples << 1)*sizeof(MYFLT));
+    }
 
-    /* clear output buffers to zero */
-    memset(p->outBuf, 0, (nSamples << 1)*sizeof(MYFLT));
-  }
+    /*
+    ** How to handle the kUpdate input:
+    ** -1: Gradually clear the IR buffer
+    **      0: Do nothing
+    **  1: Gradually load the IR buffer
+    */
 
-  /*
-  ** How to handle the kUpdate input:
-  ** -1: Gradually clear the IR buffer
-  **      0: Do nothing
-  **  1: Gradually load the IR buffer
-  */
+    if (p->loader.available) {
 
-  if (p->loader.available) {
+      // The buffer before the head position is the temporary buffer
+      load_ptr = previous_load(&p->loader, p->loader.head);
+      updateIR = MYFLT2LRND(*(p->kUpdate));
+      if (updateIR == 1) {
+        load_ptr->status = LOADING;
+        load_ptr->pos = 0;
+      }
+      else if (updateIR == -1) {
+        load_ptr->status = UNLOADING;
+        load_ptr->pos = 0;
+      }
+      if (load_ptr->status != NO_LOAD) {
+        p->loader.available = 0;
 
-    // The buffer before the head position is the temporary buffer
-    load_ptr = previous_load(&p->loader, p->loader.head);
-    updateIR = MYFLT2LRND(*(p->kUpdate));
-    if (updateIR == 1) {
-      load_ptr->status = LOADING;
-      load_ptr->pos = 0;
-    }
-    else if (updateIR == -1) {
-      load_ptr->status = UNLOADING;
-      load_ptr->pos = 0;
+        /* Special case: At a partition border: Make the temporary buffer
+           head position */
+        if (p->cnt == 0)
+          p->loader.head = load_ptr;
+      }
     }
-    if (load_ptr->status != NO_LOAD) {
-      p->loader.available = 0;
 
-      /* Special case: At a partition border: Make the temporary buffer head position */
-      if (p->cnt == 0)
-        p->loader.head = load_ptr;
-    }
-  }
+    /* For each sample in the audio input buffer (length = ksmps) */
+    for (nn = offset; nn < nsmps; nn++) {
 
-  /* For each sample in the audio input buffer (length = ksmps) */
-  for (nn = offset; nn < nsmps; nn++) {
+      /* store input signal in buffer */
+      rBuf[p->cnt] = p->aIn[nn];
 
-    /* store input signal in buffer */
-    rBuf[p->cnt] = p->aIn[nn];
+      /* copy output signals from buffer (contains data from previous
+         convolution pass) */
+      p->aOut[nn] = p->outBuf[p->cnt];
 
-    /* copy output signals from buffer (contains data from previous convolution pass) */
-    p->aOut[nn] = p->outBuf[p->cnt];
+      /* is input buffer full ? */
+      if (++p->cnt < nSamples)
+        continue;                   /* no, continue with next sample */
 
-    /* is input buffer full ? */
-    if (++p->cnt < nSamples)
-      continue;                   /* no, continue with next sample */
+      /* Check if there are any IR partitions to load/unload */
+      load_ptr = p->loader.head;
+      while (load_ptr->status != NO_LOAD) {
 
-    /* Check if there are any IR partitions to load/unload */
-    load_ptr = p->loader.head;
-    while (load_ptr->status != NO_LOAD) {
+        cnt = load_ptr->pos;
+        if (load_ptr->status == LOADING) {
 
-      cnt = load_ptr->pos;
-      if (load_ptr->status == LOADING) {
+          nPart = cnt / nSamples + 1;
+          /* IR write position, starting with the last! */
+          n = (nSamples << 1) * (p->nPartitions - nPart);
 
-        nPart = cnt / nSamples + 1;
-        n = (nSamples << 1) * (p->nPartitions - nPart);  /* IR write position, starting with the last! */
+          /* Iterate over IR partitions in reverse order */
+          for (k = 0; k < nSamples; k++) {
+            /* Fill IR_Data with scaled IR data, or zero if outside the IR buffer */
+            p->IR_Data[n + k] = (cnt < (int)ftp->flen) ? ftp->ftable[cnt] : FL(0.0);
+            cnt++;
+          }
 
-        /* Iterate over IR partitions in reverse order */
-        for (k = 0; k < nSamples; k++) {
-          /* Fill IR_Data with scaled IR data, or zero if outside the IR buffer */
-          p->IR_Data[n + k] = (cnt < (int)ftp->flen) ? ftp->ftable[cnt] : FL(0.0);
-          cnt++;
-        }
+          /* pad second half of IR to zero */
+          for (k = nSamples; k < (nSamples << 1); k++)
+            p->IR_Data[n + k] = FL(0.0);
 
-        /* pad second half of IR to zero */
-        for (k = nSamples; k < (nSamples << 1); k++)
-          p->IR_Data[n + k] = FL(0.0);
+          /* calculate FFT (replace in the same buffer) */
+          csound->RealFFT2(csound, p->fwdsetup, &(p->IR_Data[n]));
 
-        /* calculate FFT (replace in the same buffer) */
-        csound->RealFFT2(csound, p->fwdsetup, &(p->IR_Data[n]));
+        }
+        else if (load_ptr->status == UNLOADING) {
 
-      }
-      else if (load_ptr->status == UNLOADING) {
+          nPart = cnt / nSamples + 1;
+          /* IR write position, starting with the last! */
+          n = (nSamples << 1) * (p->nPartitions - nPart);
+          memset(p->IR_Data + n, 0, (nSamples << 1)*sizeof(MYFLT));
+        }
 
-        nPart = cnt / nSamples + 1;
-        n = (nSamples << 1) * (p->nPartitions - nPart);  /* IR write position, starting with the last! */
-        memset(p->IR_Data + n, 0, (nSamples << 1)*sizeof(MYFLT));
-      }
+        // Update load buffer and move to the next buffer
+        load_ptr->pos += nSamples;
+        if (load_ptr->pos >= p->nPartitions * nSamples) {
+          load_ptr->status = NO_LOAD;
+        }
 
-      // Update load buffer and move to the next buffer
-      load_ptr->pos += nSamples;
-      if (load_ptr->pos >= p->nPartitions * nSamples) {
-        load_ptr->status = NO_LOAD;
+        load_ptr = next_load(&p->loader, load_ptr);
       }
+      p->loader.available = 1;
 
-      load_ptr = next_load(&p->loader, load_ptr);
-    }
-    p->loader.available = 1;
+      // Check if there is a temporary buffer ready to get loaded with the
+      // next partition
+      load_ptr = previous_load(&p->loader, p->loader.head);
+      if (load_ptr->status != NO_LOAD)
+        p->loader.head = load_ptr;
 
-    // Check if there is a temporary buffer ready to get loaded with the next partition
-    load_ptr = previous_load(&p->loader, p->loader.head);
-    if (load_ptr->status != NO_LOAD)
-      p->loader.head = load_ptr;
+      /* Now the partition is filled with input --> start calculate the
+         convolution */
+      p->cnt = 0; /* reset buffer position */
 
-    /* Now the partition is filled with input --> start calculate the convolution */
-    p->cnt = 0; /* reset buffer position */
+      /* pad input in ring buffer with zeros to double length */
+      for (i = nSamples; i < (nSamples << 1); i++)
+        rBuf[i] = FL(0.0);
 
-    /* pad input in ring buffer with zeros to double length */
-    for (i = nSamples; i < (nSamples << 1); i++)
-      rBuf[i] = FL(0.0);
+      /* calculate FFT of input */
+      csound->RealFFT2(csound, p->fwdsetup, rBuf);
 
-    /* calculate FFT of input */
-    csound->RealFFT2(csound, p->fwdsetup, rBuf);
+      /* update ring buffer position */
+      p->rbCnt++;
+      if (p->rbCnt >= p->nPartitions)
+        p->rbCnt = 0;
+      rBufPos = p->rbCnt * (nSamples << 1);
 
-    /* update ring buffer position */
-    p->rbCnt++;
-    if (p->rbCnt >= p->nPartitions)
-      p->rbCnt = 0;
-    rBufPos = p->rbCnt * (nSamples << 1);
+      /* Move to next partition in ring buffer (used in next iteration to
+         store the next input sample) */
+      rBuf = &(p->ringBuf[rBufPos]);
 
-    /* Move to next partition in ring buffer (used in next iteration to store the next input sample) */
-    rBuf = &(p->ringBuf[rBufPos]);
+      /* multiply complex arrays --> multiplication in the frequency domain */
+      multiply_fft_buffers(p->tmpBuf, p->ringBuf, p->IR_Data,
+                           nSamples, p->nPartitions, rBufPos);
 
-    /* multiply complex arrays --> multiplication in the frequency domain */
-    multiply_fft_buffers(p->tmpBuf, p->ringBuf, p->IR_Data, nSamples, p->nPartitions, rBufPos);
+      /* inverse FFT */
+      csound->RealFFT2(csound, p->invsetup, p->tmpBuf);
 
-    /* inverse FFT */
-    csound->RealFFT2(csound, p->invsetup, p->tmpBuf);
+      /*
+      ** Copy IFFT result to output buffer
+      ** The second half is left as "tail" for next iteration
+      ** The first half is overlapped with "tail" of previous block
+      */
+      x = &(p->outBuf[0]);
+      for (i = 0; i < nSamples; i++) {
+        x[i] = p->tmpBuf[i] + x[i + nSamples];
+        x[i + nSamples] = p->tmpBuf[i + nSamples];
+      }
 
-    /*
-    ** Copy IFFT result to output buffer
-    ** The second half is left as "tail" for next iteration
-    ** The first half is overlapped with "tail" of previous block
-    */
-    x = &(p->outBuf[0]);
-    for (i = 0; i < nSamples; i++) {
-      x[i] = p->tmpBuf[i] + x[i + nSamples];
-      x[i + nSamples] = p->tmpBuf[i + nSamples];
     }
-
-  }
-  return OK;
+    return OK;
 
  err1:
-  return csound->PerfError(csound, p->h.insdshead, Str("liveconv: not initialised"));
+    return csound->PerfError(csound, p->h.insdshead,
+                             Str("liveconv: not initialised"));
 }
 
 /* module interface functions */
@@ -483,13 +507,13 @@ static int liveconv_perf(CSOUND *csound, liveconv_t *p)
 static OENTRY localops[] = {
   {
     "liveconv",             // name of opcode
-    sizeof(liveconv_t),                     // data size of state block
+    sizeof(liveconv_t),     // data size of state block
     TR, 5,                  // thread
     "a",                    // output arguments
-    "aiikk",                                                                // input arguments
+    "aiikk",                // input arguments
     (SUBR) liveconv_init,   // init function
-    (SUBR) NULL,                                            // k-rate function (?)
-    (SUBR) liveconv_perf            // a-rate function
+    (SUBR) NULL,            // k-rate function
+    (SUBR) liveconv_perf    // a-rate function
   }
 };
 
diff --git a/Opcodes/loscilx.c b/Opcodes/loscilx.c
index 489dcd6..c8ca675 100644
--- a/Opcodes/loscilx.c
+++ b/Opcodes/loscilx.c
@@ -352,13 +352,13 @@ static inline void init_sine_gen(double a, double f, double p, double c,
                                  double *x, double *v)
 {
     double  y0, y1;             /* these should be doubles */
-
+    double xx, vv;
     y0 = sin(p);
     y1 = sin(p + f);
-    *x = y0;
-    *v = y1 - (c * y0) - y0;
+    xx = y0;
+    vv = y1 - (c * y0) - y0;
     /* amp. scale */
-    *x *= a; *v *= a;
+    *x = xx*a; *v = vv*a;
 }
 
 static int loscilx_opcode_perf(CSOUND *csound, LOSCILX_OPCODE *p)
diff --git a/Opcodes/lowpassr.c b/Opcodes/lowpassr.c
index e1df43d..1a4a72a 100644
--- a/Opcodes/lowpassr.c
+++ b/Opcodes/lowpassr.c
@@ -50,7 +50,7 @@ static int lowpr(CSOUND *csound, LOWPR *p)
     uint32_t n, nsmps = CS_KSMPS;
 
     if (p->okf != kfco || p->okr != kres) { /* Only if changed */
-      if (kfco<=FL(0.0))
+      if (UNLIKELY(kfco<=FL(0.0)))
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("Cutoff parameter must be positive"));
       b = 10.0 / (kres * sqrt((double)kfco)) - 1.0;
@@ -94,7 +94,7 @@ static int lowpraa(CSOUND *csound, LOWPR *p)
     uint32_t n, nsmps = CS_KSMPS;
 
     if (okf!= fco[0] || okr != res[0]) { /* Only if changed */
-      if (fco[0]<=FL(0.0))
+      if (UNLIKELY(fco[0]<=FL(0.0)))
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("Cutoff parameter must be positive"));
       b = 10.0 / (res[0] * sqrt((double)fco[0])) - 1.0;
@@ -116,7 +116,7 @@ static int lowpraa(CSOUND *csound, LOWPR *p)
     }
     for (n=offset; n<nsmps;n++) {
       if (okf!= fco[n] || okr != res[n]) { /* Only if changed */
-        if (fco[n]<=FL(0.0))
+        if (UNLIKELY(fco[n]<=FL(0.0)))
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("Cutoff parameter must be positive"));
         b = 10.0 / (res[n] * sqrt((double)fco[n])) - 1.0;
@@ -150,7 +150,7 @@ static int lowprak(CSOUND *csound, LOWPR *p)
     uint32_t n, nsmps = CS_KSMPS;
 
     if (okf != fco[0] || okr != kres) { /* Only if changed */
-      if (fco[0]<=FL(0.0))
+      if (UNLIKELY(fco[0]<=FL(0.0)))
         return csound->PerfError(csound, p->h.insdshead,
                                  Str("Cutoff parameter must be positive"));
       b = 10.0 / (kres * sqrt((double)fco[0])) - 1.0;
@@ -171,7 +171,7 @@ static int lowprak(CSOUND *csound, LOWPR *p)
     }
     for (n=offset; n<nsmps;n++) {
       if (okf != fco[n]) { /* Only if changed */
-        if (fco[n]<=FL(0.0))
+        if (UNLIKELY(fco[n]<=FL(0.0)))
           return csound->PerfError(csound, p->h.insdshead,
                                    Str("Cutoff parameter must be positive"));
         b = 10.0 / (kres * sqrt((double)fco[n])) - 1.0;
@@ -205,9 +205,9 @@ static int lowprka(CSOUND *csound, LOWPR *p)
     uint32_t n, nsmps = CS_KSMPS;
 
     if (okf!= fco || okr != res[0]) { /* Only if changed */
-        if (fco<=FL(0.0))
-          return csound->PerfError(csound, p->h.insdshead,
-                                   Str("Cutoff parameter must be positive"));
+      if (UNLIKELY(fco<=FL(0.0)))
+        return csound->PerfError(csound, p->h.insdshead,
+                                 Str("Cutoff parameter must be positive"));
       b = 10.0 / (res[0] * sqrt((double)fco)) - 1.0;
       p->k = k = 1000.0 / (double)fco;
       p->coef1 = coef1 = (b+2.0 * k);
@@ -267,7 +267,7 @@ static int lowprx(CSOUND *csound, LOWPRX *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
     int      j;
-
+    int      asgf = IS_ASIG_ARG(p->kfco), asgr = IS_ASIG_ARG(p->kres);
 
     ynm1 = p->ynm1;
     ynm2 = p->ynm2;
@@ -282,8 +282,8 @@ static int lowprx(CSOUND *csound, LOWPRX *p)
       ar = p->ar;
 
       for (n=offset;n<nsmps;n++) {
-        MYFLT fco = (IS_ASIG_ARG(p->kfco) ? kfco[n] : *kfco);
-        MYFLT res = (IS_ASIG_ARG(p->kres) ? kres[n] : *kres);
+        MYFLT fco = (asgf ? kfco[n] : *kfco);
+        MYFLT res = (asgr ? kres[n] : *kres);
         if (p->okf != fco || p->okr != res) { /* Only if changed */
           b = FL(10.0) / (res * SQRT(fco)) - FL(1.0);
           k = FL(1000.0) / fco;
diff --git a/Opcodes/metro.c b/Opcodes/metro.c
index c1faff7..45b3a94 100644
--- a/Opcodes/metro.c
+++ b/Opcodes/metro.c
@@ -136,7 +136,7 @@ static int split_trig(CSOUND *csound, SPLIT_TRIG *p)
 
     }
 
-    else {
+    else { // Maybe a memset?
       for(j =0; j< numouts; j++)
         *outargs[j] = FL(0.0);
     }
diff --git a/Opcodes/midiops3.c b/Opcodes/midiops3.c
index a5e5082..19859e8 100644
--- a/Opcodes/midiops3.c
+++ b/Opcodes/midiops3.c
@@ -56,14 +56,14 @@
       if (UNLIKELY(*slnum > 127)) {                               \
         snprintf(sbuf, 120,                                       \
                   Str("illegal control number at position n.%d"), j); \
-          return csound->InitError(csound, "%s", sbuf);                 \
+          return csound->InitError(csound, "%s", sbuf);           \
         }                                                         \
       if (UNLIKELY((value=*sld->initvalue) < (*min=*sld->imin) || \
                    value > (*max=*sld->imax) )) {                 \
         snprintf(sbuf, 120,                                       \
                   Str("illegal initvalue at position n.%d"),      \
                   j);                                             \
-          return csound->InitError(csound, "%s", sbuf);                 \
+          return csound->InitError(csound, "%s", sbuf);           \
         }                                                         \
         if (*sld->ifn > 0)   *ftp++ = csound->FTnp2Find(csound, sld->ifn); \
         else                 *ftp++ = NULL;                       \
@@ -160,13 +160,13 @@ static int slider64(CSOUND *csound, SLIDER64 *p)
       if (UNLIKELY(*slnum > 127)) {                               \
         snprintf(sbuf, 120,                                       \
                   Str("illegal control number at position n.%d"), j); \
-          return csound->InitError(csound, "%s", sbuf);                 \
+          return csound->InitError(csound, "%s", sbuf);           \
         }                                                         \
       if (UNLIKELY((value=*sld->initvalue) < (*min=*sld->imin) || \
                    value > (*max=*sld->imax) )) {                 \
         snprintf(sbuf, 120,                                       \
                   Str("illegal initvalue at position n.%d"), j);  \
-          return csound->InitError(csound, "%s", sbuf);                 \
+          return csound->InitError(csound, "%s", sbuf);           \
         }                                                         \
         if (*sld->ifn > 0)   *ftp++ = csound->FTnp2Find(csound, sld->ifn); \
         else                 *ftp++ = NULL;                       \
@@ -332,20 +332,20 @@ if (UNLIKELY(chan  > 15))  {                                           \
           snprintf(sbuf, 120,                                          \
                   Str("illegal msb control number at position n.%d"),  \
                   j);                                                  \
-          return csound->InitError(csound, "%s", sbuf);                      \
+          return csound->InitError(csound, "%s", sbuf);                \
         }                                                              \
         *slnum_lsb = (unsigned char)*sld->ictlno_lsb;                  \
         if (UNLIKELY(*slnum_lsb > 127)) {                              \
           snprintf(sbuf, 120,                                          \
                   Str("illegal lsb control number at position n.%d"),  \
                   j);                                                  \
-          return csound->InitError(csound, "%s", sbuf);                      \
+          return csound->InitError(csound, "%s", sbuf);                \
         }                                                              \
         if (UNLIKELY((value=*sld->initvalue) < (*min=*sld->imin) ||    \
                      value > (*max=*sld->imax) )) {                    \
           snprintf(sbuf, 120,                                          \
                   Str("illegal initvalue at position n.%d"), j);       \
-          return csound->InitError(csound, "%s", sbuf);                      \
+          return csound->InitError(csound, "%s", sbuf);                \
         }                                                              \
         if (*sld->ifn > 0)   *ftp++ = csound->FTnp2Find(csound, sld->ifn); \
         else                 *ftp++ = NULL;                            \
@@ -361,7 +361,7 @@ if (UNLIKELY(chan  > 15))  {                                           \
 
 #define SLIDER14(p, n)                                                 \
 {                                                                      \
-    MYFLT value = FL(0.0);                                                       \
+    MYFLT value = FL(0.0);                                             \
     int j = 0;                                                         \
     FUNC **ftp = p->ftp-1;                                             \
     MYFLT *chanblock = (MYFLT *) csound->m_chnbp[p->slchan]->ctl_val;  \
@@ -375,8 +375,8 @@ if (UNLIKELY(chan  > 15))  {                                           \
                        + chanblock[*slnum_lsb++]) * oneTOf14bit);      \
       if (*(++ftp)) {      /* if valid ftable,use value as index   */  \
         MYFLT phase = value * (*ftp)->flen;                            \
-        MYFLT *base = (*ftp)->ftable + (int32)(phase);                  \
-        value = *base + (*(base+1) - *base) * (phase - (int32) phase);  \
+        MYFLT *base = (*ftp)->ftable + (int32)(phase);                 \
+        value = *base + (*(base+1) - *base) * (phase - (int32) phase); \
       }                                                                \
       **result++ = value * (*max++ - *min) + *min; /* scales the output */ \
       min++;                                                           \
@@ -427,20 +427,20 @@ if (UNLIKELY(chan  > 15))  {                                           \
           snprintf(sbuf, 120,                                          \
                   Str("illegal msb control number at position n.%d"),  \
                   j);                                                  \
-          return csound->InitError(csound, "%s", sbuf);                      \
+          return csound->InitError(csound, "%s", sbuf);                \
         }                                                              \
         slnum_lsb=(unsigned char)*sld->ictlno_lsb;                     \
         if (UNLIKELY(slnum_lsb > 127)) {                               \
           snprintf(sbuf, 120,                                          \
                   Str("illegal lsb control number at position n.%d"),  \
                   j);                                                  \
-          return csound->InitError(csound, "%s", sbuf);                      \
+          return csound->InitError(csound, "%s", sbuf);                \
         }                                                              \
                                                                        \
         value = (MYFLT)((chanblock[slnum_msb]  * 128                   \
                          + chanblock[slnum_lsb]) * oneTOf14bit);       \
         if (*sld->ifn > 0) {    /* linear interpolation routine */     \
-          FUNC *ftp= csound->FTnp2Find(csound, sld->ifn);                 \
+          FUNC *ftp= csound->FTnp2Find(csound, sld->ifn);              \
           MYFLT phase = value * ftp->flen;                             \
           MYFLT *base = ftp->ftable + (int32)(phase);                  \
           value = *base + (*(base + 1) - *base) * (phase - (int32) phase); \
diff --git a/Opcodes/mixer.cpp b/Opcodes/mixer.cpp
index bcaf379..bf045cf 100644
--- a/Opcodes/mixer.cpp
+++ b/Opcodes/mixer.cpp
@@ -1,3 +1,25 @@
+/*
+    mixer.cpp:
+
+    Copyright (C) 2005 by Michael Gogins
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
 #include "OpcodeBase.hpp"
 #include <map>
 #include <vector>
@@ -13,15 +35,12 @@ using namespace csound;
 /**
  * The mixer busses are laid out:
  * busses[csound][bus][channel][frame].
- */
-static std::map<CSOUND *, std::map<size_t,
-       std::vector< std::vector<MYFLT> > > > *busses = 0;
-
-/**
+ * std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses = 0;
+ *
  * The mixer send matrix is laid out:
  * matrix[csound][send][bus].
+ * std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
  */
-static std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
 
 /**
  * Creates the buss if it does not already exist.
@@ -29,23 +48,25 @@ static std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix =
 static void createBuss(CSOUND *csound, size_t buss)
 {
 #ifdef ENABLE_MIXER_IDEBUG
-    csound->Message(csound, "createBuss: csound %p buss %d...\n", csound, buss);
+        csound->Message(csound, "createBuss: csound %p buss %d...\n", csound, buss);
 #endif
-    if((*busses)[csound].find(buss) == (*busses)[csound].end()) {
-        size_t channels = csound->GetNchnls(csound);
-        size_t frames = csound->GetKsmps(csound);
-        (*busses)[csound][buss].resize(channels);
-        for(size_t channel = 0; channel < channels; channel++) {
-            (*busses)[csound][buss][channel].resize(frames);
-        }
+    std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses = 0;
+    csound::QueryGlobalPointer(csound, "busses", busses);
+        if ((*busses)[csound].find(buss) == (*busses)[csound].end()) {
+                size_t channels = csound->GetNchnls(csound);
+                size_t frames = csound->GetKsmps(csound);
+                (*busses)[csound][buss].resize(channels);
+                for (size_t channel = 0; channel < channels; channel++) {
+                        (*busses)[csound][buss][channel].resize(frames);
+                }
 #ifdef ENABLE_MIXER_IDEBUG
-        csound->Message(csound, "createBuss: created buss.\n");
+                csound->Message(csound, "createBuss: created buss.\n");
 #endif
-    } else {
+        } else {
 #ifdef ENABLE_MIXER_IDEBUG
-        csound->Message(csound, "createBuss: buss already exists.\n");
+                csound->Message(csound, "createBuss: buss already exists.\n");
 #endif
-    }
+        }
 }
 
 /**
@@ -54,38 +75,40 @@ static void createBuss(CSOUND *csound, size_t buss)
  * Controls the gain of any signal route from a send to a bus
  */
 struct MixerSetLevel : public OpcodeBase<MixerSetLevel> {
-    // No outputs.
-    // Inputs.
-    MYFLT *isend;
-    MYFLT *ibuss;
-    MYFLT *kgain;
-    // State.
-    size_t send;
-    size_t buss;
-    int init(CSOUND *csound)
-    {
+        // No outputs.
+        // Inputs.
+        MYFLT *isend;
+        MYFLT *ibuss;
+        MYFLT *kgain;
+        // State.
+        size_t send;
+        size_t buss;
+    std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix;
+        int init(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerSetLevel::init...\n");
+                warn(csound, "MixerSetLevel::init...\n");
 #endif
-        send = static_cast<size_t>(*isend);
-        buss = static_cast<size_t>(*ibuss);
-        createBuss(csound, buss);
-        (*matrix)[csound][send][buss] = *kgain;
+        csound::QueryGlobalPointer(csound, "matrix", matrix);
+                send = static_cast<size_t>(*isend);
+                buss = static_cast<size_t>(*ibuss);
+                createBuss(csound, buss);
+                (*matrix)[csound][send][buss] = *kgain;
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerSetLevel::init: csound %p send %d buss %d gain %f\n",
-             csound, send, buss, (*matrix)[csound][send][buss]);
+                warn(csound, "MixerSetLevel::init: csound %p send %d buss %d gain %f\n",
+                     csound, send, buss, (*matrix)[csound][send][buss]);
 #endif
-        return OK;
-    }
-    int kontrol(CSOUND *csound)
-    {
-        (*matrix)[csound][send][buss] = *kgain;
+                return OK;
+        }
+        int kontrol(CSOUND *csound)
+        {
+                (*matrix)[csound][send][buss] = *kgain;
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerSetLevel::kontrol: csound %p send %d buss "
-             "%d gain %f\n", csound, send, buss, (*matrix)[csound][send][buss]);
+                warn(csound, "MixerSetLevel::kontrol: csound %p send %d buss "
+                     "%d gain %f\n", csound, send, buss, (*matrix)[csound][send][buss]);
 #endif
-        return OK;
-    }
+                return OK;
+        }
 };
 
 /**
@@ -94,36 +117,38 @@ struct MixerSetLevel : public OpcodeBase<MixerSetLevel> {
  * Returns the gain of any signal route from a send to a bus.
  */
 struct MixerGetLevel : public OpcodeBase<MixerGetLevel> {
-    //.
-    MYFLT *kgain;
-    // Inputs.
-    MYFLT *isend;
-    MYFLT *ibuss;
-    // State.
-    size_t send;
-    size_t buss;
-    int init(CSOUND *csound)
-    {
+        //.
+        MYFLT *kgain;
+        // Inputs.
+        MYFLT *isend;
+        MYFLT *ibuss;
+        // State.
+        size_t send;
+        size_t buss;
+    std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix;
+        int init(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerGetLevel::init...\n");
+                warn(csound, "MixerGetLevel::init...\n");
 #endif
-        send = static_cast<size_t>(*isend);
-        buss = static_cast<size_t>(*ibuss);
-        createBuss(csound, buss);
-        return OK;
-    }
-    int noteoff(CSOUND *)
-    {
-        return OK;
-    }
-    int kontrol(CSOUND *csound)
-    {
+        csound::QueryGlobalPointer(csound, "matrix", matrix);
+                send = static_cast<size_t>(*isend);
+                buss = static_cast<size_t>(*ibuss);
+                createBuss(csound, buss);
+                return OK;
+        }
+        int noteoff(CSOUND *)
+        {
+                return OK;
+        }
+        int kontrol(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerGetLevel::kontrol...\n");
+                warn(csound, "MixerGetLevel::kontrol...\n");
 #endif
-        *kgain = (*matrix)[csound][send][buss];
-        return OK;
-    }
+                *kgain = (*matrix)[csound][send][buss];
+                return OK;
+        }
 };
 /**
  * MixerSend asignal, isend, ibus, ichannel
@@ -132,55 +157,59 @@ struct MixerGetLevel : public OpcodeBase<MixerGetLevel> {
  * The gain of the send is controlled by the previously set mixer level.
  */
 struct MixerSend : public OpcodeBase<MixerSend> {
-    // No outputs.
-    // Inputs.
-    MYFLT *ainput;
-    MYFLT *isend;
-    MYFLT *ibuss;
-    MYFLT *ichannel;
-    // State.
-    size_t send;
-    size_t buss;
-    size_t channel;
-    size_t frames;
-    MYFLT *busspointer;
-    int init(CSOUND *csound)
-    {
+        // No outputs.
+        // Inputs.
+        MYFLT *ainput;
+        MYFLT *isend;
+        MYFLT *ibuss;
+        MYFLT *ichannel;
+        // State.
+        size_t send;
+        size_t buss;
+        size_t channel;
+        size_t frames;
+        MYFLT *busspointer;
+    std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses;
+    std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix;
+        int init(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerSend::init...\n");
+                warn(csound, "MixerSend::init...\n");
 #endif
-        send = static_cast<size_t>(*isend);
-        buss = static_cast<size_t>(*ibuss);
-        createBuss(csound, buss);
-        channel = static_cast<size_t>(*ichannel);
-        frames = opds.insdshead->ksmps;
-        busspointer = &(*busses)[csound][buss][channel].front();
+        csound::QueryGlobalPointer(csound, "busses", busses);
+        csound::QueryGlobalPointer(csound, "matrix", matrix);
+                send = static_cast<size_t>(*isend);
+                buss = static_cast<size_t>(*ibuss);
+                createBuss(csound, buss);
+                channel = static_cast<size_t>(*ichannel);
+                frames = opds.insdshead->ksmps;
+                busspointer = &(*busses)[csound][buss][channel].front();
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerSend::init: instance %p send %d buss "
-             "%d channel %d frames %d busspointer %p\n",
-             csound, send, buss, channel, frames, busspointer);
+                warn(csound, "MixerSend::init: instance %p send %d buss "
+                     "%d channel %d frames %d busspointer %p\n",
+                     csound, send, buss, channel, frames, busspointer);
 #endif
-        return OK;
-    }
-    int noteoff(CSOUND *)
-    {
-        return OK;
-    }
-    int audio(CSOUND *csound)
-    {
+                return OK;
+        }
+        int noteoff(CSOUND *)
+        {
+                return OK;
+        }
+        int audio(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerSend::audio...\n");
+                warn(csound, "MixerSend::audio...\n");
 #endif
-        MYFLT gain = (*matrix)[csound][send][buss];
-        for(size_t i = 0; i < frames; i++) {
-            busspointer[i] += (ainput[i] * gain);
-        }
+                MYFLT gain = (*matrix)[csound][send][buss];
+                for (size_t i = 0; i < frames; i++) {
+                        busspointer[i] += (ainput[i] * gain);
+                }
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerSend::audio: instance %d send %d buss "
-             "%d gain %f busspointer %p\n", csound, send, buss, gain, busspointer);
+                warn(csound, "MixerSend::audio: instance %d send %d buss "
+                     "%d gain %f busspointer %p\n", csound, send, buss, gain, busspointer);
 #endif
-        return OK;
-    }
+                return OK;
+        }
 };
 
 /**
@@ -191,51 +220,53 @@ struct MixerSend : public OpcodeBase<MixerSend> {
  * than instruments sending those signals.
  */
 struct MixerReceive : public OpcodeBase<MixerReceive> {
-    // Output.
-    MYFLT *aoutput;
-    // Inputs.
-    MYFLT *ibuss;
-    MYFLT *ichannel;
-    // State.
-    size_t buss;
-    size_t channel;
-    size_t frames;
-    MYFLT *busspointer;
-    int init(CSOUND *csound)
-    {
-        buss = static_cast<size_t>(*ibuss);
-        channel = static_cast<size_t>(*ichannel);
-        frames = opds.insdshead->ksmps;
-        createBuss(csound, buss);
+        // Output.
+        MYFLT *aoutput;
+        // Inputs.
+        MYFLT *ibuss;
+        MYFLT *ichannel;
+        // State.
+        size_t buss;
+        size_t channel;
+        size_t frames;
+        MYFLT *busspointer;
+    std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses;
+        int init(CSOUND *csound)
+        {
+        csound::QueryGlobalPointer(csound, "busses", busses);
+                buss = static_cast<size_t>(*ibuss);
+                channel = static_cast<size_t>(*ichannel);
+                frames = opds.insdshead->ksmps;
+                createBuss(csound, buss);
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerReceive::init...\n");
+                warn(csound, "MixerReceive::init...\n");
 #endif
-        busspointer = &(*busses)[csound][buss][channel].front();
+                busspointer = &(*busses)[csound][buss][channel].front();
 #ifdef ENABLE_MIXER_IDEBUG
-        warn(csound, "MixerReceive::init csound %p buss %d channel "
-             "%d frames %d busspointer %p\n", csound, buss, channel,
-             frames, busspointer);
+                warn(csound, "MixerReceive::init csound %p buss %d channel "
+                     "%d frames %d busspointer %p\n", csound, buss, channel,
+                     frames, busspointer);
 #endif
-        return OK;
-    }
-    int noteoff(CSOUND *)
-    {
-        return OK;
-    }
-    int audio(CSOUND *csound)
-    {
+                return OK;
+        }
+        int noteoff(CSOUND *)
+        {
+                return OK;
+        }
+        int audio(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerReceive::audio...\n");
+                warn(csound, "MixerReceive::audio...\n");
 #endif
-        for(size_t i = 0; i < frames; i++) {
-            aoutput[i] = busspointer[i];
-        }
+                for (size_t i = 0; i < frames; i++) {
+                        aoutput[i] = busspointer[i];
+                }
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerReceive::audio aoutput %p busspointer %p\n",
-             aoutput, buss);
+                warn(csound, "MixerReceive::audio aoutput %p busspointer %p\n",
+                     aoutput, buss);
 #endif
-        return OK;
-    }
+                return OK;
+        }
 };
 
 /**
@@ -246,185 +277,205 @@ struct MixerReceive : public OpcodeBase<MixerReceive> {
  * with an indefinite duration that invokes only this opcode.
  */
 struct MixerClear : public OpcodeBase<MixerClear> {
-    // No output.
-    // No input.
-    // No state.
-    int audio(CSOUND *csound)
+        // No output.
+        // No input.
+        // State.
+    std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses;
+    int init(CSOUND *csound)
     {
+        csound::QueryGlobalPointer(csound, "busses", busses);
+        return OK;
+    }
+        int audio(CSOUND *csound)
+        {
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerClear::audio...\n")
+                warn(csound, "MixerClear::audio...\n")
 #endif
-        for(std::map<size_t,
-                std::vector< std::vector<MYFLT> > >::iterator
-                busi = (*busses)[csound].begin(); busi != (*busses)[csound].end(); ++busi) {
-            for(std::vector< std::vector<MYFLT> >::iterator
-                    channeli = busi->second.begin();
-                    channeli != busi->second.end(); ++channeli) {
-                for(std::vector<MYFLT>::iterator
-                        framei = (*channeli).begin();
-                        framei != (*channeli).end(); ++framei) {
-                    *framei = 0;
+                for (std::map<size_t,
+                        std::vector< std::vector<MYFLT> > >::iterator
+                        busi = (*busses)[csound].begin();
+                        busi != (*busses)[csound].end(); ++busi) {
+                        for (std::vector< std::vector<MYFLT> >::iterator
+                                channeli = busi->second.begin();
+                                channeli != busi->second.end(); ++channeli) {
+                                for (std::vector<MYFLT>::iterator
+                                        framei = (*channeli).begin();
+                                        framei != (*channeli).end(); ++framei) {
+                                        *framei = 0;
+                                }
+                        }
                 }
-            }
-        }
 #ifdef ENABLE_MIXER_KDEBUG
-        warn(csound, "MixerClear::audio\n")
+                warn(csound, "MixerClear::audio\n")
 #endif
-        return OK;
-    }
+                return OK;
+        }
 };
 
 extern "C"
 {
 
-    static OENTRY localops[] = {
-        {
-            (char*)"MixerSetLevel",
-            sizeof(MixerSetLevel),
-            _CW,
-            3,
-            (char*)"",
-            (char*)"iik",
-            (SUBR)&MixerSetLevel::init_,
-            (SUBR)&MixerSetLevel::kontrol_,
-            0
-        },
-        {
-            (char*)"MixerSetLevel_i",
-            sizeof(MixerSetLevel),
-            _CW,
-            1,
-            (char*)"",
-            (char*)"iii",
-            (SUBR)&MixerSetLevel::init_,
-            0,
-            0
-        },
-        {
-            (char*)"MixerGetLevel",
-            sizeof(MixerGetLevel),
-            _CR,
-            3,
-            (char*)"k",
-            (char*)"ii",
-            (SUBR)&MixerGetLevel::init_,
-            (SUBR)&MixerGetLevel::kontrol_,
-            0
-        },
-        {
-            (char*)"MixerSend",
-            sizeof(MixerSend),
-            _CR,
-            5,
-            (char*)"",
-            (char*)"aiii",
-            (SUBR)&MixerSend::init_,
-            0,
-            (SUBR)&MixerSend::audio_
-        },
-        {
-            (char*)"MixerReceive",
-            sizeof(MixerReceive),
-            _CW,
-            5,
-            (char*)"a",
-            (char*)"ii",
-            (SUBR)&MixerReceive::init_,
-            0,
-            (SUBR)&MixerReceive::audio_
-        },
-        {
-            (char*)"MixerClear",
-            sizeof(MixerClear),
-            0,
-            4,
-            (char*)"",
-            (char*)"",
-            0,
-            0,
-            (SUBR)&MixerClear::audio_
-        },
-        { NULL, 0, 0, 0, NULL, NULL, (SUBR) NULL, (SUBR) NULL, (SUBR) NULL }
-    };
-
-    PUBLIC int csoundModuleCreate_mixer(CSOUND *csound)
-    {
-        busses = new std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > >;
-        matrix = new std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > >;
-        return OK;
-    }
+        static OENTRY localops[] = {
+                {
+                        (char *)"MixerSetLevel",
+                        sizeof(MixerSetLevel),
+                        _CW,
+                        3,
+                        (char *)"",
+                        (char *)"iik",
+                        (SUBR) &MixerSetLevel::init_,
+                        (SUBR) &MixerSetLevel::kontrol_,
+                        0
+                },
+                {
+                        (char *)"MixerSetLevel_i",
+                        sizeof(MixerSetLevel),
+                        _CW,
+                        1,
+                        (char *)"",
+                        (char *)"iii",
+                        (SUBR) &MixerSetLevel::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"MixerGetLevel",
+                        sizeof(MixerGetLevel),
+                        _CR,
+                        3,
+                        (char *)"k",
+                        (char *)"ii",
+                        (SUBR) &MixerGetLevel::init_,
+                        (SUBR) &MixerGetLevel::kontrol_,
+                        0
+                },
+                {
+                        (char *)"MixerSend",
+                        sizeof(MixerSend),
+                        _CR,
+                        5,
+                        (char *)"",
+                        (char *)"aiii",
+                        (SUBR) &MixerSend::init_,
+                        0,
+                        (SUBR) &MixerSend::audio_
+                },
+                {
+                        (char *)"MixerReceive",
+                        sizeof(MixerReceive),
+                        _CW,
+                        5,
+                        (char *)"a",
+                        (char *)"ii",
+                        (SUBR) &MixerReceive::init_,
+                        0,
+                        (SUBR) &MixerReceive::audio_
+                },
+                {
+                        (char *)"MixerClear",
+                        sizeof(MixerClear),
+                        0,
+                        5,
+                        (char *)"",
+                        (char *)"",
+                        (SUBR) &MixerClear::init_,
+                        0,
+                        (SUBR) &MixerClear::audio_
+                },
+                { NULL, 0, 0, 0, NULL, NULL, (SUBR) NULL, (SUBR) NULL, (SUBR) NULL }
+        };
 
-    PUBLIC int csoundModuleInit_mixer(CSOUND *csound)
-    {
-        OENTRY  *ep = (OENTRY*) &(localops[0]);
-        int     err = 0;
 
-        while (ep->opname != NULL) {
-            err |= csound->AppendOpcode(csound,
-                                        ep->opname, ep->dsblksiz, ep->flags,
-                                        ep->thread, ep->outypes, ep->intypes,
-                                        (int (*)(CSOUND *, void*)) ep->iopadr,
-                                        (int (*)(CSOUND *, void*)) ep->kopadr,
-                                        (int (*)(CSOUND *, void*)) ep->aopadr);
-            ep++;
+        PUBLIC int csoundModuleCreate_mixer(CSOUND *csound)
+        {
+                std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses = 0;
+                busses = new std::map<CSOUND *,
+                std::map<size_t, std::vector< std::vector<MYFLT> > > >;
+                csound::CreateGlobalPointer(csound, "busses", busses);
+                std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
+                matrix = new std::map<CSOUND *,
+                std::map<size_t, std::map<size_t, MYFLT> > >;
+                csound::CreateGlobalPointer(csound, "matrix", matrix);
+                return OK;
         }
-        return err;
-    }
 
-    /*
-     * The mixer busses are laid out:
-     * busses[csound][bus][channel][frame].
-     * std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses = 0;
-     * The mixer send matrix is laid out:
-     * matrix[csound][send][bus].
-     * std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
-     */
-    PUBLIC int csoundModuleDestroy_mixer(CSOUND *csound)
-    {
-      if(busses) {
-        for(std::map<size_t,
-                std::vector< std::vector<MYFLT> > >::iterator
-                busi = (*busses)[csound].begin(); busi != (*busses)[csound].end(); ++busi) {
-            for(std::vector< std::vector<MYFLT> >::iterator
-                    channeli = busi->second.begin();
-                    channeli != busi->second.end(); ++channeli) {
-                channeli->resize(0);
-            }
-            busi->second.clear();
+        PUBLIC int csoundModuleInit_mixer(CSOUND *csound)
+        {
+                OENTRY  *ep = (OENTRY *) &(localops[0]);
+                int     err = 0;
+
+                while (ep->opname != NULL) {
+                        err |= csound->AppendOpcode(csound,
+                                                    ep->opname, ep->dsblksiz, ep->flags,
+                                                    ep->thread, ep->outypes, ep->intypes,
+                                                    (int (*)(CSOUND *, void *)) ep->iopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->kopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->aopadr);
+                        ep++;
+                }
+                return err;
         }
-        busses->clear();
-        delete busses;
-        busses = 0;
-      }
-      if(matrix) {
-        // std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > >
-        for(std::map<size_t, std::map<size_t, MYFLT> >::iterator
-                matrixi = (*matrix)[csound].begin(); matrixi != (*matrix)[csound].end(); ++matrixi) {
-             matrixi->second.clear();
+
+        /*
+         * The mixer busses are laid out:
+         * busses[csound][bus][channel][frame].
+         * std::map<CSOUND *, std::map<size_t,
+         *          std::vector< std::vector<MYFLT> > > > *busses = 0;
+         * The mixer send matrix is laid out:
+         * matrix[csound][send][bus].
+         * std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
+         */
+        PUBLIC int csoundModuleDestroy_mixer(CSOUND *csound)
+        {
+                std::map<CSOUND *, std::map<size_t, std::vector< std::vector<MYFLT> > > > *busses = 0;
+                csound::QueryGlobalPointer(csound, "busses", busses);
+                if (busses) {
+                        for (std::map<size_t,
+                                std::vector< std::vector<MYFLT> > >::iterator
+                                busi = (*busses)[csound].begin();
+                                busi != (*busses)[csound].end(); ++busi) {
+                                for (std::vector< std::vector<MYFLT> >::iterator
+                                        channeli = busi->second.begin();
+                                        channeli != busi->second.end(); ++channeli) {
+                                        channeli->resize(0);
+                                }
+                                busi->second.clear();
+                        }
+                        busses->clear();
+                        csound::DestroyGlobalPointer(csound, "busses", busses);
+                        busses = 0;
+                }
+                std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > > *matrix = 0;
+                csound::QueryGlobalPointer(csound, "matrix", matrix);
+                if (matrix) {
+                        // std::map<CSOUND *, std::map<size_t, std::map<size_t, MYFLT> > >
+                        for (std::map<size_t, std::map<size_t, MYFLT> >::iterator
+                                matrixi = (*matrix)[csound].begin();
+                                matrixi != (*matrix)[csound].end(); ++matrixi) {
+                                matrixi->second.clear();
+                        }
+                        matrix->clear();
+                        csound::DestroyGlobalPointer(csound, "matrix", matrix);
+                        matrix = 0;
+                }
+                return OK;
         }
-        matrix->clear();
-        delete matrix;
-        matrix = 0;
-      }
-        return OK;
-    }
 
 
 #ifndef INIT_STATIC_MODULES
-    PUBLIC int csoundModuleCreate(CSOUND *csound)
-    {
-        return csoundModuleCreate_mixer(csound);
-    }
+        PUBLIC int csoundModuleCreate(CSOUND *csound)
+        {
+                return csoundModuleCreate_mixer(csound);
+        }
 
-    PUBLIC int csoundModuleInit(CSOUND *csound)
-    {
-        return csoundModuleInit_mixer(csound);
-    }
+        PUBLIC int csoundModuleInit(CSOUND *csound)
+        {
+                return csoundModuleInit_mixer(csound);
+        }
 
-    PUBLIC int csoundModuleDestroy(CSOUND *csound)
-    {
-        return csoundModuleDestroy_mixer(csound);
-    }
+        PUBLIC int csoundModuleDestroy(CSOUND *csound)
+        {
+                return csoundModuleDestroy_mixer(csound);
+        }
 #endif
 }   // END EXTERN C
-
diff --git a/Opcodes/moog1.c b/Opcodes/moog1.c
index aadf8fa..a6e5399 100644
--- a/Opcodes/moog1.c
+++ b/Opcodes/moog1.c
@@ -225,7 +225,7 @@ int Moog1(CSOUND *csound, MOOG1 *p)
     for (n = offset; n<nsmps; n++) {
       MYFLT     temp;
       MYFLT     output;
-      int32      itemp;
+      int32     itemp;
       MYFLT     temp_time, alpha;
 
       if (vib != FL(0.0)) {
diff --git a/Opcodes/mp3in.c b/Opcodes/mp3in.c
index a9ec9c9..346fa88 100644
--- a/Opcodes/mp3in.c
+++ b/Opcodes/mp3in.c
@@ -56,11 +56,13 @@ typedef struct {
 
 int mp3in_cleanup(CSOUND *csound, MP3IN *p)
 {
-    if (p->mpa != NULL)
+    if (LIKELY(p->mpa != NULL))
       mp3dec_uninit(p->mpa);
+    p->mpa = NULL;
     return OK;
 }
 
+
 int mp3ininit_(CSOUND *csound, MP3IN *p, int stringname)
 {
     char    name[1024];
@@ -99,7 +101,7 @@ int mp3ininit_(CSOUND *csound, MP3IN *p, int stringname)
 
 
     /* FIXME: name can overflow with very long string */
-    if(stringname==0){
+    if (stringname==0){
       if (csound->ISSTRCOD(*p->iFileCode))
         strncpy(name,get_arg_string(csound, *p->iFileCode), 1023);
       else csound->strarg2name(csound, name, p->iFileCode, "soundin.",0);
@@ -184,7 +186,7 @@ int mp3ininit_(CSOUND *csound, MP3IN *p, int stringname)
     //if(!skip)
     //mp3dec_seek(mpa, skip, MP3DEC_SEEK_SAMPLES);
     p->r = r;
-    if(p->initDone == -1)
+    if (p->initDone == 0)
       csound->RegisterDeinitCallback(csound, p,
                                      (int (*)(CSOUND*, void*)) mp3in_cleanup);
     /* done initialisation */
@@ -377,7 +379,7 @@ static int sinit(CSOUND *csound, DATASPACE *p)
       for (i=0; N; i++) {
         N >>= 1;
       }
-      N = (int) pow(2.0, i-1);
+      N = (int) pow(2.0, i-1);  /* could be a shift? */
     } else N = 2048;
     if (decim == 0) decim = 4;
 
@@ -503,19 +505,23 @@ static int sinit3_(CSOUND *csound, DATASPACE *p)
       clock_gettime(CLOCK_MONOTONIC, &ts);
       dtime = ts.tv_sec + 1e-9*ts.tv_nsec;*/
 
-    sinit(csound, p);
-    size = p->N*sizeof(MYFLT)*BUFS;
-    if (p->fdata[0].auxp == NULL || p->fdata[0].size < size)
-      csound->AuxAlloc(csound, size, &p->fdata[0]);
-    p->indataL[0] = p->fdata[0].auxp;
-    p->indataL[1] = ((char*)p->fdata[0].auxp) + size/2;
-    if (p->fdata[1].auxp == NULL || p->fdata[1].size < size)
-      csound->AuxAlloc(csound, size, &p->fdata[1]);
-    p->indataR[0] = p->fdata[1].auxp;
-    p->indataR[1] = ((char*)p->fdata[1].auxp) + size/2;
-    if (p->buffer.auxp == NULL || p->buffer.size < size)
-      csound->AuxAlloc(csound, size, &p->buffer);
-
+    {
+      char *ps;
+      sinit(csound, p);
+      size = p->N*sizeof(MYFLT)*BUFS;
+      if (p->fdata[0].auxp == NULL || p->fdata[0].size < size)
+        csound->AuxAlloc(csound, size, &p->fdata[0]);
+      ps = (char *) p->fdata[0].auxp;
+      p->indataL[0] = (MYFLT*) ps;
+      p->indataL[1] = (MYFLT*) (ps + size/2);
+      if (p->fdata[1].auxp == NULL || p->fdata[1].size < size)
+        csound->AuxAlloc(csound, size, &p->fdata[1]);
+      ps = (char *) p->fdata[1].auxp;
+      p->indataR[0] = (MYFLT*) ps;
+      p->indataR[1] = (MYFLT*) (ps + size/2);
+      if (p->buffer.auxp == NULL || p->buffer.size < size)
+        csound->AuxAlloc(csound, size, &p->buffer);
+    }
     /*
       memset(&(p->fdch), 0, sizeof(FDCH));
       p->fdch.fd = fd;
@@ -1210,17 +1216,17 @@ typedef struct _check {
 
 
 static int check_init(CSOUND *csound, CHECK *p){
-  if(p->pp->data != NULL &&
-     p->pp->size != sizeof(MP3SCAL2)) {
-    p->p = (MP3SCAL2 *) p->pp->data;
-  }
-  else return csound->InitError(csound, "invalid handle \n");
-  return OK;
+    if(p->pp->data != NULL &&
+       p->pp->size != sizeof(MP3SCAL2)) {
+      p->p = (MP3SCAL2 *) p->pp->data;
+    }
+    else return csound->InitError(csound, "invalid handle \n");
+    return OK;
 }
 
 static int check_play(CSOUND *csound, CHECK *p){
-  *p->res = p->p->init;
-  return OK;
+    *p->res = p->p->init;
+    return OK;
 }
 
 #ifdef HAVE_NEON
diff --git a/Opcodes/newfils.c b/Opcodes/newfils.c
index e0704f6..0b33883 100644
--- a/Opcodes/newfils.c
+++ b/Opcodes/newfils.c
@@ -853,6 +853,7 @@ static int statevar_process(CSOUND *csound,statevar *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t i, nsmps = CS_KSMPS;
+    int      asgfr = IS_ASIG_ARG(p->freq), asgrs = IS_ASIG_ARG(p->res);
 
     if (UNLIKELY(offset)) {
       memset(outhp, '\0', offset*sizeof(MYFLT));
@@ -871,8 +872,8 @@ static int statevar_process(CSOUND *csound,statevar *p)
     f = p->oldf;
 
     for (i=offset; i<nsmps; i++) {
-      MYFLT fr = (IS_ASIG_ARG(p->freq) ? freq[i] : *freq);
-      MYFLT rs = (IS_ASIG_ARG(p->res) ? res[i] : *res);
+      MYFLT fr = (asgfr ? freq[i] : *freq);
+      MYFLT rs = (asgrs ? res[i] : *res);
       if (p->oldfreq != fr|| p->oldres != rs) {
         f = 2.0*sin(fr*(double)csound->pidsr/ostimes);
         q = 1.0/rs;
@@ -931,6 +932,8 @@ static int fofilter_process(CSOUND *csound,fofilter *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t i, nsmps = CS_KSMPS;
     MYFLT lfrq = -FL(1.0), lrs = -FL(1.0), ldc = -FL(1.0);
+    int   asgfr = IS_ASIG_ARG(p->freq) , asgrs = IS_ASIG_ARG(p->ris);
+    int   asgdc = IS_ASIG_ARG(p->dec);
 
     if (UNLIKELY(offset)) memset(out, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -938,9 +941,9 @@ static int fofilter_process(CSOUND *csound,fofilter *p)
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (i=offset;i<nsmps;i++) {
-      MYFLT frq = IS_ASIG_ARG(p->freq) ? freq[i] : *freq;
-      MYFLT rs = IS_ASIG_ARG(p->ris) ? ris[i] : *ris;
-      MYFLT dc = IS_ASIG_ARG(p->dec) ? dec[i] : *dec;
+      MYFLT frq = asgfr ? freq[i] : *freq;
+      MYFLT rs = asgrs ? ris[i] : *ris;
+      MYFLT dc = asgdc ? dec[i] : *dec;
       if (frq != lfrq || rs != lrs || dc != ldc) {
         lfrq = frq; lrs = rs; ldc = dc;
         ang = (double)csound->tpidsr*frq;         /* pole angle */
diff --git a/Opcodes/nlfilt.c b/Opcodes/nlfilt.c
index e69b590..7e44016 100644
--- a/Opcodes/nlfilt.c
+++ b/Opcodes/nlfilt.c
@@ -237,7 +237,7 @@ int pinit(CSOUND *csound, PINIT *p)
     int    pargs = csound->currevent->pcnt;
     int    start = (int)(*p->start);
     /* Should check that inits exist> */
-    if (nargs>pargs)
+    if (UNLIKELY(nargs>pargs))
       csound->Warning(csound, Str("More arguments than p fields"));
     for (n=0; (n<nargs) && (n<=pargs-start); n++) {
       if (csound->ISSTRCOD(csound->currevent->p[n+start])) {
diff --git a/Opcodes/oscbnk.c b/Opcodes/oscbnk.c
index 1b613a2..801d0a8 100644
--- a/Opcodes/oscbnk.c
+++ b/Opcodes/oscbnk.c
@@ -940,6 +940,7 @@ static int grain3(CSOUND *csound, GRAIN3 *p)
       f = w_frq_f / x_frq_f;
       g_frq = (f > FL(0.99999) ? OSCBNK_PHSMAX : OSCBNK_PHS2INT(f));
       /* initial window phase */
+      // COVERITY: g_frq is not zero, as it is derived from 1/sr
       g_ph = OSCBNK_PHSMAX % g_frq;
       if (g_ph < (OSCBNK_PHSMAX >> 16)) g_ph += g_frq;
       g_ph = OSCBNK_PHSMAX - g_ph;
@@ -1555,6 +1556,11 @@ static void vco2_calculate_table(CSOUND *csound,
     MYFLT   *fftbuf;
     int     i, minh;
 
+    if(table->ftable == NULL) {
+      csound->InitError(csound, "function table is NULL, check that ibasfn is available\n");
+      return;
+    }
+
     /* allocate memory for FFT */
     fftbuf = (MYFLT*) csound->Malloc(csound, sizeof(MYFLT) * (table->size + 2));
     if (tp->waveform >= 0) {                        /* no DC offset for   */
diff --git a/Opcodes/padsynth_gen.cpp b/Opcodes/padsynth_gen.cpp
index 1d14ba4..30bb236 100644
--- a/Opcodes/padsynth_gen.cpp
+++ b/Opcodes/padsynth_gen.cpp
@@ -20,8 +20,9 @@
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  02111-1307 USA
 */
-extern "C" {
-#include "csdl.h"
+extern "C"
+{
+    #include "csdl.h"
 }
 #include <cmath>
 #include <complex>
diff --git a/Opcodes/pan2.c b/Opcodes/pan2.c
index b078de2..4d58ddd 100644
--- a/Opcodes/pan2.c
+++ b/Opcodes/pan2.c
@@ -54,6 +54,7 @@ static int pan2run(CSOUND *csound, PAN2 *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
+    int      asgp = IS_ASIG_ARG(p->pan);
 
     if (UNLIKELY(offset)) {
       memset(ar, '\0', offset*sizeof(MYFLT));
@@ -69,7 +70,7 @@ static int pan2run(CSOUND *csound, PAN2 *p)
       {
         MYFLT kangl = PI_F*FL(0.5) * *p->pan;
         for (n=offset; n<nsmps; n++) {
-          if (IS_ASIG_ARG(p->pan)) kangl = PI_F*FL(0.5) * p->pan[n];
+          if (asgp) kangl = PI_F*FL(0.5) * p->pan[n];
           ar[n] = ain[n] * SIN(kangl);
         al[n] = ain[n] * COS(kangl);
         }
@@ -79,7 +80,7 @@ static int pan2run(CSOUND *csound, PAN2 *p)
       {
         MYFLT kangl = *p->pan;
         for (n=offset; n<nsmps; n++) {
-          if (IS_ASIG_ARG(p->pan)) kangl = p->pan[n];
+          if (asgp) kangl = p->pan[n];
           ar[n] = ain[n] * SQRT(kangl);
           al[n] = ain[n] * SQRT(FL(1.0)-kangl);
         }
@@ -89,7 +90,7 @@ static int pan2run(CSOUND *csound, PAN2 *p)
       {
         MYFLT kangl = *p->pan;
         for (n=offset; n<nsmps; n++) {
-          if (IS_ASIG_ARG(p->pan)) kangl = p->pan[n];
+          if (asgp) kangl = p->pan[n];
           ar[n] = ain[n] * kangl;
           al[n] = ain[n] * (FL(1.0)-kangl);
         }
@@ -99,7 +100,7 @@ static int pan2run(CSOUND *csound, PAN2 *p)
       {
         MYFLT kangl = *p->pan, cc, ss, l, r;
         for (n=offset; n<nsmps; n++) {
-          if (IS_ASIG_ARG(p->pan)) kangl = p->pan[n];
+          if (asgp) kangl = p->pan[n];
           cc = COS(PI*kangl*FL(0.5));
           ss = SIN(PI*kangl*FL(0.5));
           l = SQRT2*(cc+ss)*0.5;
diff --git a/Opcodes/partials.c b/Opcodes/partials.c
index 5947577..e6007c5 100644
--- a/Opcodes/partials.c
+++ b/Opcodes/partials.c
@@ -173,14 +173,15 @@ static int partials_init(CSOUND * csound, _PARTS * p)
     p->mtracks = maxtracks;
 
     if (UNLIKELY(p->fin1->format != PVS_AMP_FREQ)) {
-      return csound->InitError(csound,
-                               "partials: first input not in AMP_FREQ format \n");
+      return
+        csound->InitError(csound,
+                          Str("partials: first input not in AMP_FREQ format \n"));
     }
 
     if (UNLIKELY(p->fin2->format != PVS_AMP_PHASE)) {
       csound->Warning(csound,
-                      "partials: no phase input, tracks will contain "
-                      "amp & freq only\n");
+                      Str("partials: no phase input, tracks will contain "
+                          "amp & freq only\n"));
       p->nophase = 1;
     }
     else
@@ -223,7 +224,7 @@ static void Analysis(CSOUND * csound, _PARTS * p)
     int     test1 = 1, test2 = 0;
 
     if(*p->kthresh >= 0) {
-    float max = 0.f;
+    float max = 0.0f;
     for (i = 0; i < numbins; i++)
       if (max < mags[i]) {
         max = mags[i];
@@ -231,7 +232,7 @@ static void Analysis(CSOUND * csound, _PARTS * p)
     absthresh = (float)(*p->kthresh * max);
     } else absthresh = (float)(-*p->kthresh * csound->Get0dBFS(csound));
 
-    logthresh = LOG(absthresh / 5.0f);
+    logthresh = logf(absthresh / 5.0f);
 
     /* Quadratic Interpolation
        obtains bin indexes and magnitudes
@@ -432,7 +433,7 @@ static int partials_process(CSOUND * csound, _PARTS * p)
     double  *bins = p->bins.auxp;
     int    *trndx = p->trndx.auxp;
     double   frac, a, b;
-
+    int maxtracks = (p->mtracks < numbins ? p->mtracks : numbins);
     end = numbins * 4;
 
     if (p->lastframe < p->fin1->framecount) {
@@ -442,7 +443,7 @@ static int partials_process(CSOUND * csound, _PARTS * p)
       Analysis(csound, p);
       /* fout holds [amp, freq, pha, ID] */
       tracks = p->tracks;
-      for (i = k = 0; i < end; i += 4, k++) {
+      for (i = k = 0; i < end && k < maxtracks; i += 4, k++) {
         if (k < tracks) {
           /* magnitudes */
           ndx = (int) bins[k];
diff --git a/Opcodes/paulstretch.c b/Opcodes/paulstretch.c
index ce5e32b..cf3743d 100644
--- a/Opcodes/paulstretch.c
+++ b/Opcodes/paulstretch.c
@@ -71,15 +71,15 @@ static void compute_block(CSOUND *csound, PAULSTRETCH *p)
     MYFLT *tmp = p->tmp;
     for (i = 0; i < windowsize; i++) {
       pos = istart_pos + i;
-      if (pos < p->ft->flen) {
+      if (LIKELY(pos < p->ft->flen)) {
         tmp[i] = tbl[pos] * window[i];
       } else {
-        tmp[i] = 0;
+        tmp[i] = FL(0.0);
       }
     }
     /* re-order bins and take FFT */
     tmp[p->windowsize] = tmp[1];
-    tmp[p->windowsize + 1] = 0.0;
+    tmp[p->windowsize + 1] = FL(0.0);
     csoundRealFFTnp2(csound, tmp, p->windowsize);
 
     /* randomize phase */
@@ -93,7 +93,7 @@ static void compute_block(CSOUND *csound, PAULSTRETCH *p)
       // TODO - Double check this is equivalent to non-windows complex definition
           _Fcomplex ph = { cos(x), sin(x) };
 #else
-      complex ph =  cos(x) + I*sin(x);
+      complex double ph =  cos(x) + I*sin(x);
 #endif
       tmp[i] = mag * (MYFLT)crealf(ph);
       tmp[i + 1] = mag * (MYFLT)cimagf(ph);
@@ -125,7 +125,7 @@ static int ps_init(CSOUND* csound, PAULSTRETCH *p)
       return csound->InitError(csound, Str("paulstretch: table not found"));
 
     p->ft = ftp;
-    p->windowsize = (uint32_t)floor((CS_ESR * *p->winsize));
+    p->windowsize = (uint32_t)FLOOR((CS_ESR * *p->winsize));
     if (p->windowsize < 16) {
       p->windowsize = 16;
     }
diff --git a/Opcodes/physmod.c b/Opcodes/physmod.c
index fa79b95..8af8df4 100644
--- a/Opcodes/physmod.c
+++ b/Opcodes/physmod.c
@@ -124,7 +124,7 @@ int clarinset(CSOUND *csound, CLARIN *p)
     if (*p->lowestFreq>=FL(0.0)) {      /* Skip initialisation */
       if (*p->lowestFreq)
         p->length = (int32) (CS_ESR / *p->lowestFreq + FL(1.0));
-      else if (*p->frequency)
+      else if (LIKELY(*p->frequency))
         p->length = (int32) (CS_ESR / *p->frequency + FL(1.0));
       else {
         csound->Warning(csound, Str("No base frequency for clarinet "
diff --git a/Opcodes/physutil.c b/Opcodes/physutil.c
index 4692abe..9848790 100644
--- a/Opcodes/physutil.c
+++ b/Opcodes/physutil.c
@@ -60,8 +60,6 @@ MYFLT Noise_tick(CSOUND *csound, Noise *n)
 
 void make_DLineL(CSOUND *csound, DLineL *p, int32 max_length)
 {
-/*     int i; */
-
     p->length = max_length;
     csound->AuxAlloc(csound, max_length * sizeof(MYFLT), &p->inputs);
     p->outPoint = 0;
@@ -71,9 +69,7 @@ void make_DLineL(CSOUND *csound, DLineL *p, int32 max_length)
 
 void DLineL_setDelay(DLineL *p, MYFLT lag)
 {
-    MYFLT outputPointer;
-
-    outputPointer = p->inPoint - lag; /* read chases write, + 1 for interp. */
+    MYFLT outputPointer = p->inPoint - lag; /* read chases write, +1 for interp. */
     while (outputPointer<FL(0.0))
       outputPointer += (MYFLT)p->length;           /* modulo maximum length */
     while (outputPointer>=(MYFLT)p->length)
diff --git a/Opcodes/pinker.c b/Opcodes/pinker.c
index c8add22..f83db76 100644
--- a/Opcodes/pinker.c
+++ b/Opcodes/pinker.c
@@ -84,7 +84,8 @@ static const int ind[] = {     0, 0x0800, 0x0400, 0x0800,
                           0x0100, 0x0800, 0x0400, 0x0800,
                           0x0200, 0x0800, 0x0400, 0x0800};
 
-static int pink_perf(CSOUND* csound, PINKER *p) /* generate samples of pink noise */
+ /* generate samples of pink noise */
+static int pink_perf(CSOUND* csound, PINKER *p)
 {
     int inc    =   p->inc;
     int dec    =   p->dec;
@@ -100,8 +101,8 @@ static int pink_perf(CSOUND* csound, PINKER *p) /* generate samples of pink nois
     MYFLT *out = p->ar;
     int loffset = p->offset;
     if (UNLIKELY(early)) {
-        nsmps -= early;
-      }
+      nsmps -= early;
+    }
     for (n=offset, nn=loffset; n<nsmps; n++, nn++) {
       int k = nn%16;   /* algorithm is in 16 sample chunks */
 
diff --git a/Opcodes/pitch.c b/Opcodes/pitch.c
index 82c8ec6..e759fbb 100644
--- a/Opcodes/pitch.c
+++ b/Opcodes/pitch.c
@@ -1420,7 +1420,7 @@ int GardnerPink_init(CSOUND *csound, PINKISH *p)
       /* Warn if user tried but failed to give sensible number */
       if (UNLIKELY(*p->iparam1 != FL(0.0)))
         csound->Warning(csound, Str("pinkish: Gardner method requires 4-%d bands. "
-                                    "Default %ld substituted for %d.\n"),
+                                    "Default %d substituted for %d.\n"),
                         GRD_MAX_RANDOM_ROWS, p->grd_NumRows,
                         (int) *p->iparam1);
     }
@@ -1682,7 +1682,7 @@ int trnset(CSOUND *csound, TRANSEG *p)
     MYFLT       **argp, val;
 
     if (UNLIKELY(p->INOCOUNT%3!=1))
-      csound->InitError(csound, Str("Incorrect argument count in transeg"));
+      return csound->InitError(csound, Str("Incorrect argument count in transeg"));
     nsegs = p->INOCOUNT / 3;            /* count segs & alloc if nec */
     if ((segp = (NSEG *) p->auxch.auxp) == NULL ||
         (unsigned int)p->auxch.size < nsegs*sizeof(NSEG)) {
@@ -1734,7 +1734,7 @@ int trnset_bkpt(CSOUND *csound, TRANSEG *p)
     MYFLT       totdur = FL(0.0);
 
     if (UNLIKELY(p->INOCOUNT%3!=1))
-      csound->InitError(csound, Str("Incorrect argument count in transegb"));
+      return csound->InitError(csound, Str("Incorrect argument count in transegb"));
     nsegs = p->INOCOUNT / 3;            /* count segs & alloc if nec */
     if ((segp = (NSEG *) p->auxch.auxp) == NULL ||
         (unsigned int)p->auxch.size < nsegs*sizeof(NSEG)) {
@@ -1880,7 +1880,7 @@ int trnsetr(CSOUND *csound, TRANSEG *p)
     double      val;
 
     if (UNLIKELY(p->INOCOUNT%3!=1))
-      csound->InitError(csound, Str("Incorrect argument count in transegr"));
+      return csound->InitError(csound, Str("Incorrect argument count in transegr"));
     nsegs = p->INOCOUNT / 3;            /* count segs & alloc if nec */
     if ((segp = (NSEG *) p->auxch.auxp) == NULL ||
         (unsigned int)p->auxch.size < nsegs*sizeof(NSEG)) {
@@ -2153,6 +2153,8 @@ int lpf18db(CSOUND *csound, LPF18 *p)
     MYFLT lfc=0, lrs=0, kres=0, kfcn=0, kp=0, kp1=0,  kp1h=0;
     double lds = 0.0;
     MYFLT zerodb = csound->e0dbfs;
+    int   asgf = IS_ASIG_ARG(p->fco), asgr = IS_ASIG_ARG(p->res),
+          asgd = IS_ASIG_ARG(p->dist);
 
     if (UNLIKELY(offset)) memset(ar, '\0', offset*sizeof(MYFLT));
     if (UNLIKELY(early)) {
@@ -2164,9 +2166,9 @@ int lpf18db(CSOUND *csound, LPF18 *p)
       MYFLT ax1  = lastin;
       MYFLT ay11 = ay1;
       MYFLT ay31 = ay2;
-      fco        = (IS_ASIG_ARG(p->fco) ? p->fco[n] : *p->fco);
-      res        = (IS_ASIG_ARG(p->res) ? p->res[n] : *p->res);
-      dist       = (double)(IS_ASIG_ARG(p->dist) ? p->dist[n] : *p->dist);
+      fco        = (asgf ? p->fco[n] : *p->fco);
+      res        = (asgr ? p->res[n] : *p->res);
+      dist       = (double)(asgd ? p->dist[n] : *p->dist);
       if (fco != lfc || flag) {
         lfc = fco;
         kfcn = FL(2.0) * fco * csound->onedsr;
diff --git a/Opcodes/pitchtrack.c b/Opcodes/pitchtrack.c
index 6de9a61..153b6f3 100644
--- a/Opcodes/pitchtrack.c
+++ b/Opcodes/pitchtrack.c
@@ -289,6 +289,7 @@ void ptrack(CSOUND *csound,PITCHTRACK *p)
 
       if (npeak > numpks) npeak = numpks;
       for (i = 0; i < maxbin; i++) histogram[i] = 0;
+      //or memset(histogram, '\0', maxbin*sizeof(MYFLT));
       for (i = 0; i < npeak; i++) {
         MYFLT pit = (MYFLT)(BPEROOVERLOG2 * LOG(peaklist[i].pfreq) - 96.0);
         MYFLT binbandwidth = FACTORTOBINS * peaklist[i].pwidth/peaklist[i].pfreq;
@@ -631,16 +632,16 @@ int plltrack_perf(CSOUND *csound, PLLTRACK *p)
     scal = 2.0*csound->pidsr;
 
     /* check for muted input & bypass */
-    if(ksmps > 1){
-    for(i=0; i < ksmps; i++){
-      if(asig[i] != 0.0 && asig[i] != itmp) {
+    if (ksmps > 1){
+    for (i=0; i < ksmps; i++) {
+      if (asig[i] != 0.0 && asig[i] != itmp) {
         itest = 1;
         break;
       }
       itmp = asig[i];
     }
-    if(!itest) return OK;
-    } else if(*asig == 0.0) return OK;
+    if (!itest)  return OK;
+    } else if (*asig == 0.0) return OK;
 
 
     if (*p->klpf == 0) klpf = 20.0;
@@ -677,9 +678,7 @@ int plltrack_perf(CSOUND *csound, PLLTRACK *p)
       p->klpf_o = klpf; p->klpfQ_o = klpfQ;
     }
 
-
-
-    for(k=0; k < 6; k++) {
+    for (k=0; k < 6; k++) {
       a0[k] = biquad[k].a0;
       a1[k] = biquad[k].a1;
       a2[k] = biquad[k].a2;
diff --git a/Opcodes/pluck.c b/Opcodes/pluck.c
index f7a94bc..13d9a36 100644
--- a/Opcodes/pluck.c
+++ b/Opcodes/pluck.c
@@ -36,10 +36,25 @@
 #include "pluck.h"
 
 /* external prototypes */
-static void error(CSOUND*, const char*, const char*);
 static void pluckSetFilters(CSOUND*, WGPLUCK*, MYFLT, MYFLT);
 static MYFLT *pluckShape(CSOUND*, WGPLUCK*);     /* pluck shape function */
 
+/* ***** class filter3 -- JPff ****** */
+
+/* ::set -- set the coefficients */
+static inline void filter3Set(filter3* filt, MYFLT a0, MYFLT a1)
+{
+    filt->a0 = a0;
+    filt->a1 = a1;
+    filt->x1 = filt->x2 = FL(0.0);
+#ifdef WG_VERBOSE
+    csound->Message(csound, "c[0]=%f; c[1]=%f; c[2]=\n", a0, a1, a0);
+    csound->Message(csound, "Zeros at %f, %f\n",
+                            (-a1-sqrt(a1*a1-4.0*a0*a0))/(2.0*a0),
+                            (-a1+sqrt(a1*a1-4.0*a0*a0))/(2.0*a0));
+#endif
+}
+
 /* ***** plucked string class member function definitions ***** */
 
 /* pluck::excite -- excitation function for plucked string */
@@ -51,14 +66,14 @@ static int pluckExcite(CSOUND *csound, WGPLUCK* p)
 
     /* set the delay element to pick at */
     p->pickSamp=(len_t)(size * *p->pickPos);
-    if (p->pickSamp<1)
+    if (UNLIKELY(p->pickSamp<1))
       p->pickSamp = 1;
 
     /* set the bridge filter coefficients for the correct magnitude response */
     pluckSetFilters(csound, p,*p->Aw0,*p->AwPI);/*attenuation in dB at w0 and PI*/
 
     /* add the pick shape to the waveguide rails */
-    shape = pluckShape(csound,p);    /* Efficiency loss here */
+    if (UNLIKELY((shape = pluckShape(csound,p))==NULL)) return NOTOK;
 
     /* add shape to lower rail */
     for (i=0;i<size;i++) {
@@ -66,18 +81,9 @@ static int pluckExcite(CSOUND *csound, WGPLUCK* p)
       p->wg.upperRail.data[size-i-1] = shape[i];
     }
 
-    /* flip shape and add to upper rail */
-/*      pluckFlip(p,shape); */
-/*      for (i=0;i<size;i++) */
-/*        p->wg.upperRail.data[i] = shape[i]; */
-
     /* free the space used by the pluck shape */
     csound->Free(csound, shape);
 
-    /* Reset the tuning and bridge filters */
-    /*filterReset(&p->wg.tnFIR);*/
-    /*filterReset(&p->bridge);*/
-
     /* set excitation flag */
     p->wg.excited = 1;
     return OK;
@@ -96,8 +102,6 @@ static int pluckPluck(CSOUND *csound, WGPLUCK* p)
     /* Allocate auxillary memory or reallocate if size has changed */
     csound->AuxAlloc(csound, (len_t)(ndelay/2)*sizeof(MYFLT), &p->upperData);
     csound->AuxAlloc(csound, (len_t)(ndelay/2)*sizeof(MYFLT), &p->lowerData);
-/*     csound->AuxAlloc(csound, 3L*sizeof(MYFLT), &p->bridgeCoeffs); */
-/*     csound->AuxAlloc(csound, 3L*sizeof(MYFLT), &p->bridgeData); */
 
 #ifdef WG_VERBOSE
     csound->Message(csound, "done.\n");
@@ -116,13 +120,7 @@ static int pluckPluck(CSOUND *csound, WGPLUCK* p)
 #ifdef WG_VERBOSE
     csound->Message(csound, "done.\n");
 #endif
-    /* Allocate memory to bridge data and coeffs */
-#ifdef WG_VERBOSE
-    csound->Message(csound, "Initializing bridge filters...");
-#endif
-#ifdef WG_VERBOSE
-    csound->Message(csound, "done\n");
-#endif
+
     /* Excite the string with the input parameters */
 #ifdef WG_VERBOSE
     csound->Message(csound, "Exciting the string...");
@@ -150,7 +148,7 @@ static void pluckSetFilters(CSOUND *csound, WGPLUCK* p, MYFLT A_w0, MYFLT A_PI)
       MYFLT a1=(H1_w0+cosw0*H1_PI)/(1+cosw0);
       MYFLT a0 = (a1 - H1_PI)*FL(0.5);
       /* apply constraints on coefficients (see Sullivan)*/
-      if ((a0<FL(0.0))|| (a1<a0+a0)) {
+      if (UNLIKELY((a0<FL(0.0))|| (a1<a0+a0))) {
         a0=FL(0.0);
         a1=H1_w0;
       }
@@ -169,10 +167,11 @@ static MYFLT *pluckShape(CSOUND *csound, WGPLUCK* p)
 
     /* This memory must be freed after use */
     shape = (MYFLT *)csound->Malloc(csound, len*sizeof(MYFLT));
-    if (UNLIKELY(!shape))
-      error(csound,
-            Str("Could not allocate for initial shape"),"<pluckShape>");
-
+    if (UNLIKELY(!shape)) {
+      csound->InitError(csound,
+                        Str("wgpluck:Could not allocate for initial shape"));
+      return NULL;
+    }
     scale = FL(0.5) * scale;      /* Scale was squared!! */
     for (i=0;i<p->pickSamp;i++)
       shape[i] = scale*i / p->pickSamp;
@@ -238,19 +237,13 @@ static int pluckGetSamps(CSOUND *csound, WGPLUCK* p)
 #define EPSILON (FL(0.25))      /* threshold for small tuning values */
 /* prototypes */
 
-/***** circularBuffer class member function definitions *****/
-
-/* ::circularBuffer -- constructor for circular buffer class
- * This routine assumes that the DATA pointer has already been
- * allocated by the calling routine.
- */
-static void circularBufferCircularBuffer(CSOUND *csound,
+static inline int circularBufferCircularBuffer(CSOUND *csound,
                                          circularBuffer* cb, len_t N)
 {
     MYFLT *data = cb->data;
-    if (UNLIKELY(!data))
-      error(csound, Str("Buffer memory not allocated!"),
-                    "<circularBuffer::circularBuffer>");
+    /* if (UNLIKELY(!data)) */
+    /*   return csound->InitError(csound, */
+    /*                            Str("wgpluck: Buffer memory not allocated!")); */
 
   /* Initialize pointers and variables */
     cb->size            = N;
@@ -259,6 +252,7 @@ static void circularBufferCircularBuffer(CSOUND *csound,
     cb->endPoint        = data+cb->size-1;
     cb->insertionPoint  = data;
     cb->extractionPoint = data;
+    return OK;
 }
 
 /* ***** class guideRail -- waveguide rail derived class ***** */
@@ -269,29 +263,13 @@ static void circularBufferCircularBuffer(CSOUND *csound,
 static MYFLT guideRailAccess(guideRail* gr, len_t pos)
 {
     MYFLT *s = gr->pointer - pos;
-    while(s < gr->data)
+    while (s < gr->data)
       s += gr->size;
-    while(s > gr->endPoint)
+    while (s > gr->endPoint)
       s -= gr->size;
     return *s;
 }
 
-/* ***** class filter3 -- JPff ****** */
-
-/* ::set -- set the coefficients */
-static void filter3Set(filter3* filt, MYFLT a0, MYFLT a1)
-{
-    filt->a0 = a0;
-    filt->a1 = a1;
-    filt->x1 = filt->x2 = FL(0.0);
-#ifdef WG_VERBOSE
-    csound->Message(csound, "c[0]=%f; c[1]=%f; c[2]=\n", a0, a1, a0);
-    csound->Message(csound, "Zeros at %f, %f\n",
-                            (-a1-sqrt(a1*a1-4.0*a0*a0))/(2.0*a0),
-                            (-a1+sqrt(a1*a1-4.0*a0*a0))/(2.0*a0));
-#endif
-}
-
 /* ::FIR -- direct convolution filter routine */
 static MYFLT filter3FIR(filter3* filt, MYFLT s)
 {
@@ -354,8 +332,8 @@ static void waveguideWaveguide(CSOUND *csound,
     csound->Message(csound, "size=%d+1, df=%f\n", (len_t) size, df);
 #endif
     size = size*FL(0.5);
-    guideRailGuideRail(csound, &wg->upperRail,(len_t)size);
-    guideRailGuideRail(csound, &wg->lowerRail,(len_t)size);
+    circularBufferCircularBuffer(csound, &wg->upperRail,(len_t)size);
+    circularBufferCircularBuffer(csound, &wg->lowerRail,(len_t)size);
     waveguideSetTuning(csound, wg,df);
 }
 
@@ -372,12 +350,6 @@ static void waveguideSetTuning(CSOUND *csound, waveguide* wg, MYFLT df)
 #endif
 }
 
-/* error -- report errors */
-static void error(CSOUND *csound, const char* a, const char* b)
-{
-    csound->ErrorMsg(csound, Str("Error: %s, %s"), a, b);
-}
-
 #define S(x)    sizeof(x)
 
 static OENTRY localops[] = {
diff --git a/Opcodes/psynth.c b/Opcodes/psynth.c
index 1204c59..fd34200 100644
--- a/Opcodes/psynth.c
+++ b/Opcodes/psynth.c
@@ -211,25 +211,25 @@ static int psynth_process(CSOUND *csound, _PSYN *p)
               amp = FL(0.0);
 
             }
-            if(amp > min){
-            /* interpolation & track synthesis loop */
-            a = amp;
-            f = freq;
-            incra = (ampnext - amp) / hopsize;
-            incrph = (freqnext - freq) / hopsize;
-            for (m = 0; m < hopsize; m++) {
-              /* table lookup oscillator */
-              phase += f * ratio;
-              while (phase < 0)
-                phase += size;
-              while (phase >= size)
-                phase -= size;
-              ndx = (int) phase;
-              frac = phase - ndx;
-              outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
-              a += incra;
-              f += incrph;
-            }
+            if (amp > min) {
+              /* interpolation & track synthesis loop */
+              a = amp;
+              f = freq;
+              incra = (ampnext - amp) / hopsize;
+              incrph = (freqnext - freq) / hopsize;
+              for (m = 0; m < hopsize; m++) {
+                /* table lookup oscillator */
+                phase += f * ratio;
+                while (phase < 0)
+                  phase += size;
+                while (phase >= size)
+                  phase -= size;
+                ndx = (int) phase;
+                frac = phase - ndx;
+                outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
+                a += incra;
+                f += incrph;
+              }
             }
             /* keep amp, freq, and phase values for next time */
             if (contin) {
@@ -345,7 +345,7 @@ static int psynth2_process(CSOUND *csound, _PSYN2 *p)
     for (n = offset; n < nsmps; n++) {
       out[n] = outsum[pos];
       pos++;
-      if (pos == hopsize) {
+      if (UNLIKELY(pos == hopsize)) {
 
         memset(outsum, 0, sizeof(MYFLT) * hopsize);
         /* for each track */
@@ -386,40 +386,40 @@ static int psynth2_process(CSOUND *csound, _PSYN2 *p)
               amp = FL(0.0);
 #endif
             }
-            if(amp > min){
-            /* phasediff */
-            phasediff = phasenext - phase;
-            while (phasediff >= PI_F)
-              phasediff -= TWOPI_F;
-            while (phasediff < -PI_F)
-              phasediff += TWOPI_F;
-            /* update phasediff to match the freq */
-            cph = ((freq + freqnext) * factor * 0.5 - phasediff) / TWOPI;
-            phasediff += TWOPI_F * (int) (cph + 0.5);
-            /* interpolation coefs */
-            a2 = 3.0 / facsqr * (phasediff -
-                                factor / 3.0 * (2.0 * freq + freqnext));
-            a3 = 1.0 / (3.0 * facsqr) * (freqnext - freq - 2.0 * a2 * factor);
-            /* interpolation & track synthesis loop */
-            a = amp;
-            ph = phase;
-            cnt = 0;
-            incra = (ampnext - amp) / hopsize;
-            for (m = 0; m < hopsize; m++) {
-              /* table lookup oscillator */
-              ph *= lotwopi;
-              while (ph < 0)
-                ph += size;
-              while (ph >= size)
-                ph -= size;
-              ndx = (int) ph;
-              frac = ph - ndx;
-              outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
-              a += incra;
-              cnt += incrph;
-              ph = phase + cnt * (freq + cnt * (a2 + a3 * cnt));
+            if (amp > min) {
+              /* phasediff */
+              phasediff = phasenext - phase;
+              while (phasediff >= PI_F)
+                phasediff -= TWOPI_F;
+              while (phasediff < -PI_F)
+                phasediff += TWOPI_F;
+              /* update phasediff to match the freq */
+              cph = ((freq + freqnext) * factor * 0.5 - phasediff) / TWOPI;
+              phasediff += TWOPI_F * (int) (cph + 0.5);
+              /* interpolation coefs */
+              a2 = 3.0 / facsqr * (phasediff -
+                                   factor / 3.0 * (2.0 * freq + freqnext));
+              a3 = 1.0 / (3.0 * facsqr) * (freqnext - freq - 2.0 * a2 * factor);
+              /* interpolation & track synthesis loop */
+              a = amp;
+              ph = phase;
+              cnt = 0;
+              incra = (ampnext - amp) / hopsize;
+              for (m = 0; m < hopsize; m++) {
+                /* table lookup oscillator */
+                ph *= lotwopi;
+                while (ph < 0)
+                  ph += size;
+                while (ph >= size)
+                  ph -= size;
+                ndx = (int) ph;
+                frac = ph - ndx;
+                outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
+                a += incra;
+                cnt += incrph;
+                ph = phase + cnt * (freq + cnt * (a2 + a3 * cnt));
+              }
             }
-           }
             /* keep amp, freq, and phase values for next time */
           cont:
             if (contin) {
@@ -486,7 +486,7 @@ static int psynth3_process(CSOUND *csound, _PSYN *p)
     for (n = offset; n < nsmps; n++) {
       out[n] = outsum[pos];
       pos++;
-      if (pos == hopsize) {
+      if (UNLIKELY(pos == hopsize)) {
         memset(outsum, 0, sizeof(MYFLT) * hopsize);
         /* for each track */
         i = j = k = 0;
@@ -522,40 +522,40 @@ static int psynth3_process(CSOUND *csound, _PSYN *p)
               phase = phasenext - freq * factor;
               amp = FL(0.0);
             }
-            if(amp > min){
-            /* phasediff */
-            phasediff = phasenext - phase;
-            while (phasediff >= PI_F)
-              phasediff -= TWOPI_F;
-            while (phasediff < -PI_F)
-              phasediff += TWOPI_F;
-
-            /* update phasediff to match the freq */
-            cph = ((freq + freqnext) * factor *0.5 - phasediff) / TWOPI;
-            phasediff += TWOPI_F * cph;
-            /* interpolation coefs */
-            a2 = 3.0 / facsqr * (phasediff -
-                                factor / 3.0 * (2.0 * freq + freqnext));
-            a3 = 1.0 / (3.0 * facsqr) * (freqnext - freq - 2.0 * a2 * factor);
-            /* interpolation & track synthesis loop */
-            a = amp;
-            ph = phase;
-            cnt = 0;
-            incra = (ampnext - amp) / hopsize;
-            for (m = 0; m < hopsize; m++) {
-              /* table lookup oscillator */
-              ph *= lotwopi;
-              while (ph < 0)
-                ph += size;
-              while (ph >= size)
-                ph -= size;
-              ndx = (int) ph;
-              frac = ph - ndx;
-              outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
-              a += incra;
-              cnt += incrph;
-              ph = phase + cnt * (freq + cnt * (a2 + a3 * cnt));
-            }
+            if (amp > min) {
+              /* phasediff */
+              phasediff = phasenext - phase;
+              while (phasediff >= PI_F)
+                phasediff -= TWOPI_F;
+              while (phasediff < -PI_F)
+                phasediff += TWOPI_F;
+
+              /* update phasediff to match the freq */
+              cph = ((freq + freqnext) * factor *0.5 - phasediff) / TWOPI;
+              phasediff += TWOPI_F * cph;
+              /* interpolation coefs */
+              a2 = 3.0 / facsqr * (phasediff -
+                                   factor / 3.0 * (2.0 * freq + freqnext));
+              a3 = 1.0 / (3.0 * facsqr) * (freqnext - freq - 2.0 * a2 * factor);
+              /* interpolation & track synthesis loop */
+              a = amp;
+              ph = phase;
+              cnt = 0;
+              incra = (ampnext - amp) / hopsize;
+              for (m = 0; m < hopsize; m++) {
+                /* table lookup oscillator */
+                ph *= lotwopi;
+                while (ph < 0)
+                  ph += size;
+                while (ph >= size)
+                  ph -= size;
+                ndx = (int) ph;
+                frac = ph - ndx;
+                outsum[m] += a * (tab[ndx] + (tab[ndx + 1] - tab[ndx]) * frac);
+                a += incra;
+                cnt += incrph;
+                ph = phase + cnt * (freq + cnt * (a2 + a3 * cnt));
+              }
             }
             /* keep amp, freq, and phase values for next time */
             if (contin) {
@@ -1012,13 +1012,13 @@ static int trfil_process(CSOUND *csound, _PSFIL *p)
       MYFLT   fr, pos = FL(0.0), frac = FL(0.0);
       int     posi = 0;
 
-      if (amnt > 1)
+      if (UNLIKELY(amnt > 1))
         amnt = 1;
-      if (amnt < 0)
+      if (UNLIKELY(amnt < 0))
         amnt = 0;
       do {
         fr = framein[i + 1];
-        if (fr > nyq)
+        if (UNLIKELY(fr > nyq))
           fr = nyq;
         //if (fr < 0)
         fr = FABS(fr);
diff --git a/Opcodes/pvadd.c b/Opcodes/pvadd.c
index 9daf135..062a5b2 100644
--- a/Opcodes/pvadd.c
+++ b/Opcodes/pvadd.c
@@ -223,8 +223,8 @@ static int pvx_loadfile(CSOUND *csound, const char *fname, PVADD *p)
                                fname, (int) pp.fftsize);
     }
     if (UNLIKELY(pp.fftsize < 128)) {
-      return csound->InitError(csound, Str("PV frame %ld seems too small in %s"),
-                               (int32) pp.fftsize, fname);
+      return csound->InitError(csound, Str("PV frame %d seems too small in %s"),
+                               pp.fftsize, fname);
     }
     /* have to reject m/c files for now, until opcodes upgraded */
     if (UNLIKELY(pp.chans > 1)) {
diff --git a/Opcodes/pvinterp.c b/Opcodes/pvinterp.c
index 91d6c9e..3ba7642 100644
--- a/Opcodes/pvinterp.c
+++ b/Opcodes/pvinterp.c
@@ -73,21 +73,21 @@ int pvbufreadset_(CSOUND *csound, PVBUFREAD *p, int stringname)
     frInc    = pp.overlap;
     chans    = pp.chans;
     p->asr   = pp.srate;
-    if (p->asr != CS_ESR) {                /* & chk the data */
+    if (UNLIKELY(p->asr != CS_ESR)) {                /* & chk the data */
       csound->Warning(csound, Str("%s's srate = %8.0f, orch's srate = %8.0f"),
                               pvfilnam, p->asr, CS_ESR);
     }
-    if (p->frSiz > PVFRAMSIZE) {
+    if (UNLIKELY(p->frSiz > PVFRAMSIZE)) {
       return csound->InitError(csound,
                                Str("PVOC frame %ld bigger than %ld in %s"),
                                (long) p->frSiz, (long) PVFRAMSIZE, pvfilnam);
     }
-    if (p->frSiz < 128) {
+    if (UNLIKELY(p->frSiz < 128)) {
       return csound->InitError(csound,
                                Str("PVOC frame %ld seems too small in %s"),
                                (long) p->frSiz, pvfilnam);
     }
-    if (chans != 1) {
+    if (UNLIKELY(chans != 1)) {
       return csound->InitError(csound, Str("%d chans (not 1) in PVOC file %s"),
                                        (int) chans, pvfilnam);
     }
@@ -130,7 +130,7 @@ int pvbufread(CSOUND *csound, PVBUFREAD *p)
     if (UNLIKELY((frIndx = *p->ktimpnt * p->frPrtim) < 0)) goto err2;
     if (frIndx > (MYFLT) p->maxFr) {    /* not past last one */
       frIndx = (MYFLT) p->maxFr;
-      if (p->prFlg) {
+      if (UNLIKELY(p->prFlg)) {
         p->prFlg = 0;   /* false */
         csound->Warning(csound, Str("PVOC ktimpnt truncated to last frame"));
       }
@@ -189,7 +189,7 @@ int pvinterpset_(CSOUND *csound, PVINTERP *p, int stringname)
     frInc    = pp.overlap;
     chans    = pp.chans;
     p->asr   = pp.srate;
-    if (p->asr != CS_ESR) {                /* & chk the data */
+    if (UNLIKELY(p->asr != CS_ESR)) {                /* & chk the data */
       csound->Warning(csound, Str("%s's srate = %8.0f, orch's srate = %8.0f"),
                               pvfilnam, p->asr, CS_ESR);
     }
@@ -223,9 +223,10 @@ int pvinterpset_(CSOUND *csound, PVINTERP *p, int stringname)
     p->opBpos = 0;
     p->lastPex = FL(1.0);    /* needs to know last pitchexp to update phase */
     /* Set up time window */
-    for (i = 0; i < pvdasiz(p); ++i) {      /* or maybe pvdasiz(p) */
-      p->lastPhase[i] = FL(0.0);
-    }
+    memset(p->lastPhase,'\0', pvdasiz(p)*sizeof(MYFLT));
+    /* for (i = 0; i < pvdasiz(p); ++i) {      /\* or maybe pvdasiz(p) *\/ */
+    /*   p->lastPhase[i] = FL(0.0); */
+    /* } */
     if (UNLIKELY((OPWLEN / 2 + 1) > PVWINLEN)) {
       return csound->InitError(csound, Str("ksmps of %d needs wdw of %d, "
                                            "max is %d for pv %s"),
@@ -279,7 +280,7 @@ int pvinterp(CSOUND *csound, PVINTERP *p)
     if (UNLIKELY((frIndx = *p->ktimpnt * p->frPrtim) < 0)) goto err4;
     if (frIndx > (MYFLT)p->maxFr) { /* not past last one */
       frIndx = (MYFLT)p->maxFr;
-      if (p->prFlg) {
+      if (UNLIKELY(p->prFlg)) {
         p->prFlg = 0;   /* false */
         csound->Warning(csound, Str("PVOC ktimpnt truncated to last frame"));
       }
@@ -317,7 +318,7 @@ int pvinterp(CSOUND *csound, PVINTERP *p)
     addToCircBuf(buf2, p->outBuf, p->opBpos, CS_KSMPS, circBufSize);
     writeClrFromCircBuf(p->outBuf, ar, p->opBpos, CS_KSMPS, circBufSize);
     p->opBpos += CS_KSMPS;
-    if (p->opBpos > circBufSize)
+    if (UNLIKELY(p->opBpos > circBufSize))
       p->opBpos -= circBufSize;
     addToCircBuf(buf2 + CS_KSMPS, p->outBuf, p->opBpos,
                  buf2Size - CS_KSMPS, circBufSize);
@@ -379,7 +380,7 @@ int pvcrossset_(CSOUND *csound, PVCROSS *p, int stringname)
     frInc    = pp.overlap;
     chans    = pp.chans;
     p->asr   = pp.srate;
-    if (p->asr != CS_ESR) {                /* & chk the data */
+    if (UNLIKELY(p->asr != CS_ESR)) {                /* & chk the data */
       csound->Warning(csound, Str("%s's srate = %8.0f, orch's srate = %8.0f"),
                               pvfilnam, p->asr, CS_ESR);
     }
@@ -411,9 +412,10 @@ int pvcrossset_(CSOUND *csound, PVCROSS *p, int stringname)
     p->opBpos = 0;
     p->lastPex = FL(1.0);   /* needs to know last pitchexp to update phase */
     /* Set up time window */
-    for (i = 0; i < pvdasiz(p); ++i) {      /* or maybe pvdasiz(p) */
-        p->lastPhase[i] = FL(0.0);
-    }
+    memset(p->lastPhase, '\0', pvdasiz(p)*sizeof(MYFLT));
+    /* for (i = 0; i < pvdasiz(p); ++i) {      /\* or maybe pvdasiz(p) *\/ */
+    /*     p->lastPhase[i] = FL(0.0); */
+    /* } */
     if (UNLIKELY((OPWLEN / 2 + 1) > PVWINLEN )) {
       return csound->InitError(csound, Str("ksmps of %d needs wdw of %d, "
                                            "max is %d for pv %s"),
@@ -467,7 +469,7 @@ int pvcross(CSOUND *csound, PVCROSS *p)
     if (UNLIKELY(outlen<(int)(2*CS_KSMPS))) /* minimum post-squeeze windowlength */
       goto err3;
     buf2Size = OPWLEN;     /* always window to same length after DS */
-    if ((frIndx = *p->ktimpnt * p->frPrtim) < 0) goto err4;
+    if (UNLIKELY((frIndx = *p->ktimpnt * p->frPrtim) < 0)) goto err4;
     if (frIndx > (MYFLT) p->maxFr) {    /* not past last one */
       frIndx = (MYFLT) p->maxFr;
       if (p->prFlg) {
@@ -519,7 +521,7 @@ int pvcross(CSOUND *csound, PVCROSS *p)
     addToCircBuf(buf2, p->outBuf, p->opBpos, CS_KSMPS, circBufSize);
     writeClrFromCircBuf(p->outBuf, ar, p->opBpos, CS_KSMPS, circBufSize);
     p->opBpos += CS_KSMPS;
-    if (p->opBpos > circBufSize)
+    if (UNLIKELY(p->opBpos > circBufSize))
       p->opBpos -= circBufSize;
     addToCircBuf(buf2 + CS_KSMPS, p->outBuf, p->opBpos,
                  buf2Size - CS_KSMPS, circBufSize);
diff --git a/Opcodes/pvlock.c b/Opcodes/pvlock.c
index d9f6c34..cb7d4a1 100644
--- a/Opcodes/pvlock.c
+++ b/Opcodes/pvlock.c
@@ -82,7 +82,7 @@ static int sinit(CSOUND *csound, DATASPACE *p)
     nchans = p->nchans;
 
     if (UNLIKELY(nchans < 1 || nchans > MAXOUTS))
-      csound->InitError(csound, Str("invalid number of output arguments"));
+      return csound->InitError(csound, Str("invalid number of output arguments"));
     p->nchans = nchans;
 
     for (i=0; i < nchans; i++){
@@ -191,8 +191,8 @@ static int sprocess1(CSOUND *csound, DATASPACE *p)
         */
         spos  = hsize*(long)((time[n])*CS_ESR/hsize);
         sizefrs = size/nchans;
-        while(spos > sizefrs) spos -= sizefrs;
-        while(spos <= 0)  spos += sizefrs;
+        while (spos > sizefrs) spos -= sizefrs;
+        while (spos <= 0)  spos += sizefrs;
 
         for (j = 0; j < nchans; j++) {
           pos = spos;
@@ -213,7 +213,7 @@ static int sprocess1(CSOUND *csound, DATASPACE *p)
             post += j;
             while (post < 0) post += size;
             while (post >= size) post -= size;
-            if(post+nchans <  size)
+            if (post+nchans <  size)
               in = tab[post] + frac*(tab[post+nchans] - tab[post]);
             else in = tab[post];
 
@@ -222,9 +222,9 @@ static int sprocess1(CSOUND *csound, DATASPACE *p)
             post = (int) (pos - hsize*pitch);
             post *= nchans;
             post += j;
-            while(post < 0) post += size;
-            while(post >= size) post -= size;
-            if(post+nchans <  size)
+            while (post < 0) post += size;
+            while (post >= size) post -= size;
+            if (post+nchans <  size)
               in = tab[post] + frac*(tab[post+nchans] - tab[post]);
             else in = tab[post];
             bwin[i] = in * win[i];  /* window it */
@@ -409,8 +409,8 @@ static int sprocess2(CSOUND *csound, DATASPACE *p)
                                        "sound file channels"));
 
         sizefrs = size/nchans;
-        while(spos > sizefrs) spos -= sizefrs;
-        while(spos <= 0)  spos += sizefrs;
+        while (spos > sizefrs) spos -= sizefrs;
+        while (spos <= 0)  spos += sizefrs;
 
 
         for (j = 0; j < nchans; j++) {
@@ -428,9 +428,9 @@ static int sprocess2(CSOUND *csound, DATASPACE *p)
             post *= nchans;
             post += j;
 
-            while(post < 0) post += size;
-            while(post >= size) post -= size;
-            if(post+nchans <  size)
+            while (post < 0) post += size;
+            while (post >= size) post -= size;
+            if (post+nchans <  size)
               in = tab[post] + frac*(tab[post+nchans] - tab[post]);
             else in = tab[post];
 
@@ -439,10 +439,10 @@ static int sprocess2(CSOUND *csound, DATASPACE *p)
             post = (int) (pos - hsize*pitch);
             post *= nchans;
             post += j;
-            while(post < 0) post += size;
-            while(post >= size) post -= size;
+            while (post < 0) post += size;
+            while (post >= size) post -= size;
             //if (post >= 0 && post < size)
-            if(post+nchans <  size)
+            if (post+nchans <  size)
               in =  tab[post] + frac*(tab[post+nchans] - tab[post]);
             else in = tab[post];
             //else in =  (MYFLT) 0;
@@ -451,9 +451,9 @@ static int sprocess2(CSOUND *csound, DATASPACE *p)
             post = (int) pos + hsize;
             post *= nchans;
             post += j;
-            while(post < 0) post += size;
-            while(post >= size) post -= size;
-            if(post+nchans <  size)
+            while (post < 0) post += size;
+            while (post >= size) post -= size;
+            if (post+nchans <  size)
               in = tab[post] + frac*(tab[post+nchans] - tab[post]);
             else in = tab[post];
             nwin[i] = in * win[i];
@@ -573,13 +573,13 @@ static int sinit3(CSOUND *csound, DATASPACE *p)
     name = ((STRINGDAT *)p->knum)->data;
     fd  = csound->FileOpen2(csound, &(p->sf), CSFILE_SND_R, name, &sfinfo,
                             "SFDIR;SSDIR", CSFTYPE_UNKNOWN_AUDIO, 0);
-    if(sfinfo.samplerate != CS_ESR)
+    if (sfinfo.samplerate != CS_ESR)
       p->resamp = sfinfo.samplerate/CS_ESR;
     else
       p->resamp = 1;
     p->nchans = sfinfo.channels;
 
-    if(p->OUTOCOUNT != p->nchans)
+    if (p->OUTOCOUNT != p->nchans)
       return csound->InitError(csound,
                                Str("filescal: mismatched channel numbers. "
                                    "%d outputs, %d inputs\n"),
@@ -624,7 +624,7 @@ void fillbuf(CSOUND *csound, DATASPACE *p, int nsmps){
     // fill p->curbuf
     sampsread = sf_read_MYFLT(p->sf, p->indata[p->curbuf],
                               nsmps);
-    if(sampsread < nsmps)
+    if (sampsread < nsmps)
       memset(p->indata[p->curbuf]+sampsread, 0,
              sizeof(MYFLT)*(nsmps-sampsread));
     // point to the other
@@ -652,7 +652,7 @@ static int sprocess3(CSOUND *csound, DATASPACE *p)
     int decim = p->decim;
     double tstamp = p->tstamp, incrt = p->incr;
 
-    if(time < 0) /* negative tempo is not possible */
+    if (time < 0) /* negative tempo is not possible */
       time = 0.0;
     time *= p->resamp;
 
@@ -697,10 +697,10 @@ static int sprocess3(CSOUND *csound, DATASPACE *p)
           }
           sizefrs = size/nchans;
 
-          while(spos > sizefrs) {
+          while (spos > sizefrs) {
             spos -= sizefrs;
           }
-          while(spos <= 0) {
+          while (spos <= 0) {
             spos += sizefrs;
           }
 
@@ -738,18 +738,18 @@ static int sprocess3(CSOUND *csound, DATASPACE *p)
               post = (int) (pos - hsize*pitch);
               post *= nchans;
               post += j;
-              while(post < 0) post += size;
-              while(post >= size) post -= size;
-              if(post+nchans <  size)
+              while (post < 0) post += size;
+              while (post >= size) post -= size;
+              if (post+nchans <  size)
                 in = tab[post] + frac*(tab[post+nchans] - tab[post]);
               else in = tab[post];
               bwin[i] = in * win[i];
               post = (int) pos + hsize;
               post *= nchans;
               post += j;
-              while(post < 0) post += size;
-              while(post >= size) post -= size;
-              if(post+nchans <  size)
+              while (post < 0) post += size;
+              while (post >= size) post -= size;
+              if (post+nchans <  size)
                 in = tab[post] + frac*(tab[post+nchans] - tab[post]);
               else in = tab[post];
               nwin[i] = in * win[i];
@@ -946,7 +946,7 @@ static int hilbert_init(CSOUND *csound, HILB *p){
     unsigned int size;
     int *p1, *p2, i, decim;
 
-    if(h > N) h = N;
+    if (h > N) h = N;
 
     for (i=0; N; i++) {
       N >>= 1;
@@ -1028,7 +1028,7 @@ static int hilbert_proc(CSOUND *csound, HILB *p){
     }
 
     for (n=offset; n < nsmps; n++, cnt++) {
-      if(cnt == hopsize) {
+      if (cnt == hopsize) {
         cnt = 0;
         for(i = j = 0; i < fftsize; i++, j+=2) {
           fftdata[j] = inframe[i+off]*win[i];
@@ -1101,8 +1101,8 @@ int am_fm(CSOUND *csound, AMFM *p){
       ph = atan2(im[n], re[n]);
       f = ph - oph;
       oph = ph;
-      if(f >= PI) f -= 2*PI;
-      else if(f < -PI) f += 2*PI;
+      if (f >= PI) f -= 2*PI;
+      else if (f < -PI) f += 2*PI;
       fm[n] = f*scal;
     }
     p->ph = oph;
diff --git a/Opcodes/pvsbuffer.c b/Opcodes/pvsbuffer.c
index dc2bc3c..8ffe35e 100644
--- a/Opcodes/pvsbuffer.c
+++ b/Opcodes/pvsbuffer.c
@@ -85,8 +85,9 @@ static int pvsbufferset(CSOUND *csound, PVSBUFFER *p)
      phandle = (FSIG_HANDLE **) csound->QueryGlobalVariable(csound,varname);
      /*csound->Message(csound, "%p -> %p \n", p->handle, phandle); */
     if (phandle == NULL)
-      csound->InitError(csound,
-                        Str("error... could not create global var for handle\n"));
+      return
+        csound->InitError(csound,
+                          Str("error... could not create global var for handle\n"));
     else
       *phandle = p->handle;
      }
@@ -144,9 +145,9 @@ static int pvsbufreadset(CSOUND *csound, PVSBUFFERREAD *p)
     /* csound->Message(csound, "%s:\n", varname); */
     phandle = (FSIG_HANDLE **) csound->QueryGlobalVariable(csound,varname);
     if (phandle == NULL)
-      csound->InitError(csound,
-                        Str("error... could not read handle from "
-                            "global variable\n"));
+      return csound->InitError(csound,
+                               Str("error... could not read handle from "
+                                   "global variable\n"));
     else
       handle = *phandle;
     p->optr = *p->hptr;
diff --git a/Opcodes/pvscent.c b/Opcodes/pvscent.c
index 8c91d9a..07d476b 100644
--- a/Opcodes/pvscent.c
+++ b/Opcodes/pvscent.c
@@ -386,6 +386,7 @@ int pvspitch_process(CSOUND *csound, PVSPITCH *p)
         f0Cand = PeakFreq[0]/Partial;
         /* Average frequency between partials */
         for (i=0; i<numPeaks; i++) {
+          //f0Cand cannot be zero unless PeakFreq is zero which cannot be
           Freq += PeakFreq[i] / RoundNum(PeakFreq[i]/f0Cand);
         }
         Freq /= numPeaks;
diff --git a/Opcodes/pvsgendy.c b/Opcodes/pvsgendy.c
index 751d849..b9a09d9 100644
--- a/Opcodes/pvsgendy.c
+++ b/Opcodes/pvsgendy.c
@@ -42,7 +42,7 @@ static int pvsgendyinit(CSOUND *csound, PVSGENDY *p)
     if (UNLIKELY(p->fin == p->fout))
       csound->Warning(csound, Str("Unsafe to have same fsig as in and out"));
 
-    if (p->fin->sliding) {
+    if (UNLIKELY(p->fin->sliding)) {
       if (p->fout->frame.auxp==NULL ||
           CS_KSMPS*(N+2)*sizeof(MYFLT) > (unsigned int)p->fout->frame.size)
         csound->AuxAlloc(csound, CS_KSMPS*(N+2)*sizeof(MYFLT),&p->fout->frame);
diff --git a/Opcodes/pvsops.cpp b/Opcodes/pvsops.cpp
index 4f474ed..cc60fb8 100644
--- a/Opcodes/pvsops.cpp
+++ b/Opcodes/pvsops.cpp
@@ -70,12 +70,14 @@ struct TVConv : csnd::Plugin<1, 6> {
   csnd::AuxMem<MYFLT> irsp;
   csnd::AuxMem<MYFLT> out;
   csnd::AuxMem<MYFLT> saved;
+  csnd::AuxMem<MYFLT>::iterator itn;
+  csnd::AuxMem<MYFLT>::iterator itr;
+  csnd::AuxMem<MYFLT>::iterator itnsp;
+  csnd::AuxMem<MYFLT>::iterator itrsp;
   uint32_t n;
   uint32_t fils;
   uint32_t pars;
   uint32_t ffts;
-  uint32_t nparts;
-  uint32_t pp;
   csnd::fftp fwd, inv;
   typedef std::complex<MYFLT> cmplx;
 
@@ -102,24 +104,25 @@ struct TVConv : csnd::Plugin<1, 6> {
       std::swap(pars, fils);
     if (pars > 1) {
       pars = rpow2(pars);
-      fils = rpow2(fils);
+      fils = rpow2(fils) * 2;
       ffts = pars * 2;
       fwd = csound->fft_setup(ffts, FFT_FWD);
       inv = csound->fft_setup(ffts, FFT_INV);
-      out.allocate(csound, 2 * pars);
-      insp.allocate(csound, 2 * fils);
-      irsp.allocate(csound, 2 * fils);
+      out.allocate(csound, ffts);
+      insp.allocate(csound, fils);
+      irsp.allocate(csound, fils);
       saved.allocate(csound, pars);
-      ir.allocate(csound, 2 * fils);
-      in.allocate(csound, 2 * fils);
-      nparts = fils / pars;
-      fils *= 2;
+      ir.allocate(csound, fils);
+      in.allocate(csound, fils);
+      itnsp = insp.begin();
+      itrsp = insp.begin();
+      n = 0;
     } else {
       ir.allocate(csound, fils);
       in.allocate(csound, fils);
     }
-    n = 0;
-    pp = 0;
+    itn = in.begin();
+    itr = ir.begin();
     return OK;
   }
 
@@ -129,34 +132,41 @@ struct TVConv : csnd::Plugin<1, 6> {
     csnd::AudioSig outsig(this, outargs(0));
     auto irp = irsig.begin();
     auto inp = insig.begin();
-    MYFLT *frz1 = inargs(2);
-    MYFLT *frz2 = inargs(3);
-    bool inc1 = csound->is_asig(frz1);
-    bool inc2 = csound->is_asig(frz2);
+    auto *frz1 = inargs(2);
+    auto *frz2 = inargs(3);
+    auto inc1 = csound->is_asig(frz1);
+    auto inc2 = csound->is_asig(frz2);
 
     for (auto &s : outsig) {
-      if(*frz1 > 0) in[pp + n] = *inp;
-      if(*frz2 > 0) ir[pp + n] = *irp;
+      if(*frz1 > 0) itn[n] = *inp;
+      if(*frz2 > 0) itr[n] = *irp;
 
       s = out[n] + saved[n];
       saved[n] = out[n + pars];
       if (++n == pars) {
         cmplx *ins, *irs, *ous = to_cmplx(out.data());
-        std::copy(in.begin() + pp, in.begin() + pp + ffts, insp.begin() + pp);
-        std::copy(ir.begin() + pp, ir.begin() + pp + ffts, irsp.begin() + pp);
+        std::copy(itn, itn + ffts, itnsp);
+        std::copy(itr, itr + ffts, itrsp);
         std::fill(out.begin(), out.end(), 0.);
         // FFT
-        csound->rfft(fwd, insp.data() + pp);
-        csound->rfft(fwd, irsp.data() + pp);
-        pp += ffts;
-        if (pp == fils)
-          pp = 0;
+        csound->rfft(fwd, itnsp);
+        csound->rfft(fwd, itrsp);
+        // increment iterators
+        itnsp += ffts, itrsp += ffts;
+        itn += ffts, itr += ffts;
+        if (itnsp == insp.end()) {
+          itnsp = insp.begin();
+          itrsp = irsp.begin();
+          itn = in.begin();
+          itr = ir.begin();
+        }
         // spectral delay line
-        for (uint32_t k = 0, kp = pp; k < nparts; k++, kp += ffts) {
-          if (kp == fils)
-            kp = 0;
-          ins = to_cmplx(insp.data() + kp);
-          irs = to_cmplx(irsp.data() + (nparts - k - 1) * ffts);
+        for (csnd::AuxMem<MYFLT>::iterator it1 = itnsp,
+             it2 = irsp.end() - ffts; it2 >= irsp.begin();
+             it1 += ffts, it2 -= ffts) {
+          if (it1 == insp.end()) it1 = insp.begin();
+          ins =  to_cmplx(it1);
+          irs =  to_cmplx(it2);
           // spectral product
           for (uint32_t i = 1; i < pars; i++)
             ous[i] += ins[i] * irs[i];
@@ -166,38 +176,40 @@ struct TVConv : csnd::Plugin<1, 6> {
         csound->rfft(inv, out.data());
         n = 0;
       }
-      frz1 += inc1;
-      frz2 += inc2;
-      irp++;
-      inp++;
+      frz1 += inc1, frz2 += inc2;
+      irp++, inp++;
     }
     return OK;
   }
 
-  int dconv() {
+ int dconv() {
     csnd::AudioSig insig(this, inargs(0));
     csnd::AudioSig irsig(this, inargs(1));
     csnd::AudioSig outsig(this, outargs(0));
     auto irp = irsig.begin();
     auto inp = insig.begin();
-    MYFLT *frz1 = inargs(2);
-    MYFLT *frz2 = inargs(3);
-    bool inc1 = csound->is_asig(frz1);
-    bool inc2 = csound->is_asig(frz2);
+    auto frz1 = inargs(2);
+    auto frz2 = inargs(3);
+    auto inc1 = csound->is_asig(frz1);
+    auto inc2 = csound->is_asig(frz2);
+
     for (auto &s : outsig) {
-      if(*frz1 > 0) in[pp] = *inp;
-      if(*frz2 > 0) ir[pp] = *irp;
-      pp = pp != fils - 1 ? pp + 1 : 0;
+      if(*frz1 > 0) *itn = *inp;
+      if(*frz2 > 0) *itr = *irp;
+      itn++, itr++;
+      if(itn == in.end()) {
+         itn = in.begin();
+         itr = ir.begin();
+      }
       s = 0.;
-      for (uint32_t k = 0, kp = pp; k < fils; k++, kp++) {
-        if (kp == fils)
-          kp = 0;
-        s += in[kp] * ir[fils - k - 1];
+      for (csnd::AuxMem<MYFLT>::iterator it1 = itn,
+           it2 = ir.end() - 1; it2 >= ir.begin();
+           it1++, it2--) {
+        if(it1 == in.end()) it1  = in.begin();
+        s += *it1 * *it2;
       }
-      frz1 += inc1;
-      frz2 += inc2;
-      inp++;
-      irp++;
+      frz1 += inc1, frz2 += inc2;
+      inp++, irp++;
     }
     return OK;
   }
@@ -210,11 +222,80 @@ struct TVConv : csnd::Plugin<1, 6> {
   }
 };
 
+/*
+class PrintThread : public csnd::Thread {
+  std::atomic_bool splock;
+  std::atomic_bool on;
+  std::string message;
+
+  void lock() {
+    bool tmp = false;
+    while(!splock.compare_exchange_weak(tmp,true))
+      tmp = false;
+  }
+
+  void unlock() {
+    splock = false;
+  }
+
+  uintptr_t run() {
+    std::string old;
+    while(on) {
+      lock();
+      if(old.compare(message)) {
+       csound->message(message.c_str());
+       old = message;
+      }
+      unlock();
+    }
+    return 0;
+  }
+
+public:
+  PrintThread(csnd::Csound *csound)
+    : Thread(csound), splock(false), on(true), message("") {};
+
+  ~PrintThread(){
+    on = false;
+    join();
+  }
+
+  void set_message(const char *m) {
+    lock();
+    message = m;
+    unlock();
+  }
+
+};
+
+
+struct TPrint : csnd::Plugin<0, 1> {
+  static constexpr char const *otypes = "";
+  static constexpr char const *itypes = "S";
+  PrintThread t;
+
+  int init() {
+    csound->plugin_deinit(this);
+    csnd::constr(&t, csound);
+    return OK;
+  }
+
+  int deinit() {
+    csnd::destr(&t);
+    return OK;
+  }
+
+  int kperf() {
+    t.set_message(inargs.str_data(0).data);
+    return OK;
+  }
+};
+*/
+
+
+
 #include <modload.h>
 void csnd::on_load(Csound *csound) {
   csnd::plugin<PVTrace>(csound, "pvstrace", csnd::thread::ik);
-  csnd::plugin<TVConv>(csound, "tvconv", "a", "aakkii", csnd::thread::ia);
-  csnd::plugin<TVConv>(csound, "tvconv", "a", "aaakii", csnd::thread::ia);
-  csnd::plugin<TVConv>(csound, "tvconv", "a", "aakaii", csnd::thread::ia);
-  csnd::plugin<TVConv>(csound, "tvconv", "a", "aaaaii", csnd::thread::ia);
+  csnd::plugin<TVConv>(csound, "tvconv", "a", "aaxxii", csnd::thread::ia);
 }
diff --git a/Opcodes/py/pycall.auto.c b/Opcodes/py/pycall.auto.c
index 412f3e7..d960077 100644
--- a/Opcodes/py/pycall.auto.c
+++ b/Opcodes/py/pycall.auto.c
@@ -1,3 +1,22 @@
+/*
+ * pycall.auto.c
+ *
+ * Copyright (C) 2002 Maurizio Umberto Puxeddu, Michael Gogins
+ *
+ * This software is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
 
 static int pycall0_krate(CSOUND *csound, PYCALL0 *p)
 {
diff --git a/Opcodes/py/pycall.auto.h b/Opcodes/py/pycall.auto.h
index e601b39..3e547e2 100644
--- a/Opcodes/py/pycall.auto.h
+++ b/Opcodes/py/pycall.auto.h
@@ -1,3 +1,22 @@
+/*
+ * pycall.auto.h
+ *
+ * Copyright (C) 2002 Maurizio Umberto Puxeddu, Michael Gogins
+ *
+ * This software is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
 
 typedef struct {
     OPDS    h;
diff --git a/Opcodes/py/pyx.auto.c b/Opcodes/py/pyx.auto.c
index 87d71e2..a7b7730 100644
--- a/Opcodes/py/pyx.auto.c
+++ b/Opcodes/py/pyx.auto.c
@@ -1,3 +1,23 @@
+/*
+ * pyx.auto.c
+ *
+ * Copyright (C) 2002 Maurizio Umberto Puxeddu, Michael Gogins
+ *
+ * This software is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
 
 static int pyexec_krate(CSOUND *csound, PYEXEC *p)
 {
diff --git a/Opcodes/py/pyx.auto.h b/Opcodes/py/pyx.auto.h
index ebea8f5..efe9fea 100644
--- a/Opcodes/py/pyx.auto.h
+++ b/Opcodes/py/pyx.auto.h
@@ -1,3 +1,22 @@
+/*
+ * pyx.auto.
+ *
+ * Copyright (C) 2002 Maurizio Umberto Puxeddu, Michael Gogins
+ *
+ * This software is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
 
 typedef struct {
     OPDS    h;
diff --git a/Opcodes/repluck.c b/Opcodes/repluck.c
index e481037..897c684 100644
--- a/Opcodes/repluck.c
+++ b/Opcodes/repluck.c
@@ -60,7 +60,7 @@ static int wgpsetin(CSOUND *csound, WGPLUCK2 *p)
       scale++;
     }
     rail_len = npts/2/* + 1*/;      /* but only need half length */
-    if (plk >= FL(1.0) || plk <= FL(0.0)) {
+    if (UNLIKELY(plk >= FL(1.0) || plk <= FL(0.0))) {
       plk = (p->ain ? FL(0.0) : FL(0.5));
     }
     pickpt = (int)(rail_len * plk);
@@ -94,9 +94,9 @@ static int wgpsetin(CSOUND *csound, WGPLUCK2 *p)
     lower_rail->end = lower_rail->data + rail_len - 1;
 
                                 /* Set initial shape */
-    if (plk != FL(0.0)) {
+    if (LIKELY(plk != FL(0.0))) {
       initial_shape = (MYFLT*) csound->Malloc(csound, rail_len*sizeof(MYFLT));
-      if (pickpt < 1) pickpt = 1;       /* Place for pluck, in range (0,1.0) */
+      if (UNLIKELY(pickpt < 1)) pickpt = 1; /* Place for pluck, in range (0,1.0) */
       upslope = FL(1.0)/(MYFLT)pickpt; /* Slightly faster to precalculate */
       downslope = FL(1.0)/(MYFLT)(rail_len - pickpt - 1);
       for (i = 0; i < pickpt; i++)
@@ -112,8 +112,6 @@ static int wgpsetin(CSOUND *csound, WGPLUCK2 *p)
     else {
       memset(upper_rail->data, 0, rail_len*sizeof(MYFLT));
       memset(lower_rail->data, 0, rail_len*sizeof(MYFLT));
-      /* for (i = 0; i < rail_len; i++) */
-      /*   upper_rail->data[i] = lower_rail->data[i] = FL(0.0); */
     }
                                 /* Copy data into structure */
     p->state = FL(0.0);         /* filter memory */
@@ -244,14 +242,12 @@ static int wgpluck(CSOUND *csound, WGPLUCK2 *p)
 
 static int stresonset(CSOUND *csound, STRES *p)
 {
-    int n;
     p->size = (int) (CS_ESR/20);   /* size of delay line */
     csound->AuxAlloc(csound, p->size*sizeof(MYFLT), &p->aux);
     p->Cdelay = (MYFLT*) p->aux.auxp; /* delay line */
     p->LPdelay = p->APdelay = FL(0.0); /* reset the All-pass and Low-pass delays */
     p->wpointer = p->rpointer = 0; /* reset the read/write pointers */
-    for (n = 0; n < p->size; n++)
-      p->Cdelay[n] = FL(0.0);
+    memset(p->Cdelay, '\0', p->size*sizeof(MYFLT));
     return OK;
 }
 
@@ -273,7 +269,7 @@ static int streson(CSOUND *csound, STRES *p)
     int         vdt;
 
     freq = *p->afr;
-    if (freq < FL(20.0)) freq = FL(20.0);   /* lowest freq is 20 Hz */
+    if (UNLIKELY(freq < FL(20.0))) freq = FL(20.0);   /* lowest freq is 20 Hz */
     tdelay = CS_ESR/freq;
     delay = (int) (tdelay - 0.5); /* comb delay */
     fracdelay = tdelay - (delay + 0.5); /* fractional delay */
@@ -288,7 +284,7 @@ static int streson(CSOUND *csound, STRES *p)
       /* GetSample(p); */
       MYFLT tmpo;
       rp = (vdt + wp);
-      if (rp >= size) rp -= size;
+      if (UNLIKELY(rp >= size)) rp -= size;
       tmpo = p->Cdelay[rp];
       w = in[n] + tmpo;
       s = (LPdelay + w)*0.5;
@@ -297,7 +293,7 @@ static int streson(CSOUND *csound, STRES *p)
       APdelay = s - (sample*a);
       p->Cdelay[wp] = sample*g;
       wp++;
-      if (wp == size) wp=0;
+      if (UNLIKELY(wp == size)) wp=0;
     }
     p->rpointer = rp; p->wpointer = wp;
     p->LPdelay = LPdelay; p->APdelay = APdelay;
diff --git a/Opcodes/reverbsc.c b/Opcodes/reverbsc.c
index e89ccc1..96a2851 100644
--- a/Opcodes/reverbsc.c
+++ b/Opcodes/reverbsc.c
@@ -166,7 +166,7 @@ static int sc_reverb_init(CSOUND *csound, SC_REVERB *p)
     int nBytes;
 
     /* check for valid parameters */
-    if (*(p->iSampleRate) <= FL(0.0))
+    if (UNLIKELY(*(p->iSampleRate) <= FL(0.0)))
       p->sampleRate = (double) CS_ESR;
     else
       p->sampleRate = (double) *(p->iSampleRate);
@@ -214,7 +214,7 @@ static int sc_reverb_perf(CSOUND *csound, SC_REVERB *p)
     int       bufferSize; /* Local copy */
     double    dampFact = p->dampFact;
 
-    if (p->initDone <= 0) goto err1;
+    if (UNLIKELY(p->initDone <= 0)) goto err1;
     /* calculate tone filter coefficient if frequency changed */
     if (*(p->kLPFreq) != p->prv_LPFreq) {
       p->prv_LPFreq = *(p->kLPFreq);
@@ -262,7 +262,7 @@ static int sc_reverb_perf(CSOUND *csound, SC_REVERB *p)
         a1 = frac; a1 += 1.0; a1 *= 0.5; am1 = a1 - 1.0;
         a0 = 3.0 * a2; a1 -= a0; am1 -= a2; a0 -= frac;
         /* read four samples for interpolation */
-        if (readPos > 0 && readPos < (bufferSize - 2)) {
+        if (LIKELY(readPos > 0 && readPos < (bufferSize - 2))) {
           vm1 = (double) (lp->buf[readPos - 1]);
           v0  = (double) (lp->buf[readPos]);
           v1  = (double) (lp->buf[readPos + 1]);
diff --git a/Opcodes/seqtime.c b/Opcodes/seqtime.c
index a701f6d..279a6d5 100644
--- a/Opcodes/seqtime.c
+++ b/Opcodes/seqtime.c
@@ -132,7 +132,7 @@ static int seqtim(CSOUND *csound, SEQTIM *p)
         *p->ktrig = curr_val * p->curr_unit_time;
       }
       else {
-        if (p->first_flag) {
+        if (UNLIKELY(p->first_flag)) {
           *p->ktrig = p->table[p->ndx];
           p->first_flag=0;
         }
@@ -237,7 +237,7 @@ static int seqtim2(CSOUND *csound, SEQTIM2 *p)
         *p->ktrig = curr_val * p->curr_unit_time;
       }
       else {
-        if (p->first_flag) {
+        if (UNLIKELY(p->first_flag)) {
           *p->ktrig = p->table[p->ndx];
           p->first_flag = 0;
         }
diff --git a/Opcodes/serial.c b/Opcodes/serial.c
index 50a40f9..64eaaf5 100644
--- a/Opcodes/serial.c
+++ b/Opcodes/serial.c
@@ -427,7 +427,7 @@ int serialPrint(CSOUND *csound, SERIALPRINT *p)
 #endif
     if (bytes > 0) {
       str[bytes] = '\0'; // terminate
-      csound->MessageS(csound, CSOUNDMSG_ORCH, str);
+      csound->MessageS(csound, CSOUNDMSG_ORCH, "%s", str);
     }
     return OK;
 }
diff --git a/Opcodes/signalflowgraph.cpp b/Opcodes/signalflowgraph.cpp
index 804645d..a15b0e2 100644
--- a/Opcodes/signalflowgraph.cpp
+++ b/Opcodes/signalflowgraph.cpp
@@ -1,3 +1,25 @@
+/*
+    signalflowgrap.cpp:
+
+    Copyright (C) 2016 by Michael Gogins
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
 /**
  * T H E   S I G N A L   F L O W   G R A P H   O P C O D E S
  *
@@ -135,11 +157,11 @@ struct FtGenOnce;
 
 std::ostream &operator << (std::ostream &stream, const EVTBLK &a)
 {
-    stream << a.opcod;
-    for (int i = 0; i < a.pcnt; i++) {
-        stream << " " << a.p[i];
-    }
-    return stream;
+        stream << a.opcod;
+        for (int i = 0; i < a.pcnt; i++) {
+                stream << " " << a.p[i];
+        }
+        return stream;
 }
 
 /**
@@ -147,95 +169,124 @@ std::ostream &operator << (std::ostream &stream, const EVTBLK &a)
  * semantics for a map key.
  */
 struct EventBlock {
-    EVTBLK evtblk;
-    EventBlock()
-    {
-        std::memset(&evtblk, 0, sizeof(EVTBLK));
-    }
-    EventBlock(const EVTBLK &other)
-    {
-        std::memcpy(&evtblk, &other, sizeof(EVTBLK));
-    }
-    EventBlock(const EventBlock &other)
-    {
-        std::memcpy(&evtblk, &other.evtblk, sizeof(EVTBLK));
-    }
-    virtual ~EventBlock()
-    {
-    }
-    EventBlock &operator = (const EVTBLK &other)
-    {
-        std::memcpy(&evtblk, &other, sizeof(EVTBLK));
-        return *this;
-    }
-    EventBlock &operator = (const EventBlock &other)
-    {
-        std::memcpy(&evtblk, &other.evtblk, sizeof(EVTBLK));
-        return *this;
-    }
+        EVTBLK evtblk;
+        EventBlock()
+        {
+                std::memset(&evtblk, 0, sizeof(EVTBLK));
+        }
+        EventBlock(const EVTBLK &other)
+        {
+                std::memcpy(&evtblk, &other, sizeof(EVTBLK));
+        }
+        EventBlock(const EventBlock &other)
+        {
+                std::memcpy(&evtblk, &other.evtblk, sizeof(EVTBLK));
+        }
+        virtual ~EventBlock()
+        {
+        }
+        EventBlock &operator = (const EVTBLK &other)
+        {
+                std::memcpy(&evtblk, &other, sizeof(EVTBLK));
+                return *this;
+        }
+        EventBlock &operator = (const EventBlock &other)
+        {
+                std::memcpy(&evtblk, &other.evtblk, sizeof(EVTBLK));
+                return *this;
+        }
 };
 
 bool operator < (const EventBlock &a, const EventBlock &b)
 {
-    int n = std::max(a.evtblk.pcnt, b.evtblk.pcnt);
-    for (int i = 0; i < n; ++i) {
-        //std::fprintf(stderr, "0x%p[%3d/%3d]: %9.4f  0x%p[%3d/%3d]: %9.4f\n", &a, i, a.evtblk.pcnt, a.evtblk.p[i], &b, i, b.evtblk.pcnt, b.evtblk.p[i]);
-        if ((std::isnan(a.evtblk.p[i]) == true) || (std::isnan(b.evtblk.p[i]) == true)) {
-            if ((std::isnan(a.evtblk.p[i]) == true) && (std::isnan(b.evtblk.p[i]) == false)) {
-                //std::fprintf(stderr, "<\n\n");
-                return true;
-            }
-            if ((std::isnan(a.evtblk.p[i]) == false) && (std::isnan(b.evtblk.p[i]) == true)) {
-                //std::fprintf(stderr, ">=\n\n");
-                return false;
-            }
-            if ((std::isnan(a.evtblk.p[i]) == true) && (std::isnan(b.evtblk.p[i]) == true)) {
-                if (std::strcmp(a.evtblk.strarg, b.evtblk.strarg) < 0) {
-                    //std::fprintf(stderr, "<\n\n");
-                    return true;
+        int n = std::max(a.evtblk.pcnt, b.evtblk.pcnt);
+        for (int i = 0; i < n; ++i) {
+                //std::fprintf(stderr, "0x%p[%3d/%3d]: %9.4f  0x%p[%3d/%3d]: %9.4f\n", &a, i, a.evtblk.pcnt, a.evtblk.p[i], &b, i, b.evtblk.pcnt, b.evtblk.p[i]);
+                if ((std::isnan(a.evtblk.p[i]) == true) || (std::isnan(b.evtblk.p[i]) == true)) {
+                        if ((std::isnan(a.evtblk.p[i]) == true) && (std::isnan(b.evtblk.p[i]) == false)) {
+                                //std::fprintf(stderr, "<\n\n");
+                                return true;
+                        }
+                        if ((std::isnan(a.evtblk.p[i]) == false) && (std::isnan(b.evtblk.p[i]) == true)) {
+                                //std::fprintf(stderr, ">=\n\n");
+                                return false;
+                        }
+                        if ((std::isnan(a.evtblk.p[i]) == true) && (std::isnan(b.evtblk.p[i]) == true)) {
+                                if (std::strcmp(a.evtblk.strarg, b.evtblk.strarg) < 0) {
+                                        //std::fprintf(stderr, "<\n\n");
+                                        return true;
+                                }
+                        }
+                }
+                if (a.evtblk.p[i] < b.evtblk.p[i]) {
+                        //std::fprintf(stderr, "<\n\n");
+                        return true;
+                }
+                if (a.evtblk.p[i] > b.evtblk.p[i]) {
+                        //std::fprintf(stderr, ">=\n\n");
+                        return false;
                 }
-            }
-        }
-        if (a.evtblk.p[i] < b.evtblk.p[i]) {
-            //std::fprintf(stderr, "<\n\n");
-            return true;
-        }
-        if (a.evtblk.p[i] > b.evtblk.p[i]) {
-            //std::fprintf(stderr, ">=\n\n");
-            return false;
-        }
 
-    }
-    //if (a.evtblk.pcnt < b.evtblk.pcnt) {
-    //    std::fprintf(stderr, "<\n\n");
-    //    return true;
-    //}
-    //std::fprintf(stderr, ">=\n\n");
-    return false;
+        }
+        //if (a.evtblk.pcnt < b.evtblk.pcnt) {
+        //    std::fprintf(stderr, "<\n\n");
+        //    return true;
+        //}
+        //std::fprintf(stderr, ">=\n\n");
+        return false;
 }
 
 // Identifiers are always "sourcename:outletname" and "sinkname:inletname",
 // or "sourcename:idname:outletname" and "sinkname:inletname."
 
-void *signal_flow_ports_lock = 0;
-void *signal_flow_ftables_lock = 0;
-static std::map< std::string, std::vector< Outleta * > > *aoutletsForSourceOutletIds;
-static std::map< std::string, std::vector< Outletk * > > *koutletsForSourceOutletIds;
-static std::map< std::string, std::vector< Outletf * > > *foutletsForSourceOutletIds;
-static std::map< std::string, std::vector< Outletv * > > *voutletsForSourceOutletIds;
-static std::map< std::string, std::vector< Outletkid * > > *kidoutletsForSourceOutletIds;
-static std::map< std::string, std::vector< Inleta * > > *ainletsForSinkInletIds;
-static std::map< std::string, std::vector< Inletk * > > *kinletsForSinkInletIds;
-static std::map< std::string, std::vector< Inletf * > > *finletsForSinkInletIds;
-static std::map< std::string, std::vector< Inletv * > > *vinletsForSinkInletIds;
-static std::map< std::string, std::vector< Inletkid * > > *kidinletsForSinkInletIds;
-static std::map< std::string, std::vector< std::string > > *connections;
-static std::map< EventBlock, int > *functionTablesForEvtblks;
-static std::vector< std::vector< std::vector<Outleta *> *> * > *aoutletVectors;
-static std::vector< std::vector< std::vector<Outletk *> *> * > *koutletVectors;
-static std::vector< std::vector< std::vector<Outletf *> *> * > *foutletVectors;
-static std::vector< std::vector< std::vector<Outletv *> *> * > *voutletVectors;
-static std::vector< std::vector< std::vector<Outletkid *> *> * > *kidoutletVectors;
+struct SignalFlowGraphState {
+    CSOUND *csound;
+        void *signal_flow_ports_lock;
+        void *signal_flow_ftables_lock;
+        std::map< std::string, std::vector< Outleta * > > aoutletsForSourceOutletIds;
+        std::map< std::string, std::vector< Outletk * > > koutletsForSourceOutletIds;
+        std::map< std::string, std::vector< Outletf * > > foutletsForSourceOutletIds;
+        std::map< std::string, std::vector< Outletv * > > voutletsForSourceOutletIds;
+        std::map< std::string, std::vector< Outletkid * > > kidoutletsForSourceOutletIds;
+        std::map< std::string, std::vector< Inleta * > > ainletsForSinkInletIds;
+        std::map< std::string, std::vector< Inletk * > > kinletsForSinkInletIds;
+        std::map< std::string, std::vector< Inletf * > > finletsForSinkInletIds;
+        std::map< std::string, std::vector< Inletv * > > vinletsForSinkInletIds;
+        std::map< std::string, std::vector< Inletkid * > > kidinletsForSinkInletIds;
+        std::map< std::string, std::vector< std::string > > connections;
+        std::map< EventBlock, int > functionTablesForEvtblks;
+        std::vector< std::vector< std::vector<Outleta *> *> * > aoutletVectors;
+        std::vector< std::vector< std::vector<Outletk *> *> * > koutletVectors;
+        std::vector< std::vector< std::vector<Outletf *> *> * > foutletVectors;
+        std::vector< std::vector< std::vector<Outletv *> *> * > voutletVectors;
+        std::vector< std::vector< std::vector<Outletkid *> *> * > kidoutletVectors;
+        SignalFlowGraphState(CSOUND *csound_) {
+        csound = csound_;
+                signal_flow_ports_lock = csound->Create_Mutex(0);
+                signal_flow_ftables_lock = csound->Create_Mutex(0);
+        }
+        ~SignalFlowGraphState() {
+        }
+        void clear() {
+                LockGuard guard(csound, signal_flow_ports_lock);
+                aoutletsForSourceOutletIds.clear();
+                ainletsForSinkInletIds.clear();
+                aoutletVectors.clear();
+                koutletsForSourceOutletIds.clear();
+                kinletsForSinkInletIds.clear();
+                koutletVectors.clear();
+                foutletsForSourceOutletIds.clear();
+                voutletsForSourceOutletIds.clear();
+                kidoutletsForSourceOutletIds.clear();
+                vinletsForSinkInletIds.clear();
+                kidinletsForSinkInletIds.clear();
+                finletsForSinkInletIds.clear();
+                foutletVectors.clear();
+                voutletVectors.clear();
+                kidoutletVectors.clear();
+                connections.clear();
+        }
+};
 
 // For true thread-safety, access to shared data must be protected.
 // We will use one critical section for each logically independent
@@ -246,1094 +297,1107 @@ static std::vector< std::vector< std::vector<Outletkid *> *> * > *kidoutletVecto
  * in case they are full from a previous performance.
  */
 struct SignalFlowGraph : public OpcodeBase<SignalFlowGraph> {
-    int init(CSOUND *csound)
-    {
-        warn(csound, "signalflowgraph::init(0x%p)\n", csound);
-        LockGuard guard(csound, signal_flow_ports_lock);
-        aoutletsForSourceOutletIds->clear();
-        ainletsForSinkInletIds->clear();
-        aoutletVectors->clear();
-        koutletsForSourceOutletIds->clear();
-        kinletsForSinkInletIds->clear();
-        koutletVectors->clear();
-        foutletsForSourceOutletIds->clear();
-        voutletsForSourceOutletIds->clear();
-        kidoutletsForSourceOutletIds->clear();
-        vinletsForSinkInletIds->clear();
-        kidinletsForSinkInletIds->clear();
-        finletsForSinkInletIds->clear();
-        foutletVectors->clear();
-        voutletVectors->clear();
-        kidoutletVectors->clear();
-        connections->clear();
-        functionTablesForEvtblks->clear();
-        return OK;
-    };
+        int init(CSOUND *csound)
+        {
+                warn(csound, "signalflowgraph::init(0x%p)\n", csound);
+                SignalFlowGraphState *sfg_globals = 0;
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                sfg_globals->clear();
+                return OK;
+        };
 };
 
 struct Outleta : public OpcodeNoteoffBase<Outleta> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    MYFLT *asignal;
-    /**
-     * State.
-     */
-    char sourceOutletId[0x100];
-    int init(CSOUND *csound)
-    {
-        //warn(csound, "BEGAN Outleta::init()...\n");
-        LockGuard guard(csound, signal_flow_ports_lock);
-        sourceOutletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        MYFLT *asignal;
+        /**
+         * State.
+         */
+        char sourceOutletId[0x100];
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                //warn(csound, "BEGAN Outleta::init()...\n");
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                sourceOutletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Outleta *> &aoutlets =
+                    sfg_globals->aoutletsForSourceOutletIds[sourceOutletId];
+                if (std::find(aoutlets.begin(), aoutlets.end(), this) == aoutlets.end()) {
+                        aoutlets.push_back(this);
+                        warn(csound,
+                             Str("Created instance 0x%x of %d instances of outlet %s\n"),
+                             this, aoutlets.size(), sourceOutletId);
+                }
+                //warn(csound, "ENDED Outleta::init()...\n");
+                return OK;
         }
-        std::vector<Outleta *> &aoutlets =
-            (*aoutletsForSourceOutletIds)[sourceOutletId];
-        if (std::find(aoutlets.begin(), aoutlets.end(), this) == aoutlets.end()) {
-            aoutlets.push_back(this);
-            warn(csound,
-                 Str("Created instance 0x%x of %d instances of outlet %s\n"),
-                 this, aoutlets.size(), sourceOutletId);
+        int noteoff(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::vector<Outleta *> &aoutlets =
+                    sfg_globals->aoutletsForSourceOutletIds[sourceOutletId];
+                std::vector<Outleta *>::iterator thisoutlet = std::find(aoutlets.begin(), aoutlets.end(), this);
+                aoutlets.erase(thisoutlet);
+                warn(csound, Str("Removed instance 0x%x of %d instances of outleta %s\n"),
+                     this, aoutlets.size(), sourceOutletId);
+                return OK;
         }
-        //warn(csound, "ENDED Outleta::init()...\n");
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::vector<Outleta *> &aoutlets =
-            (*aoutletsForSourceOutletIds)[sourceOutletId];
-        std::vector<Outleta *>::iterator thisoutlet = std::find(aoutlets.begin(), aoutlets.end(), this);
-        aoutlets.erase(thisoutlet);
-        warn(csound, Str("Removed instance 0x%x of %d instances of outleta %s\n"),
-             this, aoutlets.size(), sourceOutletId);
-        return OK;
-    }
 };
 
 struct Inleta : public OpcodeBase<Inleta> {
-    /**
-     * Output.
-     */
-    MYFLT *asignal;
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    /**
-     * State.
-     */
-    char sinkInletId[0x100];
-    std::vector< std::vector<Outleta *> *> *sourceOutlets;
-    int sampleN;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        warn(csound, "BEGAN Inleta::init()...\n");
-        sampleN = opds.insdshead->ksmps;
-        warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
-        //think problem is here
-        //should always create
-        if (std::find(aoutletVectors->begin(),
-                      aoutletVectors->end(),
-                      sourceOutlets) == aoutletVectors->end()) {
-            sourceOutlets = new std::vector< std::vector<Outleta *> *>;
-            aoutletVectors->push_back(sourceOutlets);
-        } else {
-            sourceOutlets->clear();
-        }
-        warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
-        sinkInletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
-        }
-        std::vector<Inleta *> &ainlets =
-            (*ainletsForSinkInletIds)[sinkInletId];
-        if (std::find(ainlets.begin(), ainlets.end(), this) == ainlets.end()) {
-            ainlets.push_back(this);
-            warn(csound,
-                 Str("Created instance 0x%x of inlet %s\n"), this, sinkInletId);
-        }
-        // Find source outlets connecting to this.
-        // Any number of sources may connect to any number of sinks.
-        std::vector<std::string> &sourceOutletIds =
-            (*connections)[sinkInletId];
-        for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
-            const std::string &sourceOutletId = sourceOutletIds[i];
-            std::vector<Outleta *> &aoutlets =
-                (*aoutletsForSourceOutletIds)[sourceOutletId];
-            if (std::find(sourceOutlets->begin(), sourceOutlets->end(),
-                          &aoutlets) == sourceOutlets->end()) {
-                sourceOutlets->push_back(&aoutlets);
-                warn(csound,
-                     Str("Connected instances of outlet %s to instance 0x%x of "
-                         "inlet %s.\n"), sourceOutletId.c_str(), this, sinkInletId);
-            }
-        }
-        warn(csound, "ENDED Inleta::init().\n");
-        return OK;
-    }
-    /**
-     * Sum arate values from active outlets feeding this inlet.
-     */
-    int audio(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        //warn(csound, "BEGAN Inleta::audio()...\n");
-        // Zero the inlet buffer.
-        for (int sampleI = 0; sampleI < sampleN; sampleI++) {
-            asignal[sampleI] = FL(0.0);
+        /**
+         * Output.
+         */
+        MYFLT *asignal;
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        /**
+         * State.
+         */
+        char sinkInletId[0x100];
+        std::vector< std::vector<Outleta *> *> *sourceOutlets;
+        int sampleN;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                warn(csound, "BEGAN Inleta::init()...\n");
+                sampleN = opds.insdshead->ksmps;
+                warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
+                //think problem is here
+                //should always create
+                if (std::find(sfg_globals->aoutletVectors.begin(),
+                              sfg_globals->aoutletVectors.end(),
+                              sourceOutlets) == sfg_globals->aoutletVectors.end()) {
+                        sourceOutlets = new std::vector< std::vector<Outleta *> *>;
+                        sfg_globals->aoutletVectors.push_back(sourceOutlets);
+                } else {
+                        sourceOutlets->clear();
+                }
+                warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
+                sinkInletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Inleta *> &ainlets =
+                    sfg_globals->ainletsForSinkInletIds[sinkInletId];
+                if (std::find(ainlets.begin(), ainlets.end(), this) == ainlets.end()) {
+                        ainlets.push_back(this);
+                        warn(csound,
+                             Str("Created instance 0x%x of inlet %s\n"), this, sinkInletId);
+                }
+                // Find source outlets connecting to this.
+                // Any number of sources may connect to any number of sinks.
+                std::vector<std::string> &sourceOutletIds =
+                    sfg_globals->connections[sinkInletId];
+                for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
+                        const std::string &sourceOutletId = sourceOutletIds[i];
+                        std::vector<Outleta *> &aoutlets =
+                            sfg_globals->aoutletsForSourceOutletIds[sourceOutletId];
+                        if (std::find(sourceOutlets->begin(), sourceOutlets->end(),
+                                      &aoutlets) == sourceOutlets->end()) {
+                                sourceOutlets->push_back(&aoutlets);
+                                warn(csound,
+                                     Str("Connected instances of outlet %s to instance 0x%x of "
+                                         "inlet %s.\n"), sourceOutletId.c_str(), this, sinkInletId);
+                        }
+                }
+                warn(csound, "ENDED Inleta::init().\n");
+                return OK;
         }
-        // Loop over the source connections...
-        for (size_t sourceI = 0, sourceN = sourceOutlets->size();
-                sourceI < sourceN;
-                sourceI++) {
-            // Loop over the source connection instances...
-            std::vector<Outleta *> *instances = sourceOutlets->at(sourceI);
-            for (size_t instanceI = 0, instanceN = instances->size();
-                    instanceI < instanceN;
-                    instanceI++) {
-                Outleta *sourceOutlet = instances->at(instanceI);
-                // Skip inactive instances.
-                if (sourceOutlet->opds.insdshead->actflg) {
-                    for (int sampleI = 0, sampleN = ksmps(); sampleI < sampleN; ++sampleI) {
-                        asignal[sampleI] += sourceOutlet->asignal[sampleI];
-                    }
+        /**
+         * Sum arate values from active outlets feeding this inlet.
+         */
+        int audio(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                //warn(csound, "BEGAN Inleta::audio()...\n");
+                // Zero the inlet buffer.
+                for (int sampleI = 0; sampleI < sampleN; sampleI++) {
+                        asignal[sampleI] = FL(0.0);
                 }
-            }
+                // Loop over the source connections...
+                for (size_t sourceI = 0, sourceN = sourceOutlets->size();
+                        sourceI < sourceN;
+                        sourceI++) {
+                        // Loop over the source connection instances...
+                        std::vector<Outleta *> *instances = sourceOutlets->at(sourceI);
+                        for (size_t instanceI = 0, instanceN = instances->size();
+                                instanceI < instanceN;
+                                instanceI++) {
+                                Outleta *sourceOutlet = instances->at(instanceI);
+                                // Skip inactive instances.
+                                if (sourceOutlet->opds.insdshead->actflg) {
+                                        for (int sampleI = 0, sampleN = ksmps(); sampleI < sampleN; ++sampleI) {
+                                                asignal[sampleI] += sourceOutlet->asignal[sampleI];
+                                        }
+                                }
+                        }
+                }
+                //warn(csound, "ENDED Inleta::audio().\n");
+                return OK;
         }
-        //warn(csound, "ENDED Inleta::audio().\n");
-        return OK;
-    }
 };
 
 struct Outletk : public OpcodeNoteoffBase<Outletk> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    MYFLT *ksignal;
-    /**
-     * State.
-     */
-    char sourceOutletId[0x100];
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        MYFLT *ksignal;
+        /**
+         * State.
+         */
+        char sourceOutletId[0x100];
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Outletk *> &koutlets =
+                    sfg_globals->koutletsForSourceOutletIds[sourceOutletId];
+                if (std::find(koutlets.begin(), koutlets.end(), this) == koutlets.end()) {
+                        koutlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of %d instances of outlet %s\n"),
+                             this, koutlets.size(), sourceOutletId);
+                }
+                return OK;
         }
-        std::vector<Outletk *> &koutlets =
-            (*koutletsForSourceOutletIds)[sourceOutletId];
-        if (std::find(koutlets.begin(), koutlets.end(), this) == koutlets.end()) {
-            koutlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of %d instances of outlet %s\n"),
-                 this, koutlets.size(), sourceOutletId);
+        int noteoff(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::vector<Outletk *> &koutlets =
+                    sfg_globals->koutletsForSourceOutletIds[sourceOutletId];
+                std::vector<Outletk *>::iterator thisoutlet = std::find(koutlets.begin(), koutlets.end(), this);
+                koutlets.erase(thisoutlet);
+                warn(csound, Str("Removed 0x%x of %d instances of outletk %s\n"),
+                     this, koutlets.size(), sourceOutletId);
+                return OK;
         }
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::vector<Outletk *> &koutlets =
-            (*koutletsForSourceOutletIds)[sourceOutletId];
-        std::vector<Outletk *>::iterator thisoutlet = std::find(koutlets.begin(), koutlets.end(), this);
-        koutlets.erase(thisoutlet);
-        warn(csound, Str("Removed 0x%x of %d instances of outletk %s\n"),
-             this, koutlets.size(), sourceOutletId);
-        return OK;
-    }
 };
 
 struct Inletk : public OpcodeBase<Inletk> {
-    /**
-     * Output.
-     */
-    MYFLT *ksignal;
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    /**
-     * State.
-     */
-    char sinkInletId[0x100];
-    std::vector< std::vector<Outletk *> *> *sourceOutlets;
-    int ksmps;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        ksmps = opds.insdshead->ksmps;
-        if (std::find(koutletVectors->begin(),
-                      koutletVectors->end(),
-                      sourceOutlets) == koutletVectors->end()) {
-            sourceOutlets = new std::vector< std::vector<Outletk *> *>;
-            koutletVectors->push_back(sourceOutlets);
-        } else {
-            sourceOutlets->clear();
-        }
-        sinkInletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
-        }
-        std::vector<Inletk *> &kinlets =
-            (*kinletsForSinkInletIds)[sinkInletId];
-        if (std::find(kinlets.begin(), kinlets.end(), this) == kinlets.end()) {
-            kinlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of inlet %s\n"),
-                 this, sinkInletId);
-        }
-        // Find source outlets connecting to this.
-        // Any number of sources may connect to any number of sinks.
-        std::vector<std::string> &sourceOutletIds =
-            (*connections)[sinkInletId];
-        for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
-            const std::string &sourceOutletId = sourceOutletIds[i];
-            std::vector<Outletk *> &koutlets =
-                (*koutletsForSourceOutletIds)[sourceOutletId];
-            if (std::find(sourceOutlets->begin(),
-                          sourceOutlets->end(), &koutlets) == sourceOutlets->end()) {
-                sourceOutlets->push_back(&koutlets);
-                warn(csound, Str("Connected instances of outlet %s to instance 0x%x"
-                                 "of inlet %s.\n"),
-                     sourceOutletId.c_str(), this, sinkInletId);
-            }
+        /**
+         * Output.
+         */
+        MYFLT *ksignal;
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        /**
+         * State.
+         */
+        char sinkInletId[0x100];
+        std::vector< std::vector<Outletk *> *> *sourceOutlets;
+        int ksmps;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                ksmps = opds.insdshead->ksmps;
+                if (std::find(sfg_globals->koutletVectors.begin(),
+                              sfg_globals->koutletVectors.end(),
+                              sourceOutlets) == sfg_globals->koutletVectors.end()) {
+                        sourceOutlets = new std::vector< std::vector<Outletk *> *>;
+                        sfg_globals->koutletVectors.push_back(sourceOutlets);
+                } else {
+                        sourceOutlets->clear();
+                }
+                sinkInletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Inletk *> &kinlets =
+                    sfg_globals->kinletsForSinkInletIds[sinkInletId];
+                if (std::find(kinlets.begin(), kinlets.end(), this) == kinlets.end()) {
+                        kinlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of inlet %s\n"),
+                             this, sinkInletId);
+                }
+                // Find source outlets connecting to this.
+                // Any number of sources may connect to any number of sinks.
+                std::vector<std::string> &sourceOutletIds =
+                    sfg_globals->connections[sinkInletId];
+                for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
+                        const std::string &sourceOutletId = sourceOutletIds[i];
+                        std::vector<Outletk *> &koutlets =
+                            sfg_globals->koutletsForSourceOutletIds[sourceOutletId];
+                        if (std::find(sourceOutlets->begin(),
+                                      sourceOutlets->end(), &koutlets) == sourceOutlets->end()) {
+                                sourceOutlets->push_back(&koutlets);
+                                warn(csound, Str("Connected instances of outlet %s to instance 0x%x"
+                                                 "of inlet %s.\n"),
+                                     sourceOutletId.c_str(), this, sinkInletId);
+                        }
+                }
+                return OK;
         }
-        return OK;
-    }
-    /**
-     * Sum krate values from active outlets feeding this inlet.
-     */
-    int kontrol(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        // Zero the inlet buffer.
-        *ksignal = FL(0.0);
-        // Loop over the source connections...
-        for (size_t sourceI = 0, sourceN = sourceOutlets->size();
-                sourceI < sourceN;
-                sourceI++) {
-            // Loop over the source connection instances...
-            const std::vector<Outletk *> *instances = sourceOutlets->at(sourceI);
-            for (size_t instanceI = 0, instanceN = instances->size();
-                    instanceI < instanceN;
-                    instanceI++) {
-                const Outletk *sourceOutlet = instances->at(instanceI);
-                // Skip inactive instances.
-                if (sourceOutlet->opds.insdshead->actflg) {
-                    *ksignal += *sourceOutlet->ksignal;
+        /**
+         * Sum krate values from active outlets feeding this inlet.
+         */
+        int kontrol(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                // Zero the inlet buffer.
+                *ksignal = FL(0.0);
+                // Loop over the source connections...
+                for (size_t sourceI = 0, sourceN = sourceOutlets->size();
+                        sourceI < sourceN;
+                        sourceI++) {
+                        // Loop over the source connection instances...
+                        const std::vector<Outletk *> *instances = sourceOutlets->at(sourceI);
+                        for (size_t instanceI = 0, instanceN = instances->size();
+                                instanceI < instanceN;
+                                instanceI++) {
+                                const Outletk *sourceOutlet = instances->at(instanceI);
+                                // Skip inactive instances.
+                                if (sourceOutlet->opds.insdshead->actflg) {
+                                        *ksignal += *sourceOutlet->ksignal;
+                                }
+                        }
                 }
-            }
+                return OK;
         }
-        return OK;
-    }
 };
 
 struct Outletf : public OpcodeNoteoffBase<Outletf> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    PVSDAT *fsignal;
-    /**
-     * State.
-     */
-    char sourceOutletId[0x100];
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        PVSDAT *fsignal;
+        /**
+         * State.
+         */
+        char sourceOutletId[0x100];
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Outletf *> &foutlets =
+                    sfg_globals->foutletsForSourceOutletIds[sourceOutletId];
+                if (std::find(foutlets.begin(), foutlets.end(), this) == foutlets.end()) {
+                        foutlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of outlet %s\n"),
+                             this, sourceOutletId);
+                }
+                return OK;
         }
-        std::vector<Outletf *> &foutlets =
-            (*foutletsForSourceOutletIds)[sourceOutletId];
-        if (std::find(foutlets.begin(), foutlets.end(), this) == foutlets.end()) {
-            foutlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of outlet %s\n"),
-                 this, sourceOutletId);
+        int noteoff(CSOUND *csound)
+        {
+                std::vector<Outletf *> &foutlets =
+                    sfg_globals->foutletsForSourceOutletIds[sourceOutletId];
+                std::vector<Outletf *>::iterator thisoutlet = std::find(foutlets.begin(), foutlets.end(), this);
+                foutlets.erase(thisoutlet);
+                warn(csound, Str("Removed 0x%x of %d instances of outletf %s\n"),
+                     this, foutlets.size(), sourceOutletId);
+                return OK;
         }
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        std::vector<Outletf *> &foutlets =
-            (*foutletsForSourceOutletIds)[sourceOutletId];
-        std::vector<Outletf *>::iterator thisoutlet = std::find(foutlets.begin(), foutlets.end(), this);
-        foutlets.erase(thisoutlet);
-        warn(csound, Str("Removed 0x%x of %d instances of outletf %s\n"),
-             this, foutlets.size(), sourceOutletId);
-        return OK;
-    }
 };
 
 struct Inletf : public OpcodeBase<Inletf> {
-    /**
-     * Output.
-     */
-    PVSDAT *fsignal;
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    /**
-     * State.
-     */
-    char sinkInletId[0x100];
-    std::vector< std::vector<Outletf *> *> *sourceOutlets;
-    int ksmps;
-    int lastframe;
-    bool fsignalInitialized;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        ksmps = opds.insdshead->ksmps;
-        lastframe = 0;
-        fsignalInitialized = false;
-        if (std::find(foutletVectors->begin(),
-                      foutletVectors->end(),
-                      sourceOutlets) == foutletVectors->end()) {
-            sourceOutlets = new std::vector< std::vector<Outletf *> *>;
-            foutletVectors->push_back(sourceOutlets);
-        } else {
-            sourceOutlets->clear();
-        }
-        sinkInletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
-        }
-        std::vector<Inletf *> &finlets =
-            (*finletsForSinkInletIds)[sinkInletId];
-        if (std::find(finlets.begin(), finlets.end(), this) == finlets.end()) {
-            finlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of inlet %s\n"),
-                 this, sinkInletId);
-        }
-        // Find source outlets connecting to this.
-        // Any number of sources may connect to any number of sinks.
-        std::vector<std::string> &sourceOutletIds =
-            (*connections)[sinkInletId];
-        for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
-            const std::string &sourceOutletId = sourceOutletIds[i];
-            std::vector<Outletf *> &foutlets =
-                (*foutletsForSourceOutletIds)[sourceOutletId];
-            if (std::find(sourceOutlets->begin(),
-                          sourceOutlets->end(), &foutlets) == sourceOutlets->end()) {
-                sourceOutlets->push_back(&foutlets);
-                warn(csound,
-                     Str("Connected instances of outlet %s to instance 0x%x of inlet %s.\n"),
-                     sourceOutletId.c_str(), this, sinkInletId);
-            }
-        }
-        return OK;
-    }
-    /**
-     * Mix fsig values from active outlets feeding this inlet.
-     */
-    int audio(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        int result = OK;
-        float *sink = 0;
-        float *source = 0;
-        CMPLX *sinkFrame = 0;
-        CMPLX *sourceFrame = 0;
-        // Loop over the source connections...
-        for (size_t sourceI = 0, sourceN = sourceOutlets->size();
-                sourceI < sourceN;
-                sourceI++) {
-            // Loop over the source connection instances...
-            const std::vector<Outletf *> *instances = sourceOutlets->at(sourceI);
-            for (size_t instanceI = 0, instanceN = instances->size();
-                    instanceI < instanceN;
-                    instanceI++) {
-                const Outletf *sourceOutlet = instances->at(instanceI);
-                // Skip inactive instances.
-                if (sourceOutlet->opds.insdshead->actflg) {
-                    if (!fsignalInitialized) {
-                        int32 N = sourceOutlet->fsignal->N;
-                        if (UNLIKELY(sourceOutlet->fsignal == fsignal)) {
-                            csound->Warning(csound,
-                                            Str("Unsafe to have same fsig as in and out"));
-                        }
-                        fsignal->sliding = 0;
-                        if (sourceOutlet->fsignal->sliding) {
-                            if (fsignal->frame.auxp == 0 ||
-                                    fsignal->frame.size <
-                                    sizeof(MYFLT) * opds.insdshead->ksmps * (N + 2))
-                                csound->AuxAlloc(csound,
-                                                 (N + 2) * sizeof(MYFLT) * opds.insdshead->ksmps,
-                                                 &fsignal->frame);
-                            fsignal->NB = sourceOutlet->fsignal->NB;
-                            fsignal->sliding = 1;
-                        } else if (fsignal->frame.auxp == 0 ||
-                                   fsignal->frame.size < sizeof(float) * (N + 2)) {
-                            csound->AuxAlloc(csound,
-                                             (N + 2) * sizeof(float), &fsignal->frame);
+        /**
+         * Output.
+         */
+        PVSDAT *fsignal;
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        /**
+         * State.
+         */
+        char sinkInletId[0x100];
+        std::vector< std::vector<Outletf *> *> *sourceOutlets;
+        int ksmps;
+        int lastframe;
+        bool fsignalInitialized;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                ksmps = opds.insdshead->ksmps;
+                lastframe = 0;
+                fsignalInitialized = false;
+                if (std::find(sfg_globals->foutletVectors.begin(),
+                              sfg_globals->foutletVectors.end(),
+                              sourceOutlets) == sfg_globals->foutletVectors.end()) {
+                        sourceOutlets = new std::vector< std::vector<Outletf *> *>;
+                        sfg_globals->foutletVectors.push_back(sourceOutlets);
+                } else {
+                        sourceOutlets->clear();
+                }
+                sinkInletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Inletf *> &finlets =
+                    sfg_globals->finletsForSinkInletIds[sinkInletId];
+                if (std::find(finlets.begin(), finlets.end(), this) == finlets.end()) {
+                        finlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of inlet %s\n"),
+                             this, sinkInletId);
+                }
+                // Find source outlets connecting to this.
+                // Any number of sources may connect to any number of sinks.
+                std::vector<std::string> &sourceOutletIds =
+                    sfg_globals->connections[sinkInletId];
+                for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
+                        const std::string &sourceOutletId = sourceOutletIds[i];
+                        std::vector<Outletf *> &foutlets =
+                            sfg_globals->foutletsForSourceOutletIds[sourceOutletId];
+                        if (std::find(sourceOutlets->begin(),
+                                      sourceOutlets->end(), &foutlets) == sourceOutlets->end()) {
+                                sourceOutlets->push_back(&foutlets);
+                                warn(csound,
+                                     Str("Connected instances of outlet %s to instance 0x%x of inlet %s.\n"),
+                                     sourceOutletId.c_str(), this, sinkInletId);
                         }
-                        fsignal->N = N;
-                        fsignal->overlap = sourceOutlet->fsignal->overlap;
-                        fsignal->winsize = sourceOutlet->fsignal->winsize;
-                        fsignal->wintype = sourceOutlet->fsignal->wintype;
-                        fsignal->format = sourceOutlet->fsignal->format;
-                        fsignal->framecount = 1;
-                        lastframe = 0;
-                        if (UNLIKELY(!(fsignal->format == PVS_AMP_FREQ) ||
-                                     (fsignal->format == PVS_AMP_PHASE)))
-                            result =
-                                csound->InitError(csound, Str("inletf: signal format "
-                                                              "must be amp-phase or amp-freq."));
-                        fsignalInitialized = true;
-                    }
-                    if (fsignal->sliding) {
-                        for (int frameI = 0; frameI < ksmps; frameI++) {
-                            sinkFrame = (CMPLX*) fsignal->frame.auxp + (fsignal->NB * frameI);
-                            sourceFrame =
-                                (CMPLX*) sourceOutlet->fsignal->frame.auxp + (fsignal->NB * frameI);
-                            for (size_t binI = 0, binN = fsignal->NB; binI < binN; binI++) {
-                                if (sourceFrame[binI].re > sinkFrame[binI].re) {
-                                    sinkFrame[binI] = sourceFrame[binI];
+                }
+                return OK;
+        }
+        /**
+         * Mix fsig values from active outlets feeding this inlet.
+         */
+        int audio(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                int result = OK;
+                float *sink = 0;
+                float *source = 0;
+                CMPLX *sinkFrame = 0;
+                CMPLX *sourceFrame = 0;
+                // Loop over the source connections...
+                for (size_t sourceI = 0, sourceN = sourceOutlets->size();
+                        sourceI < sourceN;
+                        sourceI++) {
+                        // Loop over the source connection instances...
+                        const std::vector<Outletf *> *instances = sourceOutlets->at(sourceI);
+                        for (size_t instanceI = 0, instanceN = instances->size();
+                                instanceI < instanceN;
+                                instanceI++) {
+                                const Outletf *sourceOutlet = instances->at(instanceI);
+                                // Skip inactive instances.
+                                if (sourceOutlet->opds.insdshead->actflg) {
+                                        if (!fsignalInitialized) {
+                                                int32 N = sourceOutlet->fsignal->N;
+                                                if (UNLIKELY(sourceOutlet->fsignal == fsignal)) {
+                                                        csound->Warning(csound,
+                                                                        Str("Unsafe to have same fsig as in and out"));
+                                                }
+                                                fsignal->sliding = 0;
+                                                if (sourceOutlet->fsignal->sliding) {
+                                                        if (fsignal->frame.auxp == 0 ||
+                                                                fsignal->frame.size <
+                                                                sizeof(MYFLT) * opds.insdshead->ksmps * (N + 2))
+                                                                csound->AuxAlloc(csound,
+                                                                                 (N + 2) * sizeof(MYFLT) * opds.insdshead->ksmps,
+                                                                                 &fsignal->frame);
+                                                        fsignal->NB = sourceOutlet->fsignal->NB;
+                                                        fsignal->sliding = 1;
+                                                } else if (fsignal->frame.auxp == 0 ||
+                                                           fsignal->frame.size < sizeof(float) * (N + 2)) {
+                                                        csound->AuxAlloc(csound,
+                                                                         (N + 2) * sizeof(float), &fsignal->frame);
+                                                }
+                                                fsignal->N = N;
+                                                fsignal->overlap = sourceOutlet->fsignal->overlap;
+                                                fsignal->winsize = sourceOutlet->fsignal->winsize;
+                                                fsignal->wintype = sourceOutlet->fsignal->wintype;
+                                                fsignal->format = sourceOutlet->fsignal->format;
+                                                fsignal->framecount = 1;
+                                                lastframe = 0;
+                                                if (UNLIKELY(!(fsignal->format == PVS_AMP_FREQ) ||
+                                                             (fsignal->format == PVS_AMP_PHASE)))
+                                                        result =
+                                                            csound->InitError(csound, Str("inletf: signal format "
+                                                                                          "must be amp-phase or amp-freq."));
+                                                fsignalInitialized = true;
+                                        }
+                                        if (fsignal->sliding) {
+                                                for (int frameI = 0; frameI < ksmps; frameI++) {
+                                                        sinkFrame = (CMPLX *) fsignal->frame.auxp + (fsignal->NB * frameI);
+                                                        sourceFrame =
+                                                            (CMPLX *) sourceOutlet->fsignal->frame.auxp + (fsignal->NB * frameI);
+                                                        for (size_t binI = 0, binN = fsignal->NB; binI < binN; binI++) {
+                                                                if (sourceFrame[binI].re > sinkFrame[binI].re) {
+                                                                        sinkFrame[binI] = sourceFrame[binI];
+                                                                }
+                                                        }
+                                                }
+                                        }
+                                } else {
+                                        sink = (float *)fsignal->frame.auxp;
+                                        source = (float *)sourceOutlet->fsignal->frame.auxp;
+                                        if (lastframe < int(fsignal->framecount)) {
+                                                for (size_t binI = 0, binN = fsignal->N + 2;
+                                                        binI < binN;
+                                                        binI += 2) {
+                                                        if (source[binI] > sink[binI]) {
+                                                                source[binI] = sink[binI];
+                                                                source[binI + 1] = sink[binI + 1];
+                                                        }
+                                                }
+                                                fsignal->framecount = lastframe = sourceOutlet->fsignal->framecount;
+                                        }
                                 }
-                            }
-                        }
-                    }
-                } else {
-                    sink = (float *)fsignal->frame.auxp;
-                    source = (float *)sourceOutlet->fsignal->frame.auxp;
-                    if (lastframe < int(fsignal->framecount)) {
-                        for (size_t binI = 0, binN = fsignal->N + 2;
-                                binI < binN;
-                                binI += 2) {
-                            if (source[binI] > sink[binI]) {
-                                source[binI] = sink[binI];
-                                source[binI + 1] = sink[binI + 1];
-                            }
                         }
-                        fsignal->framecount = lastframe = sourceOutlet->fsignal->framecount;
-                    }
                 }
-            }
+                return result;
         }
-        return result;
-    }
 };
 
 struct Outletv : public OpcodeNoteoffBase<Outletv> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    ARRAYDAT *vsignal;
-    /**
-     * State.
-     */
-    char sourceOutletId[0x100];
-    int init(CSOUND *csound)
-    {
-        warn(csound, "BEGAN Outletv::init()...\n");
-        LockGuard guard(csound, signal_flow_ports_lock);
-        sourceOutletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        ARRAYDAT *vsignal;
+        /**
+         * State.
+         */
+        char sourceOutletId[0x100];
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                warn(csound, "BEGAN Outletv::init()...\n");
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                sourceOutletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Outletv *> &voutlets =
+                    sfg_globals->voutletsForSourceOutletIds[sourceOutletId];
+                if (std::find(voutlets.begin(), voutlets.end(), this) == voutlets.end()) {
+                        voutlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: %2d size: %4d [%4d] data: 0x%x (0x%x))\n"),
+                             this, voutlets.size(), sourceOutletId, vsignal, vsignal->dimensions, vsignal->sizes[0], vsignal->arrayMemberSize, vsignal->data, &vsignal->data);
+                }
+                warn(csound, "ENDED Outletv::init()...\n");
+                return OK;
         }
-        std::vector<Outletv *> &voutlets =
-            (*voutletsForSourceOutletIds)[sourceOutletId];
-        if (std::find(voutlets.begin(), voutlets.end(), this) == voutlets.end()) {
-            voutlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: %2d size: %4d [%4d] data: 0x%x (0x%x))\n"),
-                 this, voutlets.size(), sourceOutletId, vsignal, vsignal->dimensions, vsignal->sizes[0], vsignal->arrayMemberSize, vsignal->data, &vsignal->data);
+        int noteoff(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::vector<Outletv *> &voutlets =
+                    sfg_globals->voutletsForSourceOutletIds[sourceOutletId];
+                std::vector<Outletv *>::iterator thisoutlet = std::find(voutlets.begin(), voutlets.end(), this);
+                voutlets.erase(thisoutlet);
+                warn(csound, Str("Removed 0x%x of %d instances of outletv %s\n"),
+                     this, voutlets.size(), sourceOutletId);
+                return OK;
         }
-        warn(csound, "ENDED Outletv::init()...\n");
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::vector<Outletv *> &voutlets =
-            (*voutletsForSourceOutletIds)[sourceOutletId];
-        std::vector<Outletv *>::iterator thisoutlet = std::find(voutlets.begin(), voutlets.end(), this);
-        voutlets.erase(thisoutlet);
-        warn(csound, Str("Removed 0x%x of %d instances of outletv %s\n"),
-             this, voutlets.size(), sourceOutletId);
-        return OK;
-    }
 };
 
 struct Inletv : public OpcodeBase<Inletv> {
-    /**
-     * Output.
-     */
-    ARRAYDAT *vsignal;
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    /**
-     * State.
-     */
-    char sinkInletId[0x100];
-    std::vector< std::vector<Outletv *> *> *sourceOutlets;
-    size_t arraySize;
-    size_t myFltsPerArrayElement;
-    int sampleN;
-    int init(CSOUND *csound)
-    {
-        warn(csound, "BEGAN Inletv::init()...\n");
-        LockGuard guard(csound, signal_flow_ports_lock);
-        sampleN = opds.insdshead->ksmps;
-        // The array elements may be krate (1 MYFLT) or arate (ksmps MYFLT).
-        myFltsPerArrayElement = vsignal->arrayMemberSize / sizeof(MYFLT);
-        warn(csound, "myFltsPerArrayElement: %d\n", myFltsPerArrayElement);
-        arraySize = myFltsPerArrayElement;
-        for(size_t dimension = 0; dimension < vsignal->dimensions; ++dimension) {
-            arraySize *= vsignal->sizes[dimension];
-        }
-        warn(csound, "arraySize: %d\n", arraySize);
-        warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
-        if (std::find(voutletVectors->begin(),
-                      voutletVectors->end(),
-                      sourceOutlets) == voutletVectors->end()) {
-            sourceOutlets = new std::vector< std::vector<Outletv *> *>;
-            voutletVectors->push_back(sourceOutlets);
-        } else {
-            sourceOutlets->clear();
-        }
-        warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
-        sinkInletId[0] = 0;
-        const char *insname =
-            csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
-                         (char *)Sname->data);
-        }
-        std::vector<Inletv *> &vinlets =
-            (*vinletsForSinkInletIds)[sinkInletId];
-        if (std::find(vinlets.begin(), vinlets.end(), this) == vinlets.end()) {
-            vinlets.push_back(this);
-            warn(csound, Str("Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d [%4d] data: 0x%x (0x%x))\n"),
-                 this, sinkInletId, vsignal, vsignal->dimensions, vsignal->sizes[0], vsignal->arrayMemberSize, vsignal->data, &vsignal->data);
-        }
-        // Find source outlets connecting to this.
-        // Any number of sources may connect to any number of sinks.
-        std::vector<std::string> &sourceOutletIds =
-            (*connections)[sinkInletId];
-        for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
-            const std::string &sourceOutletId = sourceOutletIds[i];
-            std::vector<Outletv*> &voutlets =
-                (*voutletsForSourceOutletIds)[sourceOutletId];
-            if (std::find(sourceOutlets->begin(), sourceOutlets->end(),
-                          &voutlets) == sourceOutlets->end()) {
-                sourceOutlets->push_back(&voutlets);
-                warn(csound,
-                     Str("Connected instances of outlet %s to instance 0x%x of "
-                         "inlet %s\n"), sourceOutletId.c_str(), this, sinkInletId);
-            }
-        }
-        warn(csound, "ENDED Inletv::init().\n");
-        return OK;
-    }
-    /**
-     * Sum values from active outlets feeding this inlet.
-     */
-    int audio(CSOUND *csound)
-    {
-        //warn(csound, "BEGAN Inletv::audio()...\n");
-        LockGuard guard(csound, signal_flow_ports_lock);
-        for (uint32_t signalI = 0; signalI < arraySize; ++signalI) {
-            vsignal->data[signalI] = FL(0.0);
+        /**
+         * Output.
+         */
+        ARRAYDAT *vsignal;
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        /**
+         * State.
+         */
+        char sinkInletId[0x100];
+        std::vector< std::vector<Outletv *> *> *sourceOutlets;
+        size_t arraySize;
+        size_t myFltsPerArrayElement;
+        int sampleN;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                warn(csound, "BEGAN Inletv::init()...\n");
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                sampleN = opds.insdshead->ksmps;
+                // The array elements may be krate (1 MYFLT) or arate (ksmps MYFLT).
+                myFltsPerArrayElement = vsignal->arrayMemberSize / sizeof(MYFLT);
+                warn(csound, "myFltsPerArrayElement: %d\n", myFltsPerArrayElement);
+                arraySize = myFltsPerArrayElement;
+                for (size_t dimension = 0; dimension < (size_t) vsignal->dimensions; ++dimension) {
+                        arraySize *= vsignal->sizes[dimension];
+                }
+                warn(csound, "arraySize: %d\n", arraySize);
+                warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
+                if (std::find(sfg_globals->voutletVectors.begin(),
+                              sfg_globals->voutletVectors.end(),
+                              sourceOutlets) == sfg_globals->voutletVectors.end()) {
+                        sourceOutlets = new std::vector< std::vector<Outletv *> *>;
+                        sfg_globals->voutletVectors.push_back(sourceOutlets);
+                } else {
+                        sourceOutlets->clear();
+                }
+                warn(csound, "sourceOutlets: 0x%x\n", sourceOutlets);
+                sinkInletId[0] = 0;
+                const char *insname =
+                    csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno,
+                                     (char *)Sname->data);
+                }
+                std::vector<Inletv *> &vinlets =
+                    sfg_globals->vinletsForSinkInletIds[sinkInletId];
+                if (std::find(vinlets.begin(), vinlets.end(), this) == vinlets.end()) {
+                        vinlets.push_back(this);
+                        warn(csound, Str("Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d [%4d] data: 0x%x (0x%x))\n"),
+                             this, sinkInletId, vsignal, vsignal->dimensions, vsignal->sizes[0], vsignal->arrayMemberSize, vsignal->data, &vsignal->data);
+                }
+                // Find source outlets connecting to this.
+                // Any number of sources may connect to any number of sinks.
+                std::vector<std::string> &sourceOutletIds =
+                    sfg_globals->connections[sinkInletId];
+                for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
+                        const std::string &sourceOutletId = sourceOutletIds[i];
+                        std::vector<Outletv *> &voutlets =
+                            sfg_globals->voutletsForSourceOutletIds[sourceOutletId];
+                        if (std::find(sourceOutlets->begin(), sourceOutlets->end(),
+                                      &voutlets) == sourceOutlets->end()) {
+                                sourceOutlets->push_back(&voutlets);
+                                warn(csound,
+                                     Str("Connected instances of outlet %s to instance 0x%x of "
+                                         "inlet %s\n"), sourceOutletId.c_str(), this, sinkInletId);
+                        }
+                }
+                warn(csound, "ENDED Inletv::init().\n");
+                return OK;
         }
-        // Loop over the source connections...
-        for (size_t sourceI = 0, sourceN = sourceOutlets->size();
-                sourceI < sourceN;
-                sourceI++) {
-            // Loop over the source connection instances...
-            std::vector<Outletv *> *instances = sourceOutlets->at(sourceI);
-            for (size_t instanceI = 0, instanceN = instances->size();
-                    instanceI < instanceN;
-                    instanceI++) {
-                Outletv *sourceOutlet = instances->at(instanceI);
-                // Skip inactive instances.
-                if (sourceOutlet->opds.insdshead->actflg) {
-                    for (uint32_t signalI = 0; signalI < arraySize; ++signalI) {
-                        ARRAYDAT *insignal = sourceOutlet->vsignal;
-                        MYFLT *indata = insignal->data;
-                        //warn(csound, "Inletv::audio: sourceOutlet: 0%x in arraydat: 0x%x data: 0x%x (0x%x)\n", sourceOutlet, insignal, indata, &insignal->data);
-                        vsignal->data[signalI] += indata[signalI];
-                    }
+        /**
+         * Sum values from active outlets feeding this inlet.
+         */
+        int audio(CSOUND *csound)
+        {
+                //warn(csound, "BEGAN Inletv::audio()...\n");
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                for (uint32_t signalI = 0; signalI < arraySize; ++signalI) {
+                        vsignal->data[signalI] = FL(0.0);
                 }
-            }
+                // Loop over the source connections...
+                for (size_t sourceI = 0, sourceN = sourceOutlets->size();
+                        sourceI < sourceN;
+                        sourceI++) {
+                        // Loop over the source connection instances...
+                        std::vector<Outletv *> *instances = sourceOutlets->at(sourceI);
+                        for (size_t instanceI = 0, instanceN = instances->size();
+                                instanceI < instanceN;
+                                instanceI++) {
+                                Outletv *sourceOutlet = instances->at(instanceI);
+                                // Skip inactive instances.
+                                if (sourceOutlet->opds.insdshead->actflg) {
+                                        for (uint32_t signalI = 0; signalI < arraySize; ++signalI) {
+                                                ARRAYDAT *insignal = sourceOutlet->vsignal;
+                                                MYFLT *indata = insignal->data;
+                                                //warn(csound, "Inletv::audio: sourceOutlet: 0%x in arraydat: 0x%x data: 0x%x (0x%x)\n", sourceOutlet, insignal, indata, &insignal->data);
+                                                vsignal->data[signalI] += indata[signalI];
+                                        }
+                                }
+                        }
+                }
+                //warn(csound, "ENDED Inletv::audio().\n");
+                return OK;
         }
-        //warn(csound, "ENDED Inletv::audio().\n");
-        return OK;
-    }
 };
 
 struct Outletkid : public OpcodeNoteoffBase<Outletkid> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    STRINGDAT *SinstanceId;
-    MYFLT *ksignal;
-    /**
-     * State.
-     */
-    char sourceOutletId[0x100];
-    char *instanceId;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        const char *insname = csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        instanceId = csound->strarg2name(csound,
-                                         (char*) 0,
-                                         SinstanceId->data,
-                                         (char *)"",
-                                         1);
-        if (insname && instanceId) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
-        }
-        if (insname) {
-            std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        STRINGDAT *SinstanceId;
+        MYFLT *ksignal;
+        /**
+         * State.
+         */
+        char sourceOutletId[0x100];
+        char *instanceId;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                const char *insname = csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                instanceId = csound->strarg2name(csound,
+                                                 (char *) 0,
+                                                 SinstanceId->data,
+                                                 (char *)"",
+                                                 1);
+                if (insname && instanceId) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
+                }
+                if (insname) {
+                        std::sprintf(sourceOutletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sourceOutletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
+                }
+                std::vector<Outletkid *> &koutlets = sfg_globals->kidoutletsForSourceOutletIds[sourceOutletId];
+                if (std::find(koutlets.begin(), koutlets.end(), this) == koutlets.end()) {
+                        koutlets.push_back(this);
+                        warn(csound,
+                             Str("Created instance 0x%x of %d instances of outlet %s\n"),
+                             this, koutlets.size(), sourceOutletId);
+                }
+                return OK;
         }
-        std::vector<Outletkid *> &koutlets = (*kidoutletsForSourceOutletIds)[sourceOutletId];
-        if (std::find(koutlets.begin(), koutlets.end(), this) == koutlets.end()) {
-            koutlets.push_back(this);
-            warn(csound,
-                 Str("Created instance 0x%x of %d instances of outlet %s\n"),
-                 this, koutlets.size(), sourceOutletId);
+        int noteoff(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::vector<Outletkid *> &koutlets =
+                    sfg_globals->kidoutletsForSourceOutletIds[sourceOutletId];
+                std::vector<Outletkid *>::iterator thisoutlet = std::find(koutlets.begin(), koutlets.end(), this);
+                koutlets.erase(thisoutlet);
+                warn(csound, Str("Removed 0x%x of %d instances of outletkid %s\n"),
+                     this, koutlets.size(), sourceOutletId);
+                return OK;
         }
-        return OK;
-    }
-    int noteoff(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::vector<Outletkid *> &koutlets =
-            (*kidoutletsForSourceOutletIds)[sourceOutletId];
-        std::vector<Outletkid *>::iterator thisoutlet = std::find(koutlets.begin(), koutlets.end(), this);
-        koutlets.erase(thisoutlet);
-        warn(csound, Str("Removed 0x%x of %d instances of outletkid %s\n"),
-             this, koutlets.size(), sourceOutletId);
-        return OK;
-    }
 };
 
 struct Inletkid : public OpcodeBase<Inletkid> {
-    /**
-     * Output.
-     */
-    MYFLT *ksignal;
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sname;
-    STRINGDAT *SinstanceId;
-    /**
-     * State.
-     */
-    char sinkInletId[0x100];
-    char *instanceId;
-    std::vector< std::vector<Outletkid *> *> *sourceOutlets;
-    int ksmps;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        ksmps = opds.insdshead->ksmps;
-        if (std::find(kidoutletVectors->begin(),
-                      kidoutletVectors->end(),
-                      sourceOutlets) == kidoutletVectors->end()) {
-            sourceOutlets = new std::vector< std::vector<Outletkid *> *>;
-            kidoutletVectors->push_back(sourceOutlets);
-        } else {
-            sourceOutlets->clear();
-        }
-        sinkInletId[0] = 0;
-        instanceId = csound->strarg2name(csound,
-                                         (char*) 0,
-                                         SinstanceId->data,
-                                         (char *)"",
-                                         1);
-        const char *insname = csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
-        if (insname) {
-            std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
-        } else {
-            std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
-        }
-        std::vector<Inletkid *> &kinlets = (*kidinletsForSinkInletIds)[sinkInletId];
-        if (std::find(kinlets.begin(), kinlets.end(), this) == kinlets.end()) {
-            kinlets.push_back(this);
-            warn(csound,
-                 Str("Created instance 0x%x of inlet %s\n"), this, sinkInletId);
-        }
-        // Find source outlets connecting to this.
-        // Any number of sources may connect to any number of sinks.
-        std::vector<std::string> &sourceOutletIds = (*connections)[sinkInletId];
-        for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
-            const std::string &sourceOutletId = sourceOutletIds[i];
-            std::vector<Outletkid *> &koutlets = (*kidoutletsForSourceOutletIds)[sourceOutletId];
-            if (std::find(sourceOutlets->begin(), sourceOutlets->end(), &koutlets) == sourceOutlets->end()) {
-                sourceOutlets->push_back(&koutlets);
-                warn(csound, Str("Connected instances of outlet %s to instance 0x%x of inlet %s.\n"), sourceOutletId.c_str(), this, sinkInletId);
-            }
+        /**
+         * Output.
+         */
+        MYFLT *ksignal;
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sname;
+        STRINGDAT *SinstanceId;
+        /**
+         * State.
+         */
+        char sinkInletId[0x100];
+        char *instanceId;
+        std::vector< std::vector<Outletkid *> *> *sourceOutlets;
+        int ksmps;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                ksmps = opds.insdshead->ksmps;
+                if (std::find(sfg_globals->kidoutletVectors.begin(),
+                              sfg_globals->kidoutletVectors.end(),
+                              sourceOutlets) == sfg_globals->kidoutletVectors.end()) {
+                        sourceOutlets = new std::vector< std::vector<Outletkid *> *>;
+                        sfg_globals->kidoutletVectors.push_back(sourceOutlets);
+                } else {
+                        sourceOutlets->clear();
+                }
+                sinkInletId[0] = 0;
+                instanceId = csound->strarg2name(csound,
+                                                 (char *) 0,
+                                                 SinstanceId->data,
+                                                 (char *)"",
+                                                 1);
+                const char *insname = csound->GetInstrumentList(csound)[opds.insdshead->insno]->insname;
+                if (insname) {
+                        std::sprintf(sinkInletId, "%s:%s", insname, (char *)Sname->data);
+                } else {
+                        std::sprintf(sinkInletId, "%d:%s", opds.insdshead->insno, (char *)Sname->data);
+                }
+                std::vector<Inletkid *> &kinlets = sfg_globals->kidinletsForSinkInletIds[sinkInletId];
+                if (std::find(kinlets.begin(), kinlets.end(), this) == kinlets.end()) {
+                        kinlets.push_back(this);
+                        warn(csound,
+                             Str("Created instance 0x%x of inlet %s\n"), this, sinkInletId);
+                }
+                // Find source outlets connecting to this.
+                // Any number of sources may connect to any number of sinks.
+                std::vector<std::string> &sourceOutletIds = sfg_globals->connections[sinkInletId];
+                for (size_t i = 0, n = sourceOutletIds.size(); i < n; i++) {
+                        const std::string &sourceOutletId = sourceOutletIds[i];
+                        std::vector<Outletkid *> &koutlets = sfg_globals->kidoutletsForSourceOutletIds[sourceOutletId];
+                        if (std::find(sourceOutlets->begin(), sourceOutlets->end(), &koutlets) == sourceOutlets->end()) {
+                                sourceOutlets->push_back(&koutlets);
+                                warn(csound, Str("Connected instances of outlet %s to instance 0x%x of inlet %s.\n"), sourceOutletId.c_str(), this, sinkInletId);
+                        }
+                }
+                return OK;
         }
-        return OK;
-    }
-    /**
-     * Replay instance signal.
-     */
-    int kontrol(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        // Zero the / buffer.
-        *ksignal = FL(0.0);
-        // Loop over the source connections...
-        for (size_t sourceI = 0, sourceN = sourceOutlets->size();
-                sourceI < sourceN;
-                sourceI++) {
-            // Loop over the source connection instances...
-            const std::vector<Outletkid *> *instances = sourceOutlets->at(sourceI);
-            for (size_t instanceI = 0, instanceN = instances->size();
-                    instanceI < instanceN;
-                    instanceI++) {
-                const Outletkid *sourceOutlet = instances->at(instanceI);
-                // Skip inactive instances and also all non-matching instances.
-                if (sourceOutlet->opds.insdshead->actflg) {
-                    if (std::strcmp(sourceOutlet->instanceId, instanceId) == 0) {
-                        *ksignal += *sourceOutlet->ksignal;
-                    }
+        /**
+         * Replay instance signal.
+         */
+        int kontrol(CSOUND *csound)
+        {
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                // Zero the / buffer.
+                *ksignal = FL(0.0);
+                // Loop over the source connections...
+                for (size_t sourceI = 0, sourceN = sourceOutlets->size();
+                        sourceI < sourceN;
+                        sourceI++) {
+                        // Loop over the source connection instances...
+                        const std::vector<Outletkid *> *instances = sourceOutlets->at(sourceI);
+                        for (size_t instanceI = 0, instanceN = instances->size();
+                                instanceI < instanceN;
+                                instanceI++) {
+                                const Outletkid *sourceOutlet = instances->at(instanceI);
+                                // Skip inactive instances and also all non-matching instances.
+                                if (sourceOutlet->opds.insdshead->actflg) {
+                                        if (std::strcmp(sourceOutlet->instanceId, instanceId) == 0) {
+                                                *ksignal += *sourceOutlet->ksignal;
+                                        }
+                                }
+                        }
                 }
-            }
+                return OK;
         }
-        return OK;
-    }
 };
 
 struct Connect : public OpcodeBase<Connect> {
-    /**
-     * Inputs.
-     */
-    MYFLT *Source;
-    STRINGDAT *Soutlet;
-    MYFLT  *Sink;
-    STRINGDAT *Sinlet;
-    MYFLT *gain;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::string sourceOutletId = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     ((std::isnan(*Source)) ?
-                                      csound->GetString(csound,*Source) :
-                                      (char *)Source),
-                                     (char *)"",
-                                     std::isnan(*Source));
-        sourceOutletId += ":";
-        sourceOutletId += csound->strarg2name(csound,
-                                              (char *) 0,
-                                              Soutlet->data,
-                                              (char *)"",
-                                              1);
+        /**
+         * Inputs.
+         */
+        MYFLT *Source;
+        STRINGDAT *Soutlet;
+        MYFLT  *Sink;
+        STRINGDAT *Sinlet;
+        MYFLT *gain;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::string sourceOutletId = csound->strarg2name(csound,
+                                             (char *) 0,
+                                             ((std::isnan(*Source)) ?
+                                              csound->GetString(csound,*Source) :
+                                              (char *)Source),
+                                             (char *)"",
+                                             std::isnan(*Source));
+                sourceOutletId += ":";
+                sourceOutletId += csound->strarg2name(csound,
+                                                      (char *) 0,
+                                                      Soutlet->data,
+                                                      (char *)"",
+                                                      1);
 
-        std::string sinkInletId = csound->strarg2name(csound,
-                                  (char *) 0,
-                                  ((std::isnan(*Sink)) ?
-                                   csound->GetString(csound,*Sink) :
-                                   (char *)Sink),
-                                  (char *)"",
-                                  std::isnan(*Sink));
-        sinkInletId += ":";
-        sinkInletId += csound->strarg2name(csound,
-                                           (char *) 0,
-                                           Sinlet->data,
-                                           (char *)"",
-                                           1);
-        warn(csound, Str("Connected outlet %s to inlet %s.\n"),
-             sourceOutletId.c_str(), sinkInletId.c_str());
-        (*connections)[sinkInletId].push_back(sourceOutletId);
-        return OK;
-    }
+                std::string sinkInletId = csound->strarg2name(csound,
+                                          (char *) 0,
+                                          ((std::isnan(*Sink)) ?
+                                           csound->GetString(csound,*Sink) :
+                                           (char *)Sink),
+                                          (char *)"",
+                                          std::isnan(*Sink));
+                sinkInletId += ":";
+                sinkInletId += csound->strarg2name(csound,
+                                                   (char *) 0,
+                                                   Sinlet->data,
+                                                   (char *)"",
+                                                   1);
+                warn(csound, Str("Connected outlet %s to inlet %s.\n"),
+                     sourceOutletId.c_str(), sinkInletId.c_str());
+                sfg_globals->connections[sinkInletId].push_back(sourceOutletId);
+                return OK;
+        }
 };
 
 struct Connecti : public OpcodeBase<Connecti> {
-    /**
-     * Inputs.
-     */
-    MYFLT *Source;
-    STRINGDAT *Soutlet;
-    STRINGDAT *Sink;
-    STRINGDAT *Sinlet;
-    MYFLT *gain;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::string sourceOutletId = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     ((std::isnan(*Source)) ?
-                                      csound->GetString(csound,*Source) :
-                                      (char *)Source),
-                                     (char *)"",
-                                     std::isnan(*Source));
-        sourceOutletId += ":";
-        sourceOutletId += csound->strarg2name(csound,
-                                              (char *) 0,
-                                              Soutlet->data,
-                                              (char *)"",
-                                              1);
-        std::string sinkInletId = csound->strarg2name(csound,
-                                  (char *) 0,
-                                  Sink->data,
-                                  (char *)"",
-                                  1);
-        sinkInletId += ":";
-        sinkInletId += csound->strarg2name(csound,
-                                           (char *) 0,
-                                           Sinlet->data,
-                                           (char *)"",
-                                           1);
-        warn(csound, Str("Connected outlet %s to inlet %s.\n"),
-             sourceOutletId.c_str(), sinkInletId.c_str());
-        (*connections)[sinkInletId].push_back(sourceOutletId);
-        return OK;
-    }
+        /**
+         * Inputs.
+         */
+        MYFLT *Source;
+        STRINGDAT *Soutlet;
+        STRINGDAT *Sink;
+        STRINGDAT *Sinlet;
+        MYFLT *gain;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::string sourceOutletId = csound->strarg2name(csound,
+                                             (char *) 0,
+                                             ((std::isnan(*Source)) ?
+                                              csound->GetString(csound,*Source) :
+                                              (char *)Source),
+                                             (char *)"",
+                                             std::isnan(*Source));
+                sourceOutletId += ":";
+                sourceOutletId += csound->strarg2name(csound,
+                                                      (char *) 0,
+                                                      Soutlet->data,
+                                                      (char *)"",
+                                                      1);
+                std::string sinkInletId = csound->strarg2name(csound,
+                                          (char *) 0,
+                                          Sink->data,
+                                          (char *)"",
+                                          1);
+                sinkInletId += ":";
+                sinkInletId += csound->strarg2name(csound,
+                                                   (char *) 0,
+                                                   Sinlet->data,
+                                                   (char *)"",
+                                                   1);
+                warn(csound, Str("Connected outlet %s to inlet %s.\n"),
+                     sourceOutletId.c_str(), sinkInletId.c_str());
+                sfg_globals->connections[sinkInletId].push_back(sourceOutletId);
+                return OK;
+        }
 };
 
 
 struct Connectii : public OpcodeBase<Connectii> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Source;
-    STRINGDAT *Soutlet;
-    MYFLT *Sink;
-    STRINGDAT *Sinlet;
-    MYFLT *gain;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::string sourceOutletId = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     Source->data,
-                                     (char *)"",
-                                     1);
-        sourceOutletId += ":";
-        sourceOutletId += csound->strarg2name(csound,
-                                              (char *) 0,
-                                              Soutlet->data,
-                                              (char *)"",
-                                              1);
-        std::string sinkInletId =
-            csound->strarg2name(csound,
-                                (char *) 0,
-                                ((std::isnan(*Sink)) ?
-                                 csound->GetString(csound,*Sink) :
-                                 (char *)Sink),
-                                (char *)"",
-                                std::isnan(*Sink));;
-        sinkInletId += ":";
-        sinkInletId += csound->strarg2name(csound,
-                                           (char *) 0,
-                                           Sinlet->data,
-                                           (char *)"",
-                                           1);
-        warn(csound, Str("Connected outlet %s to inlet %s.\n"),
-             sourceOutletId.c_str(), sinkInletId.c_str());
-        (*connections)[sinkInletId].push_back(sourceOutletId);
-        return OK;
-    }
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Source;
+        STRINGDAT *Soutlet;
+        MYFLT *Sink;
+        STRINGDAT *Sinlet;
+        MYFLT *gain;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::string sourceOutletId = csound->strarg2name(csound,
+                                             (char *) 0,
+                                             Source->data,
+                                             (char *)"",
+                                             1);
+                sourceOutletId += ":";
+                sourceOutletId += csound->strarg2name(csound,
+                                                      (char *) 0,
+                                                      Soutlet->data,
+                                                      (char *)"",
+                                                      1);
+                std::string sinkInletId =
+                    csound->strarg2name(csound,
+                                        (char *) 0,
+                                        ((std::isnan(*Sink)) ?
+                                         csound->GetString(csound,*Sink) :
+                                         (char *)Sink),
+                                        (char *)"",
+                                        std::isnan(*Sink));;
+                sinkInletId += ":";
+                sinkInletId += csound->strarg2name(csound,
+                                                   (char *) 0,
+                                                   Sinlet->data,
+                                                   (char *)"",
+                                                   1);
+                warn(csound, Str("Connected outlet %s to inlet %s.\n"),
+                     sourceOutletId.c_str(), sinkInletId.c_str());
+                sfg_globals->connections[sinkInletId].push_back(sourceOutletId);
+                return OK;
+        }
 };
 
 struct ConnectS : public OpcodeBase<ConnectS> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Source;
-    STRINGDAT *Soutlet;
-    STRINGDAT *Sink;
-    STRINGDAT *Sinlet;
-    MYFLT *gain;
-    int init(CSOUND *csound)
-    {
-        LockGuard guard(csound, signal_flow_ports_lock);
-        std::string sourceOutletId = csound->strarg2name(csound,
-                                     (char *) 0,
-                                     Source->data,
-                                     (char *)"",
-                                     1);
-        sourceOutletId += ":";
-        sourceOutletId += csound->strarg2name(csound,
-                                              (char *) 0,
-                                              Soutlet->data,
-                                              (char *)"",
-                                              1);
-        std::string sinkInletId = csound->strarg2name(csound,
-                                  (char *) 0,
-                                  Sink->data,
-                                  (char *)"",
-                                  1);
-        sinkInletId += ":";
-        sinkInletId += csound->strarg2name(csound,
-                                           (char *) 0,
-                                           Sinlet->data,
-                                           (char *)"",
-                                           1);
-        warn(csound, Str("Connected outlet %s to inlet %s.\n"),
-             sourceOutletId.c_str(), sinkInletId.c_str());
-        (*connections)[sinkInletId].push_back(sourceOutletId);
-        return OK;
-    }
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Source;
+        STRINGDAT *Soutlet;
+        STRINGDAT *Sink;
+        STRINGDAT *Sinlet;
+        MYFLT *gain;
+    SignalFlowGraphState *sfg_globals;
+        int init(CSOUND *csound)
+        {
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+                LockGuard guard(csound, sfg_globals->signal_flow_ports_lock);
+                std::string sourceOutletId = csound->strarg2name(csound,
+                                             (char *) 0,
+                                             Source->data,
+                                             (char *)"",
+                                             1);
+                sourceOutletId += ":";
+                sourceOutletId += csound->strarg2name(csound,
+                                                      (char *) 0,
+                                                      Soutlet->data,
+                                                      (char *)"",
+                                                      1);
+                std::string sinkInletId = csound->strarg2name(csound,
+                                          (char *) 0,
+                                          Sink->data,
+                                          (char *)"",
+                                          1);
+                sinkInletId += ":";
+                sinkInletId += csound->strarg2name(csound,
+                                                   (char *) 0,
+                                                   Sinlet->data,
+                                                   (char *)"",
+                                                   1);
+                warn(csound, Str("Connected outlet %s to inlet %s.\n"),
+                     sourceOutletId.c_str(), sinkInletId.c_str());
+                sfg_globals->connections[sinkInletId].push_back(sourceOutletId);
+                return OK;
+        }
 };
 
 struct AlwaysOnS  : public OpcodeBase<AlwaysOnS> {
-    /**
-     * Inputs.
-     */
-    STRINGDAT *Sinstrument;
-    MYFLT *argums[VARGMAX];
-    /**
-     * State.
-     */
-    EVTBLK evtblk;
-    int init(CSOUND *csound)
-    {
-        MYFLT offset = csound->GetScoreOffsetSeconds(csound);
-        evtblk.opcod = 'i';
-        evtblk.strarg = 0;
-        evtblk.p[0] = FL(0.0);
-        evtblk.p[1] = csound->strarg2insno(csound, Sinstrument->data, 1);
-        evtblk.p[2] = evtblk.p2orig = offset;
-        evtblk.p[3] = evtblk.p3orig = FL(-1.0);
-        size_t inArgCount = csound->GetInputArgCnt(this);
-        // Add 2, for hard-coded p2 and p3.
-        evtblk.pcnt = (int16) inArgCount + 2;
-        // Subtract 1, for only required inarg p1.
-        size_t argumN = inArgCount - 1;
-        // Start evtblk at 4, argums at 0.
-        for (size_t pfieldI = 4, argumI = 0; argumI < argumN; pfieldI++, argumI++) {
-            evtblk.p[pfieldI] = *argums[argumI];
+        /**
+         * Inputs.
+         */
+        STRINGDAT *Sinstrument;
+        MYFLT *argums[VARGMAX];
+        /**
+         * State.
+         */
+        EVTBLK evtblk;
+        int init(CSOUND *csound)
+        {
+                MYFLT offset = csound->GetScoreOffsetSeconds(csound);
+                evtblk.opcod = 'i';
+                evtblk.strarg = 0;
+                evtblk.p[0] = FL(0.0);
+                evtblk.p[1] = csound->strarg2insno(csound, Sinstrument->data, 1);
+                evtblk.p[2] = evtblk.p2orig = offset;
+                evtblk.p[3] = evtblk.p3orig = FL(-1.0);
+                size_t inArgCount = csound->GetInputArgCnt(this);
+                // Add 2, for hard-coded p2 and p3.
+                evtblk.pcnt = (int16) inArgCount + 2;
+                // Subtract 1, for only required inarg p1.
+                size_t argumN = inArgCount - 1;
+                // Start evtblk at 4, argums at 0.
+                for (size_t pfieldI = 4, argumI = 0; argumI < argumN; pfieldI++, argumI++) {
+                        evtblk.p[pfieldI] = *argums[argumI];
+                }
+                csound->insert_score_event_at_sample(csound, &evtblk, 0);
+                return OK;
         }
-        csound->insert_score_event(csound, &evtblk, FL(0.0));
-        return OK;
-    }
 };
 
 struct AlwaysOn  : public OpcodeBase<AlwaysOn> {
-    /**
-     * Inputs.
-     */
-    MYFLT *Sinstrument;
-    MYFLT *argums[VARGMAX];
-    /**
-     * State.
-     */
-    EVTBLK evtblk;
-    int init(CSOUND *csound)
-    {
-        std::string source = csound->strarg2name(csound,
-                             (char *) 0,
-                             Sinstrument,
-                             (char *)"",
-                             (int) 0);
-        MYFLT offset = csound->GetScoreOffsetSeconds(csound);
-        evtblk.opcod = 'i';
-        evtblk.strarg = 0;
-        evtblk.p[0] = FL(0.0);
-        evtblk.p[1] = *Sinstrument;
-        evtblk.p[2] = evtblk.p2orig = offset;
-        evtblk.p[3] = evtblk.p3orig = FL(-1.0);
+        /**
+         * Inputs.
+         */
+        MYFLT *Sinstrument;
+        MYFLT *argums[VARGMAX];
+        /**
+         * State.
+         */
+        EVTBLK evtblk;
+        int init(CSOUND *csound)
+        {
+                std::string source = csound->strarg2name(csound,
+                                     (char *) 0,
+                                     Sinstrument,
+                                     (char *)"",
+                                     (int) 0);
+                MYFLT offset = csound->GetScoreOffsetSeconds(csound);
+                evtblk.opcod = 'i';
+                evtblk.strarg = 0;
+                evtblk.p[0] = FL(0.0);
+                evtblk.p[1] = *Sinstrument;
+                evtblk.p[2] = evtblk.p2orig = offset;
+                evtblk.p[3] = evtblk.p3orig = FL(-1.0);
 
-        size_t inArgCount = csound->GetInputArgCnt(this);
-        // Add 2, for hard-coded p2 and p3.
-        evtblk.pcnt = (int16) inArgCount + 2;
-        // Subtract 1, for only required inarg p1.
-        size_t argumN = inArgCount - 1;
-        // Start evtblk at 4, argums at 0.
-        for (size_t pfieldI = 4, argumI = 0; argumI < argumN; pfieldI++, argumI++) {
-            evtblk.p[pfieldI] = *argums[argumI];
+                size_t inArgCount = csound->GetInputArgCnt(this);
+                // Add 2, for hard-coded p2 and p3.
+                evtblk.pcnt = (int16) inArgCount + 2;
+                // Subtract 1, for only required inarg p1.
+                size_t argumN = inArgCount - 1;
+                // Start evtblk at 4, argums at 0.
+                for (size_t pfieldI = 4, argumI = 0; argumI < argumN; pfieldI++, argumI++) {
+                        evtblk.p[pfieldI] = *argums[argumI];
+                }
+                csound->insert_score_event_at_sample(csound, &evtblk, 0);
+                return OK;
         }
-        csound->insert_score_event_at_sample(csound, &evtblk, 0);
-        return OK;
-    }
 };
 
 typedef struct {
-    OPDS    h;
-    MYFLT   *ifno, *p1, *p2, *p3, *p4, *p5, *argums[VARGMAX];
+        OPDS    h;
+        MYFLT   *ifno, *p1, *p2, *p3, *p4, *p5, *argums[VARGMAX];
 } FTGEN;
 
 typedef struct namedgen {
-    char    *name;
-    int     genum;
-    struct namedgen *next;
+        char    *name;
+        int     genum;
+        struct namedgen *next;
 } NAMEDGEN;
 
 static void log(CSOUND *csound, const char *format,...)
 {
-    va_list args;
-    va_start(args, format);
-    if(csound) {
-        csound->MessageV(csound, 0, format, args);
-    } else {
-        vfprintf(stdout, format, args);
-    }
-    va_end(args);
+        va_list args;
+        va_start(args, format);
+        if (csound) {
+                csound->MessageV(csound, 0, format, args);
+        } else {
+                vfprintf(stdout, format, args);
+        }
+        va_end(args);
 }
 
 static void warn(CSOUND *csound, const char *format,...)
 {
-    if(csound) {
-        if(csound->GetMessageLevel(csound) & WARNMSG) {
-            va_list args;
-            va_start(args, format);
-            csound->MessageV(csound, CSOUNDMSG_WARNING, format, args);
-            va_end(args);
+        if (csound) {
+                if (csound->GetMessageLevel(csound) & WARNMSG) {
+                        va_list args;
+                        va_start(args, format);
+                        csound->MessageV(csound, CSOUNDMSG_WARNING, format, args);
+                        va_end(args);
+                }
+        } else {
+                va_list args;
+                va_start(args, format);
+                vfprintf(stderr, format, args);
+                va_end(args);
         }
-    } else {
-        va_list args;
-        va_start(args, format);
-        vfprintf(stderr, format, args);
-        va_end(args);
-    }
 }
 
 /**
@@ -1345,477 +1409,432 @@ static void warn(CSOUND *csound, const char *format,...)
  */
 static int ftgenonce_(CSOUND *csound, FTGEN *p, bool isNamedGenerator, bool hasStringParameter)
 {
-    LockGuard guard(csound, signal_flow_ftables_lock);
-    int result = OK;
-    EventBlock eventBlock;
-    EVTBLK  *ftevt = &eventBlock.evtblk;
-    *p->ifno = FL(0.0);
-    std::memset(ftevt, 0, sizeof(EVTBLK));
-    // ifno ftgenonce ipfno, ip2dummy, ip4size, ip5gen, ip6arga, ip7argb,...
-    ftevt->opcod = 'f';
-    ftevt->strarg = 0;
-    MYFLT *fp = &ftevt->p[0];
-    ftevt->p[0] = FL(0.0);
-    ftevt->p[1] = *p->p1;
-    ftevt->p[2] = ftevt->p2orig = FL(0.0);
-    ftevt->p[3] = ftevt->p3orig = *p->p3;
-    if (isNamedGenerator) {
-        NAMEDGEN *named = (NAMEDGEN *) csound->GetNamedGens(csound);
-        while (named) {
-            if (strcmp(named->name, ((STRINGDAT *) p->p4)->data) == 0) {
-                /* Look up by name */
-                break;
-            }
-            named = named->next;                            /*  and round again   */
+    SignalFlowGraphState *sfg_globals;
+    csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+        LockGuard guard(csound, sfg_globals->signal_flow_ftables_lock);
+        int result = OK;
+        EventBlock eventBlock;
+        EVTBLK  *ftevt = &eventBlock.evtblk;
+        *p->ifno = FL(0.0);
+        std::memset(ftevt, 0, sizeof(EVTBLK));
+        // ifno ftgenonce ipfno, ip2dummy, ip4size, ip5gen, ip6arga, ip7argb,...
+        ftevt->opcod = 'f';
+        ftevt->strarg = 0;
+        MYFLT *fp = &ftevt->p[0];
+        ftevt->p[0] = FL(0.0);
+        ftevt->p[1] = *p->p1;
+        ftevt->p[2] = ftevt->p2orig = FL(0.0);
+        ftevt->p[3] = ftevt->p3orig = *p->p3;
+        if (isNamedGenerator) {
+                NAMEDGEN *named = (NAMEDGEN *) csound->GetNamedGens(csound);
+                while (named) {
+                        if (strcmp(named->name, ((STRINGDAT *) p->p4)->data) == 0) {
+                                /* Look up by name */
+                                break;
+                        }
+                        named = named->next;                            /*  and round again   */
+                }
+                if (UNLIKELY(named == 0)) {
+                        if (sfg_globals->signal_flow_ftables_lock != 0) {
+                                csound->UnlockMutex(sfg_globals->signal_flow_ftables_lock);
+                        }
+                        return csound->InitError(csound,
+                                                 Str("Named gen \"%s\" not defined"),
+                                                 (char *)p->p4);
+                } else {
+                        ftevt->p[4] = named->genum;
+                }
+        } else {
+                ftevt->p[4] = *p->p4;
         }
-        if (UNLIKELY(named == 0)) {
-            if(signal_flow_ftables_lock != 0) {
-                csound->UnlockMutex(signal_flow_ftables_lock);
-            }
-            return csound->InitError(csound,
-                                     Str("Named gen \"%s\" not defined"),
-                                     (char *)p->p4);
+        if (hasStringParameter) {
+                int n = (int) fp[4];
+                ftevt->p[5] = SSTRCOD;
+                if (n < 0) {
+                        n = -n;
+                }
+                switch (n) {                      /*   must be Gen01, 23, 28, or 43 */
+                case 1:
+                case 23:
+                case 28:
+                case 43:
+                        ftevt->strarg = ((STRINGDAT *) p->p5)->data;
+                        break;
+                default:
+                        if (sfg_globals->signal_flow_ftables_lock != 0) {
+                                csound->UnlockMutex(sfg_globals->signal_flow_ftables_lock);
+                        }
+                        return csound->InitError(csound, Str("ftgen string arg not allowed"));
+                }
         } else {
-            ftevt->p[4] = named->genum;
+                ftevt->p[5] = *p->p5;
         }
-    } else {
-        ftevt->p[4] = *p->p4;
-    }
-    if (hasStringParameter) {
-        int n = (int) fp[4];
-        ftevt->p[5] = SSTRCOD;
-        if (n < 0) {
-            n = -n;
+        // Copy the remaining parameters.
+        ftevt->pcnt = (int16) csound->GetInputArgCnt(p);
+        int n = ftevt->pcnt - 5;
+        if (n > 0) {
+                MYFLT **argp = p->argums;
+                MYFLT *fp = &ftevt->p[0] + 6;
+                do {
+                        *fp++ = **argp++;
+                } while (--n);
         }
-        switch (n) {                      /*   must be Gen01, 23, 28, or 43 */
-        case 1:
-        case 23:
-        case 28:
-        case 43:
-            ftevt->strarg = ((STRINGDAT *) p->p5)->data;
-            break;
-        default:
-            if(signal_flow_ftables_lock != 0) {
-                csound->UnlockMutex(signal_flow_ftables_lock);
-            }
-            return csound->InitError(csound, Str("ftgen string arg not allowed"));
-        }
-    } else {
-        ftevt->p[5] = *p->p5;
-    }
-    // Copy the remaining parameters.
-    ftevt->pcnt = (int16) csound->GetInputArgCnt(p);
-    int n = ftevt->pcnt - 5;
-    if (n > 0) {
-        MYFLT **argp = p->argums;
-        MYFLT *fp = &ftevt->p[0] + 6;
-        do {
-            *fp++ = **argp++;
-        } while (--n);
-    }
-    if(functionTablesForEvtblks->find(eventBlock) != functionTablesForEvtblks->end()) {
-        *p->ifno = (*functionTablesForEvtblks)[eventBlock];
-        warn(csound, Str("ftgenonce: re-using existing func: %f\n"), *p->ifno);
-    } else {
-        if(functionTablesForEvtblks->find(eventBlock) != functionTablesForEvtblks->end()) {
-            *p->ifno = (*functionTablesForEvtblks)[eventBlock];
-            warn(csound, Str("ftgenonce: re-using existing func: %f\n"),
-                 *p->ifno);
+        if (sfg_globals->functionTablesForEvtblks.find(eventBlock) != sfg_globals->functionTablesForEvtblks.end()) {
+                *p->ifno = sfg_globals->functionTablesForEvtblks[eventBlock];
+                warn(csound, Str("ftgenonce: re-using existing func: %f\n"), *p->ifno);
         } else {
-            FUNC *func = 0;
-            int status = csound->hfgens(csound, &func, ftevt, 1);
-            if (UNLIKELY(status != 0)) {
-                result = csound->InitError(csound, Str("ftgenonce error"));
-            }
-            if (func) {
-                (*functionTablesForEvtblks)[eventBlock] = func->fno;
-                *p->ifno = (MYFLT) func->fno;
-                warn(csound, Str("ftgenonce: created new func: %d\n"), func->fno);
-                if(functionTablesForEvtblks->find(eventBlock) == functionTablesForEvtblks->end()) {
+                if (sfg_globals->functionTablesForEvtblks.find(eventBlock) != sfg_globals->functionTablesForEvtblks.end()) {
+                        *p->ifno = sfg_globals->functionTablesForEvtblks[eventBlock];
+                        warn(csound, Str("ftgenonce: re-using existing func: %f\n"),
+                             *p->ifno);
+                } else {
+                        FUNC *func = 0;
+                        int status = csound->hfgens(csound, &func, ftevt, 1);
+                        if (UNLIKELY(status != 0)) {
+                                result = csound->InitError(csound, Str("ftgenonce error"));
+                        }
+                        if (func) {
+                                sfg_globals->functionTablesForEvtblks[eventBlock] = func->fno;
+                                *p->ifno = (MYFLT) func->fno;
+                                warn(csound, Str("ftgenonce: created new func: %d\n"), func->fno);
+                                if (sfg_globals->functionTablesForEvtblks.find(eventBlock) == sfg_globals->functionTablesForEvtblks.end()) {
 #if (SIGNALFLOWGRAPH_DEBUG == 1)
-                    std::fprintf(stderr, "Oops! inserted but not found.\n");
+                                        std::fprintf(stderr, "Oops! inserted but not found.\n");
 #endif
-                }
-            } else {
+                                }
+                        } else {
 #if (SIGNALFLOWGRAPH_DEBUG == 1)
-                std::fprintf(stderr, "Oops! New but not created.\n");
+                                std::fprintf(stderr, "Oops! New but not created.\n");
 #endif
-            }
+                        }
+                }
         }
-    }
-    return result;
+        return result;
 }
 
 static int ftgenonce(CSOUND *csound, FTGEN *p)
 {
-    return ftgenonce_(csound, p, false, false);
+        return ftgenonce_(csound, p, false, false);
 }
 
 static int ftgenonce_S(CSOUND *csound, FTGEN *p)
 {
-    return ftgenonce_(csound, p, true, false);
+        return ftgenonce_(csound, p, true, false);
 }
 
 static int ftgenonce_iS(CSOUND *csound, FTGEN *p)
 {
-    return ftgenonce_(csound, p, false, true);
+        return ftgenonce_(csound, p, false, true);
 }
 
 static int ftgenonce_SS(CSOUND *csound, FTGEN *p)
 {
-    return ftgenonce_(csound, p, true, true);
+        return ftgenonce_(csound, p, true, true);
 }
 
 extern "C"
 {
-    static OENTRY oentries[] = {
-        {
-            (char *)"signalflowgraph",
-            sizeof(SignalFlowGraph),
-            0,
-            1,
-            (char *)"",
-            (char *)"",
-            (SUBR)&SignalFlowGraph::init_,
-            0,
-            0,
-        },
-        {
-            (char *)"outleta",
-            sizeof(Outleta),
-            _CW,
-            5,
-            (char *)"",
-            (char *)"Sa",
-            (SUBR)&Outleta::init_,
-            0,
-            (SUBR)&Outleta::audio_
-        },
-        {
-            (char *)"inleta",
-            sizeof(Inleta),
-            _CR,
-            5,
-            (char *)"a",
-            (char *)"S",
-            (SUBR)&Inleta::init_,
-            0,
-            (SUBR)&Inleta::audio_
-        },
-        {
-            (char *)"outletk",
-            sizeof(Outletk),
-            _CW,
-            3,
-            (char *)"",
-            (char *)"Sk",
-            (SUBR)&Outletk::init_,
-            (SUBR)&Outletk::kontrol_,
-            0
-        },
-        {
-            (char *)"inletk",
-            sizeof(Inletk),
-            _CR,
-            3,
-            (char *)"k",
-            (char *)"S",
-            (SUBR)&Inletk::init_,
-            (SUBR)&Inletk::kontrol_,
-            0
-        },
-        {
-            (char *)"outletkid",
-            sizeof(Outletkid),
-            _CW,
-            3,
-            (char *)"",
-            (char *)"SSk",
-            (SUBR)&Outletk::init_,
-            (SUBR)&Outletk::kontrol_,
-            0
-        },
-        {
-            (char *)"inletkid",
-            sizeof(Inletkid),
-            _CR,
-            3,
-            (char *)"k",
-            (char *)"SS",
-            (SUBR)&Inletk::init_,
-            (SUBR)&Inletk::kontrol_,
-            0
-        },
-        {
-            (char *)"outletf",
-            sizeof(Outletf),
-            _CW,
-            5,
-            (char *)"",
-            (char *)"Sf",
-            (SUBR)&Outletf::init_,
-            0,
-            (SUBR)&Outletf::audio_
-        },
-        {
-            (char *)"inletf",
-            sizeof(Inletf),
-            _CR,
-            5,
-            (char *)"f",
-            (char *)"S",
-            (SUBR)&Inletf::init_,
-            0,
-            (SUBR)&Inletf::audio_
-        },
-        {
-            (char *)"outletv",
-            sizeof(Outletv),
-            _CW,
-            5,
-            (char *)"",
-            (char *)"Sa[]",
-            (SUBR)&Outletv::init_,
-            0,
-            (SUBR)&Outletv::audio_
-        },
-        {
-            (char *)"inletv",
-            sizeof(Inletv),
-            _CR,
-            5,
-            (char *)"a[]",
-            (char *)"S",
-            (SUBR)&Inletv::init_,
-            0,
-            (SUBR)&Inletv::audio_
-        },
-        {
-            (char *)"connect",
-            sizeof(Connect),
-            0,
-            1,
-            (char *)"",
-            (char *)"iSiSp",
-            (SUBR)&Connect::init_,
-            0,
-            0
-        },
-        {
-            (char *)"connect.i",
-            sizeof(Connecti),
-            0,
-            1,
-            (char *)"",
-            (char *)"iSSSp",
-            (SUBR)&Connecti::init_,
-            0,
-            0
-        },
-        {
-            (char *)"connect.ii",
-            sizeof(Connectii),
-            0,
-            1,
-            (char *)"",
-            (char *)"SSiSp",
-            (SUBR)&Connectii::init_,
-            0,
-            0
-        },
-        {
-            (char *)"connect.S",
-            sizeof(ConnectS),
-            0,
-            1,
-            (char *)"",
-            (char *)"SSSSp",
-            (SUBR)&ConnectS::init_,
-            0,
-            0
-        },
-        {
-            (char *)"alwayson",
-            sizeof(AlwaysOn),
-            0,
-            1,
-            (char *)"",
-            (char *)"im",
-            (SUBR)&AlwaysOn::init_,
-            0,
-            0
-        },
-        {
-            (char *)"alwayson.S",
-            sizeof(AlwaysOnS),
-            0,
-            1,
-            (char *)"",
-            (char *)"Sm",
-            (SUBR)&AlwaysOnS::init_,
-            0,
-            0
-        },
-        {
-            (char *)"ftgenonce",
-            sizeof(FTGEN),
-            TW,
-            1,
-            (char *)"i",
-            (char *)"iiiiim",
-            (SUBR)&ftgenonce,
-            0,
-            0
-        },
-        {
-            (char *)"ftgenonce.S",
-            sizeof(FTGEN),
-            TW,
-            1,
-            (char *)"i",
-            (char *)"iiiSim",
-            (SUBR)&ftgenonce_S,
-            0,
-            0
-        },
-        {
-            (char *)"ftgenonce.iS",
-            sizeof(FTGEN),
-            TW,
-            1,
-            (char *)"i",
-            (char *)"iiiiSm",
-            (SUBR)&ftgenonce_iS,
-            0,
-            0
-        },
-        {
-            (char *)"ftgenonce.SS",
-            sizeof(FTGEN),
-            TW,
-            1,
-            (char *)"i",
-            (char *)"iiiSSm",
-            (SUBR)&ftgenonce_SS,
-            0,
-            0
-        },
-        { 0, 0, 0, 0, 0, 0, (SUBR) 0, (SUBR) 0, (SUBR) 0 }
-    };
+        static OENTRY oentries[] = {
+                {
+                        (char *)"signalflowgraph",
+                        sizeof(SignalFlowGraph),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"",
+                        (SUBR) &SignalFlowGraph::init_,
+                        0,
+                        0,
+                },
+                {
+                        (char *)"outleta",
+                        sizeof(Outleta),
+                        _CW,
+                        5,
+                        (char *)"",
+                        (char *)"Sa",
+                        (SUBR) &Outleta::init_,
+                        0,
+                        (SUBR) &Outleta::audio_
+                },
+                {
+                        (char *)"inleta",
+                        sizeof(Inleta),
+                        _CR,
+                        5,
+                        (char *)"a",
+                        (char *)"S",
+                        (SUBR) &Inleta::init_,
+                        0,
+                        (SUBR) &Inleta::audio_
+                },
+                {
+                        (char *)"outletk",
+                        sizeof(Outletk),
+                        _CW,
+                        3,
+                        (char *)"",
+                        (char *)"Sk",
+                        (SUBR) &Outletk::init_,
+                        (SUBR) &Outletk::kontrol_,
+                        0
+                },
+                {
+                        (char *)"inletk",
+                        sizeof(Inletk),
+                        _CR,
+                        3,
+                        (char *)"k",
+                        (char *)"S",
+                        (SUBR) &Inletk::init_,
+                        (SUBR) &Inletk::kontrol_,
+                        0
+                },
+                {
+                        (char *)"outletkid",
+                        sizeof(Outletkid),
+                        _CW,
+                        3,
+                        (char *)"",
+                        (char *)"SSk",
+                        (SUBR) &Outletk::init_,
+                        (SUBR) &Outletk::kontrol_,
+                        0
+                },
+                {
+                        (char *)"inletkid",
+                        sizeof(Inletkid),
+                        _CR,
+                        3,
+                        (char *)"k",
+                        (char *)"SS",
+                        (SUBR) &Inletk::init_,
+                        (SUBR) &Inletk::kontrol_,
+                        0
+                },
+                {
+                        (char *)"outletf",
+                        sizeof(Outletf),
+                        _CW,
+                        5,
+                        (char *)"",
+                        (char *)"Sf",
+                        (SUBR) &Outletf::init_,
+                        0,
+                        (SUBR) &Outletf::audio_
+                },
+                {
+                        (char *)"inletf",
+                        sizeof(Inletf),
+                        _CR,
+                        5,
+                        (char *)"f",
+                        (char *)"S",
+                        (SUBR) &Inletf::init_,
+                        0,
+                        (SUBR) &Inletf::audio_
+                },
+                {
+                        (char *)"outletv",
+                        sizeof(Outletv),
+                        _CW,
+                        5,
+                        (char *)"",
+                        (char *)"Sa[]",
+                        (SUBR) &Outletv::init_,
+                        0,
+                        (SUBR) &Outletv::audio_
+                },
+                {
+                        (char *)"inletv",
+                        sizeof(Inletv),
+                        _CR,
+                        5,
+                        (char *)"a[]",
+                        (char *)"S",
+                        (SUBR) &Inletv::init_,
+                        0,
+                        (SUBR) &Inletv::audio_
+                },
+                {
+                        (char *)"connect",
+                        sizeof(Connect),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"iSiSp",
+                        (SUBR) &Connect::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"connect.i",
+                        sizeof(Connecti),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"iSSSp",
+                        (SUBR) &Connecti::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"connect.ii",
+                        sizeof(Connectii),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SSiSp",
+                        (SUBR) &Connectii::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"connect.S",
+                        sizeof(ConnectS),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"SSSSp",
+                        (SUBR) &ConnectS::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"alwayson",
+                        sizeof(AlwaysOn),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"im",
+                        (SUBR) &AlwaysOn::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"alwayson.S",
+                        sizeof(AlwaysOnS),
+                        0,
+                        1,
+                        (char *)"",
+                        (char *)"Sm",
+                        (SUBR) &AlwaysOnS::init_,
+                        0,
+                        0
+                },
+                {
+                        (char *)"ftgenonce",
+                        sizeof(FTGEN),
+                        TW,
+                        1,
+                        (char *)"i",
+                        (char *)"iiiiim",
+                        (SUBR) &ftgenonce,
+                        0,
+                        0
+                },
+                {
+                        (char *)"ftgenonce.S",
+                        sizeof(FTGEN),
+                        TW,
+                        1,
+                        (char *)"i",
+                        (char *)"iiiSim",
+                        (SUBR) &ftgenonce_S,
+                        0,
+                        0
+                },
+                {
+                        (char *)"ftgenonce.iS",
+                        sizeof(FTGEN),
+                        TW,
+                        1,
+                        (char *)"i",
+                        (char *)"iiiiSm",
+                        (SUBR) &ftgenonce_iS,
+                        0,
+                        0
+                },
+                {
+                        (char *)"ftgenonce.SS",
+                        sizeof(FTGEN),
+                        TW,
+                        1,
+                        (char *)"i",
+                        (char *)"iiiSSm",
+                        (SUBR) &ftgenonce_SS,
+                        0,
+                        0
+                },
+                { 0, 0, 0, 0, 0, 0, (SUBR) 0, (SUBR) 0, (SUBR) 0 }
+        };
 
-    PUBLIC int csoundModuleCreate_signalflowgraph(CSOUND *csound)
-    {
-        if(csound->GetDebug(csound)) {
-            csound->Message(csound, "signalflowgraph: csoundModuleCreate(%p)\n", csound);
+        PUBLIC int csoundModuleCreate_signalflowgraph(CSOUND *csound)
+        {
+                if (csound->GetDebug(csound)) {
+                        csound->Message(csound, "signalflowgraph: csoundModuleCreate(%p)\n", csound);
+                }
+                SignalFlowGraphState *sfg_globals = new SignalFlowGraphState(csound);
+                csound::CreateGlobalPointer(csound, "sfg_globals", sfg_globals);
+                return 0;
         }
-        signal_flow_ports_lock = csound->Create_Mutex(0);
-        signal_flow_ftables_lock = csound->Create_Mutex(0);
-        aoutletsForSourceOutletIds = new std::map< std::string, std::vector< Outleta * > >;
-        koutletsForSourceOutletIds = new std::map< std::string, std::vector< Outletk * > >;
-        foutletsForSourceOutletIds = new std::map< std::string, std::vector< Outletf * > >;
-        voutletsForSourceOutletIds = new std::map< std::string, std::vector< Outletv * > >;
-        kidoutletsForSourceOutletIds = new std::map< std::string, std::vector< Outletkid * > >;
-        ainletsForSinkInletIds = new std::map< std::string, std::vector< Inleta * > >;
-        kinletsForSinkInletIds = new std::map< std::string, std::vector< Inletk * > >;
-        finletsForSinkInletIds = new std::map< std::string, std::vector< Inletf * > >;
-        vinletsForSinkInletIds = new std::map< std::string, std::vector< Inletv * > >;
-        kidinletsForSinkInletIds = new std::map< std::string, std::vector< Inletkid * > >;
-        connections = new std::map< std::string, std::vector< std::string > >;
-        functionTablesForEvtblks = new std::map< EventBlock, int >;
-        aoutletVectors = new std::vector< std::vector< std::vector<Outleta *> *> * >;
-        koutletVectors = new std::vector< std::vector< std::vector<Outletk *> *> * >;
-        foutletVectors = new std::vector< std::vector< std::vector<Outletf *> *> * >;
-        voutletVectors = new std::vector< std::vector< std::vector<Outletv *> *> * >;
-        kidoutletVectors = new std::vector< std::vector< std::vector<Outletkid *> *> * >;
-        return 0;
-    }
 
-    PUBLIC int csoundModuleInit_signalflowgraph(CSOUND *csound)
-    {
-        if(csound->GetDebug(csound)) {
-            csound->Message(csound, "signalflowgraph: csoundModuleInit(%p)\n", csound);
-        }
-        OENTRY *ep = (OENTRY *)&(oentries[0]);
-        int  err = 0;
-        while (ep->opname != 0) {
-            err |= csound->AppendOpcode(csound,
-                                        ep->opname,
-                                        ep->dsblksiz,
-                                        ep->flags,
-                                        ep->thread,
-                                        ep->outypes,
-                                        ep->intypes,
-                                        (int (*)(CSOUND *, void*)) ep->iopadr,
-                                        (int (*)(CSOUND *, void*)) ep->kopadr,
-                                        (int (*)(CSOUND *, void*)) ep->aopadr);
-            ep++;
+        PUBLIC int csoundModuleInit_signalflowgraph(CSOUND *csound)
+        {
+                if (csound->GetDebug(csound)) {
+                        csound->Message(csound, "signalflowgraph: csoundModuleInit(%p)\n", csound);
+                }
+                OENTRY *ep = (OENTRY *)&(oentries[0]);
+                int  err = 0;
+                while (ep->opname != 0) {
+                        err |= csound->AppendOpcode(csound,
+                                                    ep->opname,
+                                                    ep->dsblksiz,
+                                                    ep->flags,
+                                                    ep->thread,
+                                                    ep->outypes,
+                                                    ep->intypes,
+                                                    (int (*)(CSOUND *, void *)) ep->iopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->kopadr,
+                                                    (int (*)(CSOUND *, void *)) ep->aopadr);
+                        ep++;
+                }
+                return err;
         }
-        return err;
-    }
 #ifndef INIT_STATIC_MODULES
-    PUBLIC int csoundModuleCreate(CSOUND *csound)
-    {
-        return csoundModuleCreate_signalflowgraph(csound);
-    }
-
-    PUBLIC int csoundModuleInit(CSOUND *csound)
-    {
-        return csoundModuleInit_signalflowgraph(csound);
-    }
-
-    PUBLIC int csoundModuleDestroy(CSOUND *csound)
-    {
-        if(csound->GetDebug(csound)) {
-            csound->Message(csound, "signalflowgraph: csoundModuleDestroy(%p)\n", csound);
+        PUBLIC int csoundModuleCreate(CSOUND *csound)
+        {
+                return csoundModuleCreate_signalflowgraph(csound);
         }
-        if (signal_flow_ports_lock != 0) {
-            csound->LockMutex(signal_flow_ports_lock);
-            aoutletsForSourceOutletIds->clear();
-            ainletsForSinkInletIds->clear();
-            aoutletVectors->clear();
-            koutletsForSourceOutletIds->clear();
-            kinletsForSinkInletIds->clear();
-            koutletVectors->clear();
-            foutletsForSourceOutletIds->clear();
-            voutletsForSourceOutletIds->clear();
-            kidoutletsForSourceOutletIds->clear();
-            vinletsForSinkInletIds->clear();
-            kidinletsForSinkInletIds->clear();
-            finletsForSinkInletIds->clear();
-            foutletVectors->clear();
-            voutletVectors->clear();
-            kidoutletVectors->clear();
-            connections->clear();
-            delete aoutletsForSourceOutletIds;
-            delete ainletsForSinkInletIds;
-            delete aoutletVectors;
-            delete koutletsForSourceOutletIds;
-            delete kinletsForSinkInletIds;
-            delete koutletVectors;
-            delete foutletsForSourceOutletIds;
-            delete voutletsForSourceOutletIds;
-            delete kidoutletsForSourceOutletIds;
-            delete vinletsForSinkInletIds;
-            delete kidinletsForSinkInletIds;
-            delete finletsForSinkInletIds;
-            delete foutletVectors;
-            delete voutletVectors;
-            delete kidoutletVectors;
-            delete connections;
-            csound->UnlockMutex(signal_flow_ports_lock);
-            csound->DestroyMutex(signal_flow_ports_lock);
-            signal_flow_ports_lock = 0;
+
+        PUBLIC int csoundModuleInit(CSOUND *csound)
+        {
+                return csoundModuleInit_signalflowgraph(csound);
         }
-        if (signal_flow_ftables_lock != 0) {
-            csound->LockMutex(signal_flow_ftables_lock);
-            functionTablesForEvtblks->clear();
-            delete functionTablesForEvtblks;
-            csound->UnlockMutex(signal_flow_ftables_lock);
-            csound->DestroyMutex(signal_flow_ftables_lock);
-            signal_flow_ftables_lock = 0;
+
+        PUBLIC int csoundModuleDestroy(CSOUND *csound)
+        {
+                if (csound->GetDebug(csound)) {
+                        csound->Message(csound, "signalflowgraph: csoundModuleDestroy(%p)\n", csound);
+                }
+                SignalFlowGraphState *sfg_globals = 0;
+                csound::QueryGlobalPointer(csound, "sfg_globals", sfg_globals);
+        if (sfg_globals != 0) {
+            sfg_globals->clear();
+            if (sfg_globals->signal_flow_ports_lock != 0) {
+                csound->UnlockMutex(sfg_globals->signal_flow_ports_lock);
+                csound->DestroyMutex(sfg_globals->signal_flow_ports_lock);
+            }
+            if (sfg_globals->signal_flow_ftables_lock != 0) {
+                csound->LockMutex(sfg_globals->signal_flow_ftables_lock);
+                sfg_globals->functionTablesForEvtblks.clear();
+                csound->UnlockMutex(sfg_globals->signal_flow_ftables_lock);
+                csound->DestroyMutex(sfg_globals->signal_flow_ftables_lock);
+            }
+            csound::DestroyGlobalPointer(csound, "sfg_globals", sfg_globals);
+                }
+                return 0;
         }
-        return 0;
-    }
 #endif
 }
 
diff --git a/Opcodes/singwave.c b/Opcodes/singwave.c
index 959472d..2b0b57c 100644
--- a/Opcodes/singwave.c
+++ b/Opcodes/singwave.c
@@ -48,8 +48,7 @@ static void VoicForm_setVoicedUnVoiced(VOICF *p, MYFLT vGain, MYFLT nGain);
 static inline void make_SubNoise(SubNoise *p, int subSample)
 {
     p->lastOutput = FL(0.0);
-    p->howOften = subSample-1;
-    p->counter = subSample-1;
+    p->howOften = p->counter = subSample-1;
 }
 
 static MYFLT SubNoise_tick(CSOUND *csound, SubNoise *p)
@@ -80,7 +79,7 @@ static int make_Modulatr(CSOUND *csound,Modulatr *p, MYFLT *i)
 {
     FUNC        *ftp;
 
-    if ((ftp = csound->FTnp2Find(csound,i)) != NULL)
+    if (LIKELY((ftp = csound->FTnp2Find(csound,i)) != NULL))
       p->wave = ftp;
     else { /* Expect sine wave */
       return csound->InitError(csound, Str("No table for Modulatr"));
diff --git a/Opcodes/sndloop.c b/Opcodes/sndloop.c
index 6418796..c7e8ac2 100644
--- a/Opcodes/sndloop.c
+++ b/Opcodes/sndloop.c
@@ -316,7 +316,7 @@ static int flooper_init(CSOUND *csound, flooper *p)
     tab = p->sfunc->ftable,  /* func table pointer */
     len = p->sfunc->flen;    /* function table length */
     nchnls = p->sfunc->nchanls;
-    if(nchnls != p->OUTCOUNT){
+    if (UNLIKELY(nchnls != p->OUTCOUNT)) {
      return
        csound->InitError(csound,
                          Str("function table channel count does not match output"));
@@ -619,7 +619,7 @@ static int flooper2_process(CSOUND *csound, flooper2 *p)
             (loop_end < loop_start ? loop_start : loop_end);
           loopsize = loop_end - loop_start;
           if(*p->crossfade > 0.0)
-           crossfade = (int) (*p->crossfade*sr);
+            crossfade = (int) (*p->crossfade*sr);
           p->cfade = crossfade = crossfade > loopsize ? loopsize : crossfade;
           ndx[0] = ndx[1];
           ndx[1] =  (double)loop_end;
@@ -712,7 +712,7 @@ static int flooper2_process(CSOUND *csound, flooper2 *p)
           frac1 = ndx[1] - tndx1;
           tndx1 *= nchnls;
           out[0] = amp*(tab[tndx1] + frac1*(tab[tndx1+nchnls] - tab[tndx1]));
-         if(onchnls == 2){
+          if(onchnls == 2){
             tndx1 += 1;
             out[1] += amp*(tab[tndx1] + frac1*(tab[tndx1+nchnls] - tab[tndx1]));
           }
@@ -730,7 +730,7 @@ static int flooper2_process(CSOUND *csound, flooper2 *p)
           tndx1 *= nchnls;
           out[0] += amp*fadeout*(tab[tndx1] + frac1*(tab[tndx1+nchnls]
                                                      - tab[tndx1]));
-         if(onchnls == 2){
+          if(onchnls == 2){
             tndx1 += 1;
             out[1] += amp*fadeout*(tab[tndx1] + frac1*(tab[tndx1+nchnls]
                                                         - tab[tndx1]));
diff --git a/Opcodes/sockrecv.c b/Opcodes/sockrecv.c
index d77fb34..5ba5fa1 100644
--- a/Opcodes/sockrecv.c
+++ b/Opcodes/sockrecv.c
@@ -134,6 +134,14 @@ static int deinit_udpRecv_S(CSOUND *csound, void *pdata)
 
     p->threadon = 0;
     csound->JoinThread(p->thrid);
+
+#ifndef WIN32
+    close(p->sock);
+    csound->Message(csound, Str("OSCraw: Closing socket\n"));
+#else
+    closesocket(p->sock);
+    csound->Message(csound, Str("OSCraw: Closing socket\n"));
+#endif
     return OK;
 }
 
@@ -164,19 +172,24 @@ static int init_recv(CSOUND *csound, SOCKRECV *p)
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
-
     p->cs = csound;
     p->sock = socket(AF_INET, SOCK_DGRAM, 0);
 #ifndef WIN32
     if (UNLIKELY(fcntl(p->sock, F_SETFL, O_NONBLOCK)<0))
       return csound->InitError(csound, Str("Cannot set nonblock"));
+#else
+    {
+      u_long argp = 1;
+      err = ioctlsocket(p->sock, FIONBIO, &argp);
+      if (UNLIKELY(err != NO_ERROR))
+        return csound->InitError(csound, Str("Cannot set nonblock"));
+    }
 #endif
     if (UNLIKELY(p->sock < 0)) {
-      return csound->InitError
-        (csound, Str("creating socket"));
+      return csound->InitError(csound, Str("creating socket"));
     }
     /* create server address: where we want to send to and clear it out */
     memset(&p->server_addr, 0, sizeof(p->server_addr));
@@ -221,8 +234,8 @@ static int init_recv_S(CSOUND *csound, SOCKRECVSTR *p)
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
 
     p->cs = csound;
@@ -232,8 +245,7 @@ static int init_recv_S(CSOUND *csound, SOCKRECVSTR *p)
       return csound->InitError(csound, Str("Cannot set nonblock"));
 #endif
     if (UNLIKELY(p->sock < 0)) {
-      return csound->InitError
-        (csound, Str("creating socket"));
+      return csound->InitError(csound, Str("creating socket"));
     }
     /* create server address: where we want to send to and clear it out */
     memset(&p->server_addr, 0, sizeof(p->server_addr));
@@ -275,7 +287,7 @@ static int send_recv_k(CSOUND *csound, SOCKRECV *p)
 {
     MYFLT   *ksig = p->ptr1;
     *ksig = FL(0.0);
-    if(p->outsamps >= p->rcvsamps){
+    if (p->outsamps >= p->rcvsamps){
       p->outsamps =  0;
       p->rcvsamps =
         csound->ReadCircularBuffer(csound, p->cb, p->buf, p->buffsize);
@@ -317,7 +329,7 @@ static int send_recv(CSOUND *csound, SOCKRECV *p)
     if (UNLIKELY(early)) nsmps -= early;
 
     for(i=offset; i < nsmps ; i++){
-      if(outsamps >= rcvsamps){
+      if (outsamps >= rcvsamps){
         outsamps =  0;
         rcvsamps = csound->ReadCircularBuffer(csound, p->cb, buf, p->buffsize);
       }
@@ -338,7 +350,7 @@ static int init_recvS(CSOUND *csound, SOCKRECV *p)
     WSADATA wsaData = {0};
     int err;
     if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
 
     p->cs = csound;
@@ -401,7 +413,7 @@ static int send_recvS(CSOUND *csound, SOCKRECV *p)
 
     if (UNLIKELY(early)) nsmps -= early;
     for(i=offset; i < nsmps ; i++){
-      if(outsamps >= rcvsamps){
+      if (outsamps >= rcvsamps){
         outsamps =  0;
         rcvsamps = csound->ReadCircularBuffer(csound, p->cb, buf, p->buffsize);
       }
@@ -422,7 +434,7 @@ static int init_srecv(CSOUND *csound, SOCKRECVT *p)
     WSADATA wsaData = {0};
     int err;
     if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
     /* create a STREAM (TCP) socket in the INET (IP) protocol */
     p->sock = socket(PF_INET, SOCK_STREAM, 0);
@@ -518,6 +530,19 @@ static inline void tabensure(CSOUND *csound, ARRAYDAT *p, int size)
     }
 }
 
+static int destroy_raw_osc(CSOUND *csound, void *pp) {
+    RAWOSC *p = (RAWOSC *) pp;
+#ifndef WIN32
+    close(p->sock);
+    csound->Message(csound, Str("OSCraw: Closing socket\n"));
+#else
+    closesocket(p->sock);
+    csound->Message(csound, Str("OSCraw: Closing socket\n"));
+#endif
+    return OK;
+}
+
+
 
 static int init_raw_osc(CSOUND *csound, RAWOSC *p)
 {
@@ -526,7 +551,7 @@ static int init_raw_osc(CSOUND *csound, RAWOSC *p)
     WSADATA wsaData = {0};
     int err;
     if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
     p->sock = socket(AF_INET, SOCK_DGRAM, 0);
 #ifndef WIN32
@@ -538,8 +563,7 @@ static int init_raw_osc(CSOUND *csound, RAWOSC *p)
        return csound->InitError(csound, Str("Cannot set nonblock"));
 #endif
     if (UNLIKELY(p->sock < 0)) {
-      return csound->InitError
-        (csound, Str("creating socket"));
+      return csound->InitError(csound, Str("creating socket"));
     }
     /* create server address: where we want to send to and clear it out */
     memset(&p->server_addr, 0, sizeof(p->server_addr));
@@ -559,7 +583,9 @@ static int init_raw_osc(CSOUND *csound, RAWOSC *p)
       memset(buf, 0, MTU);
     }
 
-  tabensure(csound, p->sout,2);
+    csound->RegisterDeinitCallback(csound, (void *) p, destroy_raw_osc);
+    tabensure(csound, p->sout,2);
+
   return OK;
 }
 
@@ -572,7 +598,7 @@ static inline char le_test(){
 }
 
 static inline char *byteswap(char *p, int N){
-    if(le_test()) {
+    if (le_test()) {
       char tmp;
       int j ;
       for(j = 0; j < N/2; j++) {
@@ -587,7 +613,7 @@ static inline char *byteswap(char *p, int N){
 static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
 
     ARRAYDAT *sout = p->sout;
-    if(sout->sizes[0] < 2 ||
+    if (sout->sizes[0] < 2 ||
        sout->dimensions > 1)
       return
         csound->PerfError(csound, p->h.insdshead, Str("output array too small\n"));
@@ -598,18 +624,18 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
     char c;
     memset(buf, 0, p->buffer.size);
     uint32_t size = 0;
-    char *types;
+    char *types  = NULL;
     struct sockaddr from;
     socklen_t clilen = sizeof(from);
     int bytes =
       recvfrom(p->sock, (void *)buf, MTU-1, 0, &from, &clilen);
-    if(bytes < 0) bytes = 0;
+    if (bytes < 0) bytes = 0;
 
     // terminating string to satisfy coverity
     buf[p->buffer.size-1] = '\0';
 
-    if(bytes) {
-      if(strncmp(buf,"#bundle",7) == 0) { // bundle
+    if (bytes) {
+      if (strncmp(buf,"#bundle",7) == 0) { // bundle
         buf += 8;
         buf += 8;
         size = *((uint32_t *) buf);
@@ -618,11 +644,11 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
       } else size = bytes;
       while(size > 0 && size < MTU)  {
         /* get address & types */
-        if(n < sout->sizes[0]) {
+        if (n < sout->sizes[0]) {
           len = strlen(buf);
           // printf("len %d size %d incr %d\n",
           //        len, str[n].size, ((size_t) ceil((len+1)/4.)*4));
-          if(len >= str[n].size) {
+          if (len >= str[n].size) {
             str[n].data = csound->ReAlloc(csound, str[n].data, len+1);
             memset(str[n].data,0,len+1);
             str[n].size  = len+1;
@@ -634,7 +660,7 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
         }
         if (n < sout->sizes[0]) {
           len = strlen(buf);
-          if(len >= str[n].size) {
+          if (len >= str[n].size) {
             str[n].data = csound->ReAlloc(csound, str[n].data, len+1);
             str[n].size  = len+1;
           }
@@ -647,10 +673,10 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
         j = 1;
         // parse data
         while((c = types[j++]) != '\0' && n < sout->sizes[0]){
-          if(c == 'f') {
+          if (c == 'f') {
             float f = *((float *) buf);
             byteswap((char*)&f,4);
-            if(str[n].size < 32) {
+            if (str[n].size < 32) {
               str[n].data = csound->ReAlloc(csound, str[n].data, 32);
               str[n].size  = 32;
             }
@@ -659,7 +685,7 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
           } else if (c == 'i') {
             int d = *((int32_t *) buf);
             byteswap((char*) &d,4);
-            if(str[n].size < 32) {
+            if (str[n].size < 32) {
               str[n].data = csound->ReAlloc(csound, str[n].data, 32);
               str[n].size  = 32;
             }
@@ -667,7 +693,7 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
             buf += 4;
           } else if (c == 's') {
             len = strlen(buf);
-            if(len > str[n].size) {
+            if (len > str[n].size) {
               str[n].data = csound->ReAlloc(csound, str[n].data, len+1);
               str[n].size  = len+1;
             }
@@ -679,7 +705,7 @@ static int perf_raw_osc(CSOUND *csound, RAWOSC *p) {
             len = *((uint32_t *) buf);
             byteswap((char*)&len,4);
             len = ceil((len)/4.)*4;
-            if(len > str[n].size) {
+            if (len > str[n].size) {
               str[n].data = csound->ReAlloc(csound, str[n].data, len+1);
               str[n].size  = len+1;
             }
diff --git a/Opcodes/socksend.c b/Opcodes/socksend.c
index a622230..49e2337 100644
--- a/Opcodes/socksend.c
+++ b/Opcodes/socksend.c
@@ -86,8 +86,8 @@ static int init_send(CSOUND *csound, SOCKSEND *p)
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
     p->ff = (int)(*p->format);
     p->bsize = bsize = (int) *p->buffersize;
@@ -211,7 +211,7 @@ static int send_send_Str(CSOUND *csound, SOCKSENDT *p)
     char    *q = p->str->data;
     int     len = p->str->size;
 
-    if (len>=buffersize) {
+    if (UNLIKELY(len>=buffersize)) {
       csound->Warning(csound, Str("string truncated in socksend"));
       len = buffersize-1;
     }
@@ -235,8 +235,8 @@ static int init_sendS(CSOUND *csound, SOCKSENDS *p)
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
 
     p->ff = (int)(*p->format);
@@ -334,8 +334,8 @@ static int init_ssend(CSOUND *csound, SOCKSEND *p)
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
 
     /* create a STREAM (TCP) socket in the INET (IP) protocol */
@@ -365,8 +365,8 @@ static int init_ssend(CSOUND *csound, SOCKSEND *p)
     p->server_addr.sin_port = htons((int) *p->port);
 
  again:
-    if (connect(p->sock, (struct sockaddr *) &p->server_addr,
-                sizeof(p->server_addr)) < 0) {
+    if (UNLIKELY(connect(p->sock, (struct sockaddr *) &p->server_addr,
+                         sizeof(p->server_addr)) < 0)) {
 #ifdef ECONNREFUSED
       if (errno == ECONNREFUSED)
         goto again;
@@ -383,7 +383,7 @@ static int send_ssend(CSOUND *csound, SOCKSEND *p)
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     int32_t n = sizeof(MYFLT) * (CS_KSMPS-offset-early);
 
-    if (n != write(p->sock, &p->asig[offset], n)) {
+    if (UNLIKELY(n != write(p->sock, &p->asig[offset], n))) {
       csound->Message(csound, Str("Expected %d got %d\n"),
                       (int) (sizeof(MYFLT) * CS_KSMPS), n);
       return csound->PerfError(csound, p->h.insdshead,
@@ -413,16 +413,17 @@ typedef struct {
 static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
 {
     unsigned int     bsize;
-    if(p->INOCOUNT < (unsigned int) p->type->size + 4)
-      return csound->InitError(csound,
-                               Str("insufficient number of arguments for "
-                                   "OSC message types\n"));
+
+    if (UNLIKELY(p->INOCOUNT > 4 && p->INOCOUNT < (unsigned int) p->type->size + 4))
+       return csound->InitError(csound,
+                             Str("insufficient number of arguments for "
+                                 "OSC message types\n"));
 
 #if defined(WIN32) && !defined(__CYGWIN__)
     WSADATA wsaData = {0};
     int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      return csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
 #endif
     p->sock = socket(AF_INET, SOCK_DGRAM, 0);
     if (UNLIKELY(p->sock < 0)) {
@@ -440,7 +441,8 @@ static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
 #endif
     p->server_addr.sin_port = htons((int) *p->port);    /* the port */
 
-    if (p->types.auxp == NULL || strlen(p->type->data) > p->types.size)
+    if(p->INCOUNT > 4) {
+              if (p->types.auxp == NULL || strlen(p->type->data) > p->types.size)
       /* allocate space for the types buffer */
       csound->AuxAlloc(csound, strlen(p->type->data), &p->types);
     memcpy(p->types.auxp, p->type->data, strlen(p->type->data));
@@ -455,7 +457,7 @@ static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
     for(i=0; i < p->type->size-1; i++) {
       switch(p->type->data[i]){
       case 't':
-        if(p->INOCOUNT < (unsigned int) p->type->size + 5)
+        if (UNLIKELY(p->INOCOUNT < (unsigned int) p->type->size + 5))
           return csound->InitError(csound, "extra argument needed for type t\n");
         bsize += 8;
         iarg+=2;
@@ -468,7 +470,7 @@ static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
         iarg++;
         break;
       case 's':
-        if(!IS_STR_ARG(p->arg[i]))
+        if (UNLIKELY(!IS_STR_ARG(p->arg[i])))
           return csound->InitError(csound, Str("expecting a string argument\n"));
         s = (STRINGDAT *)p->arg[i];
         bsize += strlen(s->data) + 64;
@@ -477,6 +479,7 @@ static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
       case 'l':
       case 'h': /* OSC-accepted type name for 64bit int */
         p->type->data[i] = 'h';
+        /* fall through */
       case 'd':
         bsize += 8;
         iarg++;
@@ -516,6 +519,18 @@ static int osc_send2_init(CSOUND *csound, OSCSEND2 *p)
       memset(p->aux.auxp, 0, bsize);
     }
     p->iargs = iarg;
+    } else {
+      bsize = strlen(p->dest->data)+1;
+      bsize = ceil(bsize/4.)*4;;
+    if (p->aux.auxp == NULL || bsize > p->aux.size)
+      /* allocate space for the buffer */
+      csound->AuxAlloc(csound, bsize, &p->aux);
+    else {
+      memset(p->aux.auxp, 0, bsize);
+    }
+
+    }
+
     p->last = FL(0.0);
     return OK;
 }
@@ -563,6 +578,7 @@ static int osc_send2(CSOUND *csound, OSCSEND2 *p)
       memcpy(out,p->dest->data,size);
       size = ceil(size/4.)*4;
       buffersize += size;
+      if(p->INCOUNT > 4) {
       /* package type in a 4-byte zero-padded block;
          add a comma to the beginning of the type string.
       */
@@ -752,6 +768,7 @@ static int osc_send2(CSOUND *csound, OSCSEND2 *p)
           break;
         }
       }
+      }
       if (UNLIKELY(sendto(p->sock, (void*)out, buffersize, 0, to,
                           sizeof(p->server_addr)) < 0)) {
         return csound->PerfError(csound, p->h.insdshead, Str("OSCsend2 failed"));
@@ -778,7 +795,7 @@ static OENTRY socksend_localops[] = {
     (SUBR) send_sendS },
   { "stsend", S(SOCKSEND), 0, 5, "", "aSi", (SUBR) init_ssend, NULL,
     (SUBR) send_ssend },
-  { "OSCsend", S(OSCSEND2), 0, 3, "", "kSkSS*", (SUBR)osc_send2_init,
+  { "OSCsend", S(OSCSEND2), 0, 3, "", "kSk*", (SUBR)osc_send2_init,
     (SUBR)osc_send2 }
 };
 
diff --git a/Opcodes/space.c b/Opcodes/space.c
index 92200dc..8194716 100644
--- a/Opcodes/space.c
+++ b/Opcodes/space.c
@@ -77,6 +77,7 @@ static int space(CSOUND *csound, SPACE *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
+    MYFLT revb = *p->reverbamount;
 
     if (*p->ifn > 0) { /* get xy vals from function table */
       if (UNLIKELY((ftp = p->ftp) == NULL)) goto err1;
@@ -125,11 +126,10 @@ static int space(CSOUND *csound, SPACE *p)
       }
     }
 
-    if (distance < FL(1.0)) distance = FL(1.0);
+    if (UNLIKELY(distance < FL(1.0))) distance = FL(1.0);
 
     distr=(FL(1.0) / distance);
     distrsq = FL(1.0)/SQRT(distance);
-
     xndx = (xndx+FL(1.0))*FL(0.5);
     yndx = (yndx+FL(1.0))*FL(0.5);
 
@@ -162,7 +162,7 @@ static int space(CSOUND *csound, SPACE *p)
     }
     for (n=offset; n<nsmps; n++) {
       direct = sigp[n] * distr;
-      torev = sigp[n] * distrsq * *p->reverbamount;
+      torev = sigp[n] * distrsq * revb;
       globalrev = torev * distr;
       localrev = torev * (FL(1.0) - distr);
       r1[n] = direct * ch1;
diff --git a/Opcodes/spectra.c b/Opcodes/spectra.c
index f8dcee6..9ca69e2 100644
--- a/Opcodes/spectra.c
+++ b/Opcodes/spectra.c
@@ -30,7 +30,6 @@
 #include "pitch.h"
 #include "uggab.h"
 
-#define FZERO   (FL(0.0))
 #define LOGTWO  (0.69314718056)
 
 void DOWNset(CSOUND *p, DOWNDAT *downdp, int32 npts)
@@ -72,7 +71,7 @@ int spectset(CSOUND *csound, SPECTRUM *p)
     Q = *p->iq;
     hanning = (*p->ihann) ? 1 : 0;
     p->dbout = (int)*p->idbout;
-    if ((p->disprd = (int)(CS_EKR * *p->idisprd)) < 0)
+    if (UNLIKELY((p->disprd = (int)(CS_EKR * *p->idisprd)) < 0))
       p->disprd = 0;
 
     if (UNLIKELY(p->timcount <= 0))
@@ -188,7 +187,7 @@ int spectset(CSOUND *csound, SPECTRUM *p)
         octp->endp = fltp;  minr *= 2;
       }
       csound->Warning(csound, Str("\t%d oct analysis window "
-                                  "delay = %ld samples (%d msecs)\n"),
+                                  "delay = %d samples (%d msecs)\n"),
                               nocts, bufsiz, (int)(bufsiz*1000/dwnp->srate));
       if (p->disprd) {                      /* if display requested, */
         totsize = totsamps * sizeof(MYFLT); /*  alloc an equiv local */
diff --git a/Opcodes/squinewave.c b/Opcodes/squinewave.c
new file mode 100644
index 0000000..681f7ad
--- /dev/null
+++ b/Opcodes/squinewave.c
@@ -0,0 +1,391 @@
+/* SQUINEWAVE.C: Sine-Square-Pulse-Saw oscillator
+* by rasmus ekman 2017, for Csound.
+* This code is released under the Csound license,
+* GNU Lesser General Public License version 2.1.
+*/
+/*
+    Copyright (C) 2017 rasmus ekman 2017
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
+#include <math.h>
+
+#include "csoundCore.h"
+
+
+/* ================================================================== */
+
+typedef struct {
+    OPDS h;
+    MYFLT *aout, *async_out, *acps, *aclip, *askew, *async_in, *iminsweep, *iphase;
+
+    // phase and warped_phase range 0-2.
+    //This makes skew/clip into simple proportions
+    double phase;
+    double warped_phase;
+    double hardsync_phase;
+    double hardsync_inc;
+
+    // Const inited from environment
+    double Min_Sweep;
+    double Maxphase_By_sr;
+    double Max_Warp_Freq;
+
+    MYFLT *sync_sig;        // holds async_in if a-rate
+    int32_t init_phase;
+} SQUINEWAVE;
+
+/* ================================================================== */
+
+static inline int32_t find_sync(const MYFLT* sync_sig, const uint32_t first,
+                                const uint32_t last)
+{
+    uint32_t i;
+    if (sync_sig == 0)
+        return -1;
+
+    for (i = first; i < last; ++i) {
+        if (sync_sig[i] >= (MYFLT)1)
+            return i;
+    }
+    return -1;
+}
+
+/* ================================================================== */
+
+static void hardsync_init(SQUINEWAVE *p, const double freq,
+                          const double warped_phase)
+{
+    if (p->hardsync_phase)
+        return;
+
+    // If we're in last flat part, we're just done now
+    if (warped_phase == 2.0) {
+        p->phase = 2.0;
+        return;
+    }
+
+    if (freq > p->Max_Warp_Freq)
+        return;
+
+    p->hardsync_inc = (PI / p->Min_Sweep);
+    p->hardsync_phase = p->hardsync_inc * 0.5;
+}
+
+
+/* ================================================================== */
+
+static inline MYFLT Clamp(const MYFLT x, const MYFLT minval, const MYFLT maxval) {
+    return (x < minval) ? minval : (x > maxval) ? maxval : x;
+}
+
+
+/* ================================================================== */
+
+int squinewave_init(CSOUND* csound, SQUINEWAVE *p)
+{
+    const double sr = csound->GetSr(csound);
+
+    // Skip setting phase only if we have been inited at least once
+    p->init_phase = (*p->iphase < 0 && p->Min_Sweep > 1.0) ? 0 : 1;
+    p->Min_Sweep = *p->iminsweep;
+
+    // Allow range 4-sr/100
+    if (p->Min_Sweep < 4.0 || p->Min_Sweep > sr * 0.01) {
+      const int32_t minsweep_default = (int32_t)Clamp(sr / 3000.0, 8.0, sr * 0.01);
+      if (p->Min_Sweep != 0.0) {
+        csound->Warning(csound,
+                        Str("squinewave iminsweep range 4 to sr/100. "
+                            "Set to default %d"), minsweep_default);
+      }
+      p->Min_Sweep = minsweep_default;
+    }
+
+    p->Maxphase_By_sr = 2.0 / sr;
+    p->Max_Warp_Freq = sr / (2.0 * p->Min_Sweep);
+
+    p->sync_sig = IS_ASIG_ARG(p->async_in) ? p->async_in : 0;
+
+    return OK;
+}
+
+
+/* ================================================================== */
+
+int squinewave_gen(CSOUND* csound, SQUINEWAVE *p)
+{
+    const uint32_t nsmps = CS_KSMPS;
+    uint32_t n;
+
+    // Clear parts of output outside event
+    const uint32_t ksmps_offset = p->h.insdshead->ksmps_offset;
+    const uint32_t ksmps_end = nsmps - p->h.insdshead->ksmps_no_end;
+    if (UNLIKELY(ksmps_offset)) memset(p->aout, 0, ksmps_offset * sizeof(MYFLT));
+    if (UNLIKELY(ksmps_end < nsmps)) {
+      memset(&p->aout[ksmps_end], 0, p->h.insdshead->ksmps_no_end * sizeof(MYFLT));
+    }
+
+    const double Maxphase_By_sr = p->Maxphase_By_sr;
+    const double Max_Warp_Freq = p->Max_Warp_Freq;
+    const double Max_Warp = 1.0 / p->Min_Sweep;
+    const double Min_Sweep = p->Min_Sweep;
+
+    MYFLT *aout = &p->aout[0];
+    const MYFLT * const freq_sig = p->acps;
+    const MYFLT * const clip_sig = p->aclip;
+    const MYFLT * const skew_sig = p->askew;
+
+    double phase = p->phase;
+    double warped_phase = p->warped_phase;
+
+    double hardsync_phase = p->hardsync_phase;
+    double hardsync_inc = p->hardsync_inc;
+    int32_t sync = find_sync(p->sync_sig, ksmps_offset, ksmps_end);
+
+    // Set main phase so it matches warp
+    if (p->init_phase) {
+      const double freq = fmax(freq_sig[0], 0.0);
+      const double phase_inc = Maxphase_By_sr * freq;
+      const double min_sweep = phase_inc * Min_Sweep;
+      const double skew = 1.0 - Clamp(skew_sig[0], -1.0, 1.0);
+      const double clip = 1.0 - Clamp(clip_sig[0], 0.0, 1.0);
+      const double midpoint = Clamp(skew, min_sweep, 2.0 - min_sweep);
+
+      // Init phase range 0-2, has 4 segment parts (sweep down,
+      // flat -1, sweep up, flat +1)
+      warped_phase = *p->iphase;
+      if (warped_phase < 0.0) {
+        // "up" 0-crossing
+        warped_phase = 1.25;
+      }
+      if (warped_phase > 2.0)
+        warped_phase = fmod(warped_phase, 2.0);
+
+      // Select segment and scale within
+      if (warped_phase < 1.0) {
+        const double sweep_length = fmax(clip * midpoint, min_sweep);
+        if (warped_phase < 0.5) {
+          phase = sweep_length * (warped_phase * 2.0);
+          warped_phase *= 2.0;
+        }
+        else {
+          const double flat_length = midpoint - sweep_length;
+          phase = sweep_length + flat_length * ((warped_phase - 0.5) * 2.0);
+          warped_phase = 1.0;
+        }
+      }
+      else {
+        const double sweep_length = fmax(clip * (2.0 - midpoint), min_sweep);
+        if (warped_phase < 1.5) {
+          phase = midpoint + sweep_length * ((warped_phase - 1.0) * 2.0);
+          warped_phase = 1.0 + (warped_phase - 1.0) * 2.0;
+        }
+        else {
+          const double flat_length = 2.0 - (midpoint + sweep_length);
+          phase = midpoint + sweep_length +
+            flat_length * ((warped_phase - 1.5) * 2.0);
+          warped_phase = 2.0;
+        }
+      }
+
+      p->init_phase = 0;
+    }
+
+    if (p->async_out)
+      memset(p->async_out, 0, nsmps * sizeof(MYFLT));
+
+
+    for (n = ksmps_offset; n < ksmps_end; ++n)
+    {
+      double freq = fmax(freq_sig[n], 0.0);
+
+      if (sync == (int32_t)n) {
+        p->phase = phase;
+        p->hardsync_phase = hardsync_phase;
+        p->hardsync_inc = hardsync_inc;
+        hardsync_init(p, freq, warped_phase);
+        phase = p->phase;
+        hardsync_phase = p->hardsync_phase;
+        hardsync_inc = p->hardsync_inc;
+      }
+
+      if (hardsync_phase) {
+        const double syncsweep = 0.5 * (1.0 - cos(hardsync_phase));
+        freq += syncsweep * ((2.0 * Max_Warp_Freq) - freq);
+        hardsync_phase += hardsync_inc;
+        if (hardsync_phase > PI) {
+          hardsync_phase = PI;
+          hardsync_inc = 0.0;
+        }
+      }
+
+      const double phase_inc = Maxphase_By_sr * freq;
+
+      // Pure sine if freq > sr/(2*Min_Sweep)
+      if (freq >= Max_Warp_Freq)
+        {
+          // Continue from warped
+          *aout++ = cos(PI * warped_phase);
+          phase = warped_phase;
+          warped_phase += phase_inc;
+        }
+      else
+        {
+          const double min_sweep = phase_inc * Min_Sweep;
+          const double skew = 1.0 - Clamp(skew_sig[n], -1.0, 1.0);
+          const double clip = 1.0 - Clamp(clip_sig[n], 0.0, 1.0);
+          const double midpoint = Clamp(skew, min_sweep, 2.0 - min_sweep);
+
+          // 1st half: Sweep down to cos(warped_phase <= Pi) then
+          // flat -1 until phase >= midpoint
+          if (warped_phase < 1.0 || (warped_phase == 1.0 && phase < midpoint))
+            {
+              if (warped_phase < 1.0) {
+                const double sweep_length = fmax(clip * midpoint, min_sweep);
+
+                *aout++ = cos(PI * warped_phase);
+                warped_phase += fmin(phase_inc / sweep_length, Max_Warp);
+
+                // Handle fractional warped_phase overshoot after sweep ends
+                if (warped_phase > 1.0) {
+                  /* Tricky here: phase and warped may disagree where
+                   * we are in waveform (due to FM + skew/clip
+                   * changes).  Warped dominates to keep waveform
+                   * stable, waveform (flat part) decides where we
+                   * are.
+                   */
+                  const double flat_length = midpoint - sweep_length;
+                  // warp overshoot scaled to main phase rate
+                  const double phase_overshoot =
+                    (warped_phase - 1.0) * sweep_length;
+
+                  // phase matches shape
+                  phase = midpoint - flat_length + phase_overshoot - phase_inc;
+
+                  // Flat if next samp still not at midpoint
+                  if (flat_length >= phase_overshoot) {
+                    warped_phase = 1.0;
+                    // phase may be > midpoint here (which means
+                    // actually no flat part), if so it will be
+                    // corrected in 2nd half (since warped == 1.0)
+                  }
+                  else {
+                    const double next_sweep_length =
+                      fmax(clip * (2.0 - midpoint), min_sweep);
+                    warped_phase =
+                      1.0 + (phase_overshoot - flat_length) / next_sweep_length;
+                  }
+                }
+              }
+              else {
+                // flat up to midpoint
+                *aout++ = -1.0;
+                warped_phase = 1.0;
+              }
+            }
+            // 2nd half: Sweep up to cos(warped_phase <= 2.Pi) then
+            // flat +1 until phase >= 2
+            else {
+              if (warped_phase < 2.0) {
+                const double sweep_length =
+                  fmax(clip * (2.0 - midpoint), min_sweep);
+                if (warped_phase == 1.0) {
+                  // warped_phase overshoot after flat part
+                  warped_phase = 1.0 + fmin( fmin(phase - midpoint, phase_inc) /
+                                             sweep_length, Max_Warp);
+                }
+                *aout++ = cos(PI * warped_phase);
+                warped_phase += fmin(phase_inc / sweep_length, Max_Warp);
+                if (warped_phase > 2.0) {
+                  const double flat_length = 2.0 - (midpoint + sweep_length);
+                  const double phase_overshoot =
+                    (warped_phase - 2.0) * sweep_length;
+
+                  phase = 2.0 - flat_length + phase_overshoot - phase_inc;
+
+                  if (flat_length >= phase_overshoot) {
+                    warped_phase = 2.0;
+                  }
+                  else {
+                    const double next_sweep_length =
+                      fmax(clip * midpoint, min_sweep);
+                    warped_phase =
+                      2.0 + (phase_overshoot - flat_length) / next_sweep_length;
+                  }
+                }
+              }
+              else {
+                *aout++ = 1.0;
+                warped_phase = 2.0;
+              }
+            }
+        }
+
+      phase += phase_inc;
+      if (warped_phase >= 2.0 && phase >= 2.0)
+        {
+            if (hardsync_phase) {
+              warped_phase = phase = 0.0;
+              hardsync_phase = hardsync_inc = 0.0;
+
+              sync = find_sync(p->sync_sig, n + 1, ksmps_end);
+            }
+            else {
+              phase -= 2.0;
+              if (phase > phase_inc) {
+                // wild aliasing freq - just reset
+                phase = phase_inc * 0.5;
+              }
+              if (freq < Max_Warp_Freq) {
+                const double min_sweep = phase_inc * Min_Sweep;
+                const double skew = 1.0 - Clamp(skew_sig[n], -1.0, 1.0);
+                const double clip = 1.0 - Clamp(clip_sig[n], 0.0, 1.0);
+                const double midpoint = Clamp(skew, min_sweep, 2.0 - min_sweep);
+                const double next_sweep_length = fmax(clip * midpoint, min_sweep);
+                warped_phase = fmin(phase / next_sweep_length, Max_Warp);
+              }
+              else
+                warped_phase = phase;
+            }
+
+            if (p->async_out)
+              p->async_out[n] = 1.0;
+        }
+    }
+
+    p->phase = phase;
+    p->warped_phase = warped_phase;
+    p->hardsync_phase = hardsync_phase;
+    p->hardsync_inc = hardsync_inc;
+    return OK;
+}
+
+
+
+/* ================================================================== */
+
+
+/* ar[, aSyncOut] squinewave   aFreq, aClip, aSkew [, aSyncIn, aMinSweep, iphase] */
+
+static OENTRY squinewave_localops[] = {
+    { "squinewave", sizeof(SQUINEWAVE), 0, 5, "am", "aaaxoj",
+      (SUBR)squinewave_init, NULL, (SUBR)squinewave_gen },
+};
+
+LINKAGE_BUILTIN(squinewave_localops)
diff --git a/Opcodes/stackops.c b/Opcodes/stackops.c
index c9e200e..8a30020 100644
--- a/Opcodes/stackops.c
+++ b/Opcodes/stackops.c
@@ -27,19 +27,19 @@
 
 static int STR_ARG_P(CSOUND *csound, void* arg) {
     CS_TYPE *cs_type = csound->GetTypeForArg(arg);
-    if(strcmp("S", cs_type->varTypeName) == 0) {
-        return 1;
+    if (strcmp("S", cs_type->varTypeName) == 0) {
+      return 1;
     } else {
-        return 0;
+      return 0;
     }
 }
 
 static int ASIG_ARG_P(CSOUND *csound, void* arg) {
     CS_TYPE *cs_type = csound->GetTypeForArg(arg);
-    if(strcmp("a", cs_type->varTypeName) == 0) {
-        return 1;
+    if (strcmp("a", cs_type->varTypeName) == 0) {
+      return 1;
     } else {
-        return 0;
+      return 0;
     }
 }
 
diff --git a/Opcodes/stk/CMakeLists.txt b/Opcodes/stk/CMakeLists.txt
index 6fe0a36..49a8d2f 100644
--- a/Opcodes/stk/CMakeLists.txt
+++ b/Opcodes/stk/CMakeLists.txt
@@ -3,7 +3,10 @@ option(BUILD_STK_OPCODES "Build the stk opcodes" ON)
 if(WIN32)
     cmake_policy(SET CMP0060 NEW)
 endif()
-find_package(STK)
+
+if(NOT STK_LOCAL)
+    find_package(STK)
+endif()
 
 if(BUILD_STK_OPCODES)
     if(DEFAULT_STK_RAWWAVE_PATH)
@@ -16,9 +19,9 @@ if(BUILD_STK_OPCODES)
             /usr/local/include/stk)
         check_deps(BUILD_STK_OPCODES STK_INCLUDE_DIR)
         if(STK_INCLUDE_DIR)
-            include_directories(${STK_INCLUDE_DIR})
-            message(STATUS "Building STK opcodes.")
             make_plugin(stkops stkOpcodes.cpp)
+            target_include_directories(stkops PRIVATE ${STK_INCLUDE_DIR})
+            message(STATUS "Building STK opcodes.")
             if(BUILD_STATIC_LIBRARY)
                 if(WIN32)
                     add_library(stk STATIC IMPORTED)
@@ -31,13 +34,13 @@ if(BUILD_STK_OPCODES)
               target_link_libraries(stkops ${STK_LIBRARIES})
               target_link_libraries(stkops ${PTHREAD_LIBRARY})
             endif()
-            add_compiler_flags(${rawwave_path} TARGETS stkops)
+            target_compile_definitions(stkops PRIVATE ${rawwave_path})
         endif()
     else()
         set(stk_remove_srcs
             src/InetWvIn.cpp    src/InetWvOut.cpp
             src/Mutex.cpp       src/RtAudio.cpp
-            src/RtMidi.cpp
+            src/RtMidi.cpp      src/Messager.cpp
             src/RtWvIn.cpp      src/RtWvOut.cpp
             src/Socket.cpp      src/TcpClient.cpp
             src/TcpServer.cpp   src/Thread.cpp
@@ -52,10 +55,10 @@ if(BUILD_STK_OPCODES)
         find_path(STK_INCLUDE_DIR Stk.h ./include)
         check_deps(BUILD_STK_OPCODES STK_FOUND STK_INCLUDE_DIR)
         if(BUILD_STK_OPCODES)
-            include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
-            include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/stk)
-            include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
             make_plugin(stkops "${stk_srcs}")
+            target_include_directories(stkops PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
+            target_include_directories(stkops PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/stk)
+            target_include_directories(stkops PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
             set(stkdefs "-D__STK_REALTIME__")
             if(APPLE)
                 list(APPEND stkdefs "-D__OS_MACOSX__")
@@ -71,8 +74,8 @@ if(BUILD_STK_OPCODES)
             else()
                 list(APPEND stkdefs "-D__LITTLE_ENDIAN__")
             endif()
-            add_compiler_flags(${stkdefs} TARGETS stkops)
-            add_compiler_flags(${rawwave_path} TARGETS stkops)
+            target_compile_definitions(stkops PRIVATE ${stkdefs})
+            target_compile_definitions(stkops PRIVATE ${rawwave_path})
         endif()
     endif()
 endif()
diff --git a/Opcodes/stk/stkOpcodes.cpp b/Opcodes/stk/stkOpcodes.cpp
index c1fbb41..475d7d7 100644
--- a/Opcodes/stk/stkOpcodes.cpp
+++ b/Opcodes/stk/stkOpcodes.cpp
@@ -738,15 +738,16 @@ extern "C"
   {
       const char* path = csound->GetEnv(csound, "RAWWAVE_PATH");
 #ifdef DEFAULT_RAWWAVE_PATH
-    if(!path)
+    if (!path)
         path = DEFAULT_RAWWAVE_PATH;
 #endif
-    if(path == NULL)
+    if (path == NULL)
       {
-        csound->Warning(csound,
-                        Str("STK opcodes not available: define environment "
-                            "variable RAWWAVE_PATH\n"
-                             "(points to rawwaves directory) to use STK opcodes."));
+        if (UNLIKELY(csound->GetDebug(csound)))
+          csound->Warning(csound,
+                          Str("STK opcodes not available: define environment "
+                              "variable RAWWAVE_PATH\n(points "
+                              "to rawwaves directory) to use STK opcodes."));
         return 0;
       }
     else
diff --git a/Opcodes/tabsum.c b/Opcodes/tabsum.c
index 6c2143c..1133d78 100644
--- a/Opcodes/tabsum.c
+++ b/Opcodes/tabsum.c
@@ -51,7 +51,7 @@ static int tabsum(CSOUND *csound, TABSUM *p)
     FUNC  *ftp = p->ftp;
     MYFLT *t;
 
-    if (ftp==NULL)
+    if (UNLIKELY(ftp==NULL))
       return csound->PerfError(csound, p->h.insdshead,
                                Str("tabsum: Not initialised"));
     t = p->ftp->ftable;
diff --git a/Opcodes/ugens7.c b/Opcodes/ugens7.c
index a2a3de5..bf0e0bc 100644
--- a/Opcodes/ugens7.c
+++ b/Opcodes/ugens7.c
@@ -33,8 +33,8 @@ static   int    newpulse(CSOUND *, FOFS *, OVRLAP *, MYFLT *, MYFLT *, MYFLT *);
 static int fofset0(CSOUND *csound, FOFS *p, int flag)
 {
     int skip = (*p->iskip != FL(0.0) && p->auxch.auxp != 0);
-    if ((p->ftp1 = csound->FTFind(csound, p->ifna)) != NULL &&
-        (p->ftp2 = csound->FTFind(csound, p->ifnb)) != NULL) {
+    if (LIKELY((p->ftp1 = csound->FTFind(csound, p->ifna)) != NULL &&
+               (p->ftp2 = csound->FTFind(csound, p->ifnb)) != NULL)) {
       OVRLAP *ovp, *nxtovp;
       int32  olaps;
       p->durtogo = (int32)(*p->itotdur * CS_ESR);
diff --git a/Opcodes/ugens8.c b/Opcodes/ugens8.c
index 382cae8..6c70bbe 100644
--- a/Opcodes/ugens8.c
+++ b/Opcodes/ugens8.c
@@ -169,7 +169,7 @@ int pvoc(CSOUND *csound, PVOC *p)
     if (UNLIKELY((frIndx = *p->ktimpnt * p->frPrtim) < 0)) goto err4;
     if (frIndx > p->maxFr) {  /* not past last one */
       frIndx = (MYFLT)p->maxFr;
-      if (p->prFlg) {
+      if (UNLIKELY(p->prFlg)) {
         p->prFlg = 0;   /* false */
         csound->Warning(csound, Str("PVOC ktimpnt truncated to last frame"));
       }
@@ -201,7 +201,7 @@ int pvoc(CSOUND *csound, PVOC *p)
     addToCircBuf(buf2, p->outBuf, p->opBpos, nsmps, circBufSize);
     writeClrFromCircBuf(p->outBuf, ar, p->opBpos, nsmps, circBufSize);
     p->opBpos += nsmps;
-    if (p->opBpos > circBufSize)
+    if (UNLIKELY(p->opBpos > circBufSize))
       p->opBpos -= circBufSize;
     addToCircBuf(buf2 + nsmps, p->outBuf,
                  p->opBpos, buf2Size - nsmps, circBufSize);
diff --git a/Opcodes/ugens9.c b/Opcodes/ugens9.c
index 01cb63a..5b95912 100644
--- a/Opcodes/ugens9.c
+++ b/Opcodes/ugens9.c
@@ -60,7 +60,7 @@ static int cvset_(CSOUND *csound, CONVOLVE *p, int stringname)
     cvh = (CVSTRUCT *)mfp->beginp;
     if (UNLIKELY(cvh->magic != CVMAGIC)) {
       return csound->InitError(csound,
-                               Str("%s not a CONVOLVE file (magic %ld)"),
+                               Str("%s not a CONVOLVE file (magic %d)"),
                                cvfilnam, cvh->magic);
     }
 
@@ -107,7 +107,7 @@ static int cvset_(CSOUND *csound, CONVOLVE *p, int stringname)
     if (UNLIKELY(cvh->dataFormat != CVMYFLT)) {
       return csound->InitError(csound,
                                Str("unsupported CONVOLVE data "
-                                   "format %ld in %s"),
+                                   "format %d in %s"),
                                cvh->dataFormat, cvfilnam);
     }
 
@@ -211,8 +211,8 @@ static int convolve(CSOUND *csound, CONVOLVE *p)
     ar[2] = p->ar3;
     ar[3] = p->ar4;
 
-    if (p->auxch.auxp==NULL) goto err1;
-  /* First dump as much pre-existing audio in output buffer as possible */
+    if (UNLIKELY(p->auxch.auxp==NULL)) goto err1;
+    /* First dump as much pre-existing audio in output buffer as possible */
     if (outcnt > 0) {
       if (outcnt <= (int)CS_KSMPS)
         i = outcnt;
@@ -568,7 +568,7 @@ static int pconvolve(CSOUND *csound, PCONVOLVE *p)
             dest[n + 1] += (h[n + 1] * src[n + 0]) + (h[n + 0] * src[n + 1]);
           }
           h += n; dest += n;
-          if (dest == (MYFLT*)p->convBuf.endp)
+          if (UNLIKELY(dest == (MYFLT*)p->convBuf.endp))
             dest = (MYFLT*)p->convBuf.auxp;
         }
 
diff --git a/Opcodes/ugensa.c b/Opcodes/ugensa.c
index 8a768e9..2ba01e0 100644
--- a/Opcodes/ugensa.c
+++ b/Opcodes/ugensa.c
@@ -34,8 +34,8 @@ static int fogset(CSOUND *csound, FOGS *p)
 {
     /* legato test, not sure if the last bit (auxch) is correct? */
     int skip = (*p->iskip != FL(0.0) && p->auxch.auxp != 0);
-    if ((p->ftp1 = csound->FTFind(csound, p->ifna)) != NULL &&
-        (p->ftp2 = csound->FTFind(csound, p->ifnb)) != NULL) {
+    if (LIKELY((p->ftp1 = csound->FTFind(csound, p->ifna)) != NULL &&
+               (p->ftp2 = csound->FTFind(csound, p->ifnb)) != NULL)) {
       OVERLAP *ovp, *nxtovp;
       int32   olaps;
       p->fogcvt = FMAXLEN/(p->ftp1)->flen; /*JMC for FOG*/
diff --git a/Opcodes/uggab.c b/Opcodes/uggab.c
index aed9824..99ccdc9 100644
--- a/Opcodes/uggab.c
+++ b/Opcodes/uggab.c
@@ -1076,7 +1076,7 @@ static int looptseg(CSOUND *csound, LOOPTSEG *p)
         MYFLT diff = end_seg - beg_seg;
         MYFLT fract = ((MYFLT)phs-beg_seg)/diff;
         MYFLT v1 = *(p->argums[j].start);
-        MYFLT v2 = *(p->argums[j+1].start);
+        MYFLT v2 = (j!=nsegs-1)?*(p->argums[j+1].start):*(p->argums[0].start);
         if (alpha==FL(0.0))
           *p->out = v1 + (v2 - v1) * fract;
         else
@@ -1227,7 +1227,7 @@ static int lineto_set(CSOUND *csound, LINETO *p)
 
 static int lineto(CSOUND *csound, LINETO *p)
 {
-    if (p->flag) {
+    if (UNLIKELY(p->flag)) {
       p->val_incremented = p->current_val = *p->ksig;
       p->flag=0;
     }
@@ -1262,7 +1262,7 @@ static int tlineto_set(CSOUND *csound, LINETO2 *p)
 
 static int tlineto(CSOUND *csound, LINETO2 *p)
 {
-    if (p->flag) {
+    if (UNLIKELY(p->flag)) {
       p->val_incremented = p->current_val = *p->ksig;
       p->flag=0;
     }
@@ -1289,11 +1289,11 @@ static int vibrato_set(CSOUND *csound, VIBRATO *p)
 {
     FUNC        *ftp;
 
-    if ((ftp = csound->FTnp2Find(csound, p->ifn)) != NULL) {
+    if (LIKELY((ftp = csound->FTnp2Find(csound, p->ifn)) != NULL)) {
       p->ftp = ftp;
       if (*p->iphs >= 0 && *p->iphs<1.0)
         p->lphs = (((long)(*p->iphs * FMAXLEN)) & PHMASK) >> ftp->lobits;
-      else if (*p->iphs>=1.0)
+      else if (UNLIKELY(*p->iphs>=1.0))
         return csound->InitError(csound, Str("vibrato@ Phase out of range"));
     }
     else return NOTOK;
@@ -1635,7 +1635,7 @@ static int kDiscreteUserRand(CSOUND *csound, DURAND *p)
         goto err1;
       p->pfn = (int32)*p->tableNum;
     }
-    *p->out = p->ftp->ftable[(int32)(randGab * MYFLT2LONG(p->ftp->flen))];
+    *p->out = p->ftp->ftable[(int32)(randGab * p->ftp->flen)];
     return OK;
  err1:
     return csound->PerfError(csound, p->h.insdshead,
@@ -1670,7 +1670,7 @@ static int aDiscreteUserRand(CSOUND *csound, DURAND *p)
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      out[n] = table[(int32)(randGab) * MYFLT2LONG(flen)];
+      out[n] = table[(int32)(randGab) * flen];
     }
     return OK;
  err1:
@@ -1688,7 +1688,7 @@ static int kContinuousUserRand(CSOUND *csound, CURAND *p)
         goto err1;
       p->pfn = (int32)*p->tableNum;
     }
-    findx = (MYFLT) (randGab * MYFLT2LONG(p->ftp->flen));
+    findx = (MYFLT) (randGab * p->ftp->flen);
     indx = (int32) findx;
     fract = findx - indx;
     v1 = *(p->ftp->ftable + indx);
@@ -1740,7 +1740,7 @@ static int aContinuousUserRand(CSOUND *csound, CURAND *p)
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      findx = (MYFLT) (randGab * MYFLT2LONG(flen));
+      findx = (MYFLT) (randGab * flen);
       indx = (int32) findx;
       fract = findx - indx;
       v1 = table[indx];
diff --git a/Opcodes/ugmoss.c b/Opcodes/ugmoss.c
index 190339c..5e0fe7a 100644
--- a/Opcodes/ugmoss.c
+++ b/Opcodes/ugmoss.c
@@ -110,10 +110,17 @@ static int and_aa(CSOUND *csound, AOP *p)
     MYFLT *r    = p->r;
     MYFLT *in1  = p->a;
     MYFLT *in2  = p->b;
+    uint32_t offset = p->h.insdshead->ksmps_offset;
+    uint32_t early  = p->h.insdshead->ksmps_no_end;
     int   n, nsmps = CS_KSMPS;
     int32  input1, input2;
 
-    for (n = 0; n < nsmps; n++) {
+    if (UNLIKELY(offset)) memset(r, '\0', offset*sizeof(MYFLT));
+    if (UNLIKELY(early)) {
+      nsmps -= early;
+      memset(&r[nsmps], '\0', early*sizeof(MYFLT));
+    }
+    for (n = offset; n < nsmps; n++) {
       input1 = MYFLT2LRND(in1[n]);
       input2 = MYFLT2LRND(in2[n]);
       r[n] = (MYFLT) (input1 & input2);
diff --git a/Opcodes/ugnorman.c b/Opcodes/ugnorman.c
index a0ddee8..d9b6f90 100644
--- a/Opcodes/ugnorman.c
+++ b/Opcodes/ugnorman.c
@@ -124,10 +124,9 @@ static int load_atsfile(CSOUND *csound, void *p, MEMFIL **mfp, char *fname,
     /* load memfile */
     if (UNLIKELY((*mfp = csound->ldmemfile2withCB(csound, fname,
                                                   CSFTYPE_ATS, NULL)) == NULL)) {
-      csound->InitError(csound,
-                        Str("%s: Ats file %s not read (does it exist?)"),
-                        opname, fname);
-      return -1;
+      return  csound->InitError(csound,
+                                Str("%s: Ats file %s not read (does it exist?)"),
+                                opname, fname);
     }
     atsh = (ATSSTRUCT*) (*mfp)->beginp;
 
@@ -462,7 +461,7 @@ static MYFLT FetchNzBand(ATSREADNZ *p, MYFLT position)
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == p->maxFr)
+    if (UNLIKELY(frame == p->maxFr))
       return (MYFLT) frm1val;
 
     frm_2 = frm_1 + p->frmInc;
@@ -939,7 +938,7 @@ static void FetchADDPartials(ATSADD *p, ATS_DATA_LOC *buf, MYFLT position)
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == p->maxFr) {
+    if (UNLIKELY(frame == p->maxFr)) {
       for (i = 0; i < npartials; i++) {
         if (p->swapped == 1) {
           buf[i].amp = bswap(&frm_0[partialloc]);        /* calc amplitude */
@@ -1052,7 +1051,7 @@ static void FetchADDNZbands(int ptls, int firstband, double *datastart,
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == maxFr) {
+    if (UNLIKELY(frame == maxFr)) {
       for (i = 0; i < ptls; i++) {
         buf[i] = (swapped == 1 ? bswap(&frm_0[firstband + i])
                                     : frm_0[firstband + i]); /* output value */
@@ -1093,7 +1092,7 @@ static int atsaddnzset(CSOUND *csound, ATSADDNZ *p)
     /* load memfile */
     p->swapped = load_atsfile(csound,
                               p, &(p->atsmemfile), atsfilname, p->ifileno, 0);
-    if (p->swapped < 0)
+    if (UNLIKELY(p->swapped < 0))
       return NOTOK;
     p->bands = (int)(*p->ibands);
     p->bandoffset = (int) (*p->ibandoffset);
@@ -1263,7 +1262,7 @@ static int atsaddnzset_S(CSOUND *csound, ATSADDNZ *p)
     /* load memfile */
     p->swapped = load_atsfile(csound,
                               p, &(p->atsmemfile), atsfilname, p->ifileno, 1);
-    if (p->swapped < 0)
+    if (UNLIKELY(p->swapped < 0))
       return NOTOK;
     p->bands = (int)(*p->ibands);
     p->bandoffset = (int) (*p->ibandoffset);
@@ -1467,12 +1466,12 @@ static int atsaddnz(CSOUND *csound, ATSADDNZ *p)
 
     synthme = p->bandoffset;
     nsynthed = 0;
+    ar = p->aoutput;
     for (i = 0; i < 25; i++) {
       /* do we even have to synthesize it? */
       if (i == synthme && nsynthed < p->bands) { /* synthesize cosine */
         amp = csound->e0dbfs*
           SQRT((p->buf[i] / (p->winsize*(MYFLT)ATSA_NOISE_VARIANCE)));
-        ar = p->aoutput;
         for (n=offset; n<nsmps; n++) {
           ar[n] += (COS(p->oscphase[i])
                    * amp * randiats(csound, &(p->randinoise[i])));
@@ -2016,7 +2015,7 @@ static void fetchSINNOIpartials(ATSSINNOI *p, MYFLT position)
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == p->maxFr) {
+    if (UNLIKELY(frame == p->maxFr)) {
       if (p->firstband == -1) { /* there is no noise data */
         if (p->swapped == 1) {
           for (i = (int) *p->iptloffset; i < (int) *p->iptls+*p->iptloffset;
@@ -2324,10 +2323,11 @@ static int mycomp(const void *p1, const void *p2)
 {
     const ATS_DATA_LOC *a1 = p1;
     const ATS_DATA_LOC *a2 = p2;
-
-    if (a1->freq < a2->freq)
+    double a1f = a1->freq;
+    double a2f = a2->freq;
+    if (a1f < a2f)
       return -1;
-    else if (a1->freq == a2->freq)
+    else if (a1f == a2f)
       return 0;
     else
       return 1;
@@ -2350,7 +2350,7 @@ static void FetchBUFPartials(ATSBUFREAD *p,
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == p->maxFr) {
+    if (UNLIKELY(frame == p->maxFr)) {
       if (p->swapped == 1) {
         for (i = 0; i < npartials; i++) {                   /* calc amplitude */
           buf[i].amp = buf2[i].amp = bswap(&frm_0[partialloc]);
@@ -2505,7 +2505,7 @@ static int atsinterpread(CSOUND *csound, ATSINTERPREAD *p)
     atsbufreadaddr = *(get_atsbufreadaddrp(csound));
     if (UNLIKELY(atsbufreadaddr == NULL)) goto err1;
     /* make sure we are not asking for unreasonble frequencies */
-    if (*p->kfreq <= FL(20.0) || *p->kfreq >= FL(20000.0)) {
+    if (UNLIKELY(*p->kfreq <= FL(20.0) || *p->kfreq >= FL(20000.0))) {
       if (UNLIKELY(p->overflowflag)) {
         csound->Warning(csound, Str("ATSINTERPREAD: frequency must be greater "
                                     "than 20 and less than 20000 Hz"));
@@ -2561,7 +2561,7 @@ static int atscrossset(CSOUND *csound, ATSCROSS *p)
     /* load memfile */
     p->swapped = load_atsfile(csound,
                               p, &(p->atsmemfile), atsfilname, p->ifileno, 0);
-    if (p->swapped < 0)
+    if (UNLIKELY(p->swapped < 0))
       return NOTOK;
     atsh = (ATSSTRUCT*) p->atsmemfile->beginp;
 
@@ -2655,7 +2655,7 @@ static int atscrossset_S(CSOUND *csound, ATSCROSS *p)
     /* load memfile */
     p->swapped = load_atsfile(csound,
                               p, &(p->atsmemfile), atsfilname, p->ifileno, 1);
-    if (p->swapped < 0)
+    if (UNLIKELY(p->swapped < 0))
       return NOTOK;
     atsh = (ATSSTRUCT*) p->atsmemfile->beginp;
 
@@ -2685,8 +2685,8 @@ static int atscrossset_S(CSOUND *csound, ATSCROSS *p)
     }
 
     /* make sure partials are in range */
-    if ((int)(*p->iptloffset + *p->iptls * *p->iptlincr) > n_partials ||
-        (int)(*p->iptloffset) < 0) {
+    if (UNLIKELY((int)(*p->iptloffset + *p->iptls * *p->iptlincr) > n_partials ||
+                 (int)(*p->iptloffset) < 0)) {
       return csound->InitError(csound, Str("ATSCROSS: Partial(s) out of range, "
                                            "max partial allowed is %i"),
                                        n_partials);
@@ -2746,7 +2746,7 @@ static void FetchCROSSPartials(ATSCROSS *p, ATS_DATA_LOC *buf, MYFLT position)
 
     /* if we are using the data from the last frame */
     /* we should not try to interpolate */
-    if (frame == p->maxFr) {
+    if (UNLIKELY(frame == p->maxFr)) {
       if (p->swapped == 1) {
         for (i = 0; i < npartials; i++) {
           buf[i].amp = bswap(&frm_0[partialloc]);  /* calc amplitude */
@@ -2813,7 +2813,7 @@ static void ScalePartials(
       }
       tempamp = FL(0.0);
       /* make sure we are not going to overstep our array */
-      if (j < tbufnp && j > 0) {
+      if (LIKELY(j < tbufnp && j > 0)) {
         /* interp amplitude from table */
         frac =
             (cbuf[i].freq - tbuf[j - 1].freq) / (tbuf[j].freq -
diff --git a/Opcodes/ugsc.c b/Opcodes/ugsc.c
index 6635c7b..5bc7a47 100644
--- a/Opcodes/ugsc.c
+++ b/Opcodes/ugsc.c
@@ -57,6 +57,7 @@ static int svf(CSOUND *csound, SVF *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
+    int asgf = IS_ASIG_ARG(p->kfco), asgq = IS_ASIG_ARG(p->kq);
 
     in   = p->in;
     low  = p->low;
@@ -81,8 +82,8 @@ static int svf(CSOUND *csound, SVF *p)
       memset(&band[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      MYFLT fco = IS_ASIG_ARG(p->kfco) ? kfco[n] : *kfco;
-      MYFLT q = IS_ASIG_ARG(p->kq) ? kq[n] : *kq;
+      MYFLT fco = asgf ? kfco[n] : *kfco;
+      MYFLT q = asgq ? kq[n] : *kq;
       if (fco != lfco || q != lq) {
         lfco = fco; lq = q;
         /* calculate frequency and Q coefficients */
@@ -241,6 +242,7 @@ static int resonr(CSOUND *csound, RESONZ *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
+    int asgf = IS_ASIG_ARG(p->kcf), asgw = IS_ASIG_ARG(p->kbw);
 
     out = p->out;
     in = p->in;
@@ -255,8 +257,8 @@ static int resonr(CSOUND *csound, RESONZ *p)
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      MYFLT cf = IS_ASIG_ARG(p->kcf) ? kcf[n] : *kcf;
-      MYFLT bw = IS_ASIG_ARG(p->kbw) ? kbw[n] : *kbw;
+      MYFLT cf = asgf ? kcf[n] : *kcf;
+      MYFLT bw = asgw ? kbw[n] : *kbw;
       if (cf != lcf || bw != lbw) {
         lcf = cf; lbw = bw;
         r = exp((double)(bw * csound->mpidsr));
@@ -303,6 +305,7 @@ static int resonz(CSOUND *csound, RESONZ *p)
     uint32_t offset = p->h.insdshead->ksmps_offset;
     uint32_t early  = p->h.insdshead->ksmps_no_end;
     uint32_t n, nsmps = CS_KSMPS;
+    int asgf = IS_ASIG_ARG(p->kcf), asgw = IS_ASIG_ARG(p->kbw);
 
     /* Normalizing factors derived from equations in Ken Steiglitz,
      * "A Note on Constant-Gain Digital Resonators," Computer
@@ -322,8 +325,8 @@ static int resonz(CSOUND *csound, RESONZ *p)
       memset(&out[nsmps], '\0', early*sizeof(MYFLT));
     }
     for (n=offset; n<nsmps; n++) {
-      MYFLT cf = IS_ASIG_ARG(p->kcf) ? kcf[n] : *kcf;
-      MYFLT bw = IS_ASIG_ARG(p->kbw) ? kbw[n] : *kbw;
+      MYFLT cf = asgf ? kcf[n] : *kcf;
+      MYFLT bw = asgw ? kbw[n] : *kbw;
       if (cf != lcf || bw != lbw) {
         lcf = cf; lbw = bw;
         r = exp(-(double)(bw * csound->pidsr));
diff --git a/Opcodes/vbap.c b/Opcodes/vbap.c
index d798451..880aa72 100644
--- a/Opcodes/vbap.c
+++ b/Opcodes/vbap.c
@@ -36,6 +36,9 @@ Re-written to take flexible number of outputs by JPff 2012 */
 #include <stdlib.h>
 #include "interlocks.h"
 
+#define MATSIZE (4)
+#define ATORAD  (TWOPI_F / FL(360.0))
+
 /* static void choose_ls_triplets(CSOUND *csound, ls *lss, */
 /*                                ls_triplet_chain **ls_triplets, */
 /*                                int ls_amount, int channels); */
@@ -130,13 +133,13 @@ void calc_vbap_gns(int ls_set_am, int dim, LS_SET *sets,
     }
 
 
-        if (sets[j].set_gains[0]<=FL(0.0) &&
+    if (sets[j].set_gains[0]<=FL(0.0) &&
         sets[j].set_gains[1]<=FL(0.0) &&
         sets[j].set_gains[2]<=FL(0.0)) {
       sets[j].set_gains[0] = FL(1.0);
       sets[j].set_gains[1] = FL(1.0);
       sets[j].set_gains[2] = FL(1.0);
-      }
+    }
 
     memset(gains, 0, ls_amount*sizeof(MYFLT));
 
@@ -168,7 +171,7 @@ void normalize_wts(OUT_WTS *wts)
      /* performs equal-power normalization to gain factors*/
 {
     double tmp;
-
+    MYFLT tmp1;
     if (wts->wt1 < 0) wts->wt1 = FL(0.0);
     if (wts->wt2 < 0) wts->wt2 = FL(0.0);
     if (wts->wt3 < 0) wts->wt3 = FL(0.0);
@@ -178,29 +181,29 @@ void normalize_wts(OUT_WTS *wts)
     tmp += (double)wts->wt3 * wts->wt3;
 
     tmp = sqrt(tmp);
-    tmp = FL(1.0) / (MYFLT)tmp;
-    wts->wt1 *= (MYFLT)tmp;
-    wts->wt2 *= (MYFLT)tmp;
-    wts->wt3 *= (MYFLT)tmp;
+    tmp1 = (MYFLT)(1.0 / tmp);
+    wts->wt1 *= tmp1;
+    wts->wt2 *= tmp1;
+    wts->wt3 *= tmp1;
 }
 
 void angle_to_cart(ANG_VEC avec, CART_VEC *cvec)
      /* conversion */
 {
     /* length unattended */
-    MYFLT atorad = (TWOPI_F / FL(360.0));
-    cvec->x = (MYFLT) (cos((double) (avec.azi * atorad)) *
-                       cos((double) (avec.ele * atorad)));
-    cvec->y = (MYFLT) (sin((double) (avec.azi * atorad)) *
-                       cos((double) (avec.ele * atorad)));
-    cvec->z = (MYFLT) (sin((double) (avec.ele * atorad)));
+    //MYFLT atorad = (TWOPI_F / FL(360.0));
+    cvec->x = (MYFLT) (cos((double) (avec.azi * ATORAD)) *
+                       cos((double) (avec.ele * ATORAD)));
+    cvec->y = (MYFLT) (sin((double) (avec.azi * ATORAD)) *
+                       cos((double) (avec.ele * ATORAD)));
+    cvec->z = (MYFLT) (sin((double) (avec.ele * ATORAD)));
 }
 
 void cart_to_angle(CART_VEC cvec, ANG_VEC *avec)
      /* conversion */
 {
     MYFLT tmp, tmp2, tmp3, tmp4;
-    MYFLT atorad = (TWOPI_F / FL(360.0));
+    //MYFLT atorad = (TWOPI_F / FL(360.0));
 
     tmp3 = SQRT(FL(1.0) - cvec.z*cvec.z);
     if (FABS(tmp3) > FL(0.001)) {
@@ -219,11 +222,11 @@ void cart_to_angle(CART_VEC cvec, ANG_VEC *avec)
     tmp *= tmp2;
     if (FABS(tmp) <= PI_F) {
       avec->azi =  tmp;
-      avec->azi /= atorad;
+      avec->azi /= ATORAD;
     }
     avec->ele = ASIN(cvec.z);
     avec->length = SQRT(cvec.x * cvec.x + cvec.y * cvec.y + cvec.z * cvec.z);
-    avec->ele /= atorad;
+    avec->ele /= ATORAD;
 }
 
 void angle_to_cart_II(ANG_VEC *from, CART_VEC *to)
@@ -248,7 +251,7 @@ MYFLT vol_p_side_lgth(int i, int j,int k, ls  lss[] )
     lgth =    FABS(vec_angle(lss[i].coords,lss[j].coords))
             + FABS(vec_angle(lss[i].coords,lss[k].coords))
             + FABS(vec_angle(lss[j].coords,lss[k].coords));
-    if (lgth>FL(0.00001))
+    if (LIKELY(lgth>FL(0.00001)))
       return volper / lgth;
     else
       return FL(0.0);
@@ -575,9 +578,11 @@ static inline int vbap_ls_init_sr (CSOUND *csound, int dim, int count,
     int i=0,j;
 
     //dim = (int) *p->dim;
-    csound->Warning(csound, "dim : %d\n",dim);
+    csound->Message(csound, "dim : %d\n",dim);
     if (UNLIKELY(!((dim==2) || (dim == 3)))) {
-      csound->ErrorMsg(csound, Str("Error in loudspeaker dimension."));
+      csound->ErrorMsg(csound,
+                       Str("Error in loudspeaker dimension. %d not permitted"),
+                       dim);
       return NOTOK;
     }
     //count = (int) *p->ls_amount;
@@ -597,6 +602,8 @@ static inline int vbap_ls_init_sr (CSOUND *csound, int dim, int count,
       lss[i].angles.azi = a_vector.azi;
       lss[i].angles.ele = a_vector.ele;
       lss[i].angles.length = FL(1.0);
+      /* printf("**** lss[%d]: (%g %g %g) %g %g\n", i, lss[i].coords.x, */
+      /*        lss[i].coords.y, lss[i].coords.z, a_vector.azi, a_vector.ele); */
       i++;
     }
     //ls_amount = (int)*p->ls_amount;
@@ -607,11 +614,11 @@ static inline int vbap_ls_init_sr (CSOUND *csound, int dim, int count,
     }
 
     if (dim == 3) {
-      choose_ls_triplets(csound, lss, &ls_triplets,count);
-      calculate_3x3_matrixes(csound, ls_triplets,lss,count, layout);
+      choose_ls_triplets(csound, lss, &ls_triplets, count);
+      calculate_3x3_matrixes(csound, ls_triplets, lss, count, layout);
     }
     else if (dim ==2) {
-      choose_ls_tuplets(csound, lss, &ls_triplets,count, layout);
+      choose_ls_tuplets(csound, lss, &ls_triplets, count, layout);
     }
     free(lss);
     return OK;
@@ -631,8 +638,8 @@ int vbap_ls_inita (CSOUND *csound, VBAP_LS_INITA *p)
     int i, n = (int)*p->ls_amount;
     /* if (n>CHANNELS) */
     /*   return csound->InitError(csound, Str("Too many speakers (%n)\n"), n); */
-    if (n>p->a->sizes[0])
-      return csound->InitError(csound, Str("Too little data speakers (%n)\n"),
+    if (UNLIKELY(n>p->a->sizes[0]))
+      return csound->InitError(csound, Str("Too little data speakers (%d)\n"),
                               n>p->a->sizes[0]);
     MYFLT  **f = csound->Malloc(csound, 2*sizeof(MYFLT*)*n);
     // Transfer values to pointers
@@ -730,26 +737,23 @@ static void choose_ls_tuplets(CSOUND *csound,
     int *sorted_lss = (int*)malloc(sizeof(int)*ls_amount);
     int *exist = (int*)calloc(1,sizeof(int)*ls_amount);
     int amount = 0;
-    MYFLT *inv_mat = (MYFLT*)malloc(4*sizeof(MYFLT)*ls_amount), *ls_table, *ptr;
+    MYFLT *inv_mat = (MYFLT*)malloc(MATSIZE*sizeof(MYFLT)*ls_amount),
+          *ls_table, *ptr;
     //int ftable_size;
 
-    /* for (i=0;i<CHANNELS;i++) { */
-    /*   exist[i]=0; */
-    /* } */
-
     /* sort loudspeakers according their aximuth angle */
     sort_2D_lss(lss,sorted_lss,ls_amount);
 
     /* adjacent loudspeakers are the loudspeaker pairs to be used.*/
     for (i=0;i<(ls_amount-1);i++) {
-      /*csound->Message(csound, "%d %d %f %f\n",sorted_lss[i],sorted_lss[i+1],
-        lss[sorted_lss[i]].angles.azi,
-        lss[sorted_lss[i+1]].angles.azi);*/
+      csound->Message(csound, "***%d %d %f %f\n",sorted_lss[i],sorted_lss[i+1],
+                      lss[sorted_lss[i]].angles.azi,
+                      lss[sorted_lss[i+1]].angles.azi);
       if (LIKELY((lss[sorted_lss[i+1]].angles.azi -
                   lss[sorted_lss[i]].angles.azi) <= (PI - 0.0175))) {
         if (LIKELY(calc_2D_inv_tmatrix( lss[sorted_lss[i]].angles.azi,
                                         lss[sorted_lss[i+1]].angles.azi,
-                                        &inv_mat[4*i]) != 0)) {
+                                        &inv_mat[MATSIZE*i]) != 0)) {
           exist[i]=1;
           amount++;
         }
@@ -761,10 +765,10 @@ static void choose_ls_tuplets(CSOUND *csound,
 
     if (LIKELY(((TWOPI_F - lss[sorted_lss[ls_amount-1]].angles.azi)
                 +lss[sorted_lss[0]].angles.azi) < (PI - 0.0175))) {
-      //printf("less than PI type 2- 0.175\n");
+      //printf("**less than PI type 2- 0.175\n");
       if (LIKELY(calc_2D_inv_tmatrix(lss[sorted_lss[ls_amount-1]].angles.azi,
                                      lss[sorted_lss[0]].angles.azi,
-                                     &inv_mat[4*(ls_amount-1)]) != 0)) {
+                                     &inv_mat[MATSIZE*(ls_amount-1)]) != 0)) {
         exist[ls_amount-1]=1;
         amount++;
       }
@@ -773,8 +777,11 @@ static void choose_ls_tuplets(CSOUND *csound,
                           lss[sorted_lss[ls_amount-1]].angles.azi*FL(180.0)/PI_F,
                           lss[sorted_lss[0]].angles.azi*FL(180.0)/PI_F);
 
-    if (UNLIKELY(amount==0))
+    if (UNLIKELY(amount==0)) {
       csound->InitError(csound, Str("insufficient valid speakers"));
+      free(sorted_lss); free(exist); free(inv_mat);
+      return;
+    }
 
 #if 0
     if ( amount*6 + 6 <= 16) ftable_size = 16;
@@ -786,7 +793,7 @@ static void choose_ls_tuplets(CSOUND *csound,
     csound->Message(csound,
                     "Loudspeaker matrices calculated with configuration : ");
     for (i=0; i< ls_amount; i++)
-      csound->Message(csound, "%.1f ", lss[i].angles.azi / atorad);
+      csound->Message(csound, "%.1f ", lss[i].angles.azi / ATORAD);
     csound->Message(csound, "\n");
 #endif
     ls_table = create_ls_table(csound, amount * 6 + 3 + 100, ind);
@@ -798,30 +805,33 @@ static void choose_ls_tuplets(CSOUND *csound,
       if (exist[i] == 1) {
         *(ptr++) = (MYFLT)sorted_lss[i]+1;
         *(ptr++) = (MYFLT)sorted_lss[i+1]+1;
-        for (j=0;j<4;j++) {
-          *(ptr++) = inv_mat[i*ls_amount+j];
+        for (j=0;j<MATSIZE;j++) {
+          /*printf("iv_mat i=%d a=%d [%d] %f\n",
+            i, ls_amount, i*MATSIZE+j, inv_mat[i*ls_amount+j]); */
+          *(ptr++) = inv_mat[i*MATSIZE+j];
         }
       }
     }
     if (exist[ls_amount-1] == 1) {
       *(ptr++) = (MYFLT)sorted_lss[ls_amount-1]+1;
       *(ptr++) = (MYFLT)sorted_lss[0]+1;
-      for (j=0;j<4;j++) {
-        *(ptr++) = inv_mat[ls_amount*(ls_amount-1)+j];
+      for (j=0;j<MATSIZE;j++) {
+/*         printf("iv_mat[%d] %f\n", (ls_amount-1)*MATSIZE+j, */
+/*                inv_mat[(ls_amount-1)*MATSIZE+j]); */
+        *(ptr++) = inv_mat[(ls_amount-1)*MATSIZE+j];
       }
     }
     k=3;
-    csound->Warning(csound, Str("\nConfigured loudspeakers\n"));
+    csound->Message(csound, Str("\nConfigured loudspeakers\n"));
     for (i=0; i < amount; i++) {
-      csound->Warning(csound, Str("Pair %d Loudspeakers: "), i);
+      csound->Message(csound, Str("Pair %d Loudspeakers: "), i);
       for (j=0; j < 2; j++) {
-        csound->Warning(csound, "%d ", (int) ls_table[k++]);
+        csound->Message(csound, "%d ", (int) ls_table[k++]);
       }
-      csound->Warning(csound, "\n");
 
-    csound->Message(csound, "\nMatrix ");
-      for (j=0; j < 4; j++) {
-      csound->Message(csound, "%f ", ls_table[k]);
+      csound->Message(csound, "\nMatrix ");
+      for (j=0; j < MATSIZE; j++) {
+        csound->Message(csound, "%f ", ls_table[k]);
         k++;
       }
       csound->Message(csound, "\n\n");
@@ -844,7 +854,7 @@ static void sort_2D_lss(ls lss[], int sorted_lss[],
       else
         tmp = lss[i].coords.y / FABS(lss[i].coords.y);
       lss[i].angles.azi *= tmp;
-      /*printf("tulos %f",    lss[i].angles.azi);*/
+      //printf("***tulos %f\n",    lss[i].angles.azi);
     }
     for (i=0;i<ls_amount;i++) {
       tmp = FL(2000.0);
@@ -864,7 +874,7 @@ static void sort_2D_lss(ls lss[], int sorted_lss[],
     }
 }
 
-int calc_2D_inv_tmatrix(MYFLT azi1,MYFLT azi2, MYFLT inv_mat[4])
+int calc_2D_inv_tmatrix(MYFLT azi1,MYFLT azi2, MYFLT inv_mat[MATSIZE])
 {
     MYFLT x1,x2,x3,x4; /* x1 x3 */
     MYFLT det;
@@ -874,7 +884,7 @@ int calc_2D_inv_tmatrix(MYFLT azi1,MYFLT azi2, MYFLT inv_mat[4])
     x4 = SIN(azi2 );
     det = (x1 * x4) - ( x3 * x2 );
     if (FABS(det) <= FL(0.001)) {
-      /*printf("unusable pair, det %f\n",det);*/
+      //printf("unusable*** pair, det %f\n",det);
       inv_mat[0] = FL(0.0);
       inv_mat[1] = FL(0.0);
       inv_mat[2] = FL(0.0);
@@ -882,6 +892,7 @@ int calc_2D_inv_tmatrix(MYFLT azi1,MYFLT azi2, MYFLT inv_mat[4])
       return 0;
     }
     else {
+      //printf("***inv x (%f,%f,%f,%f): det=%f\n", x4, -x3, -x2, x1, det);
       inv_mat[0] =  (x4 / det);
       inv_mat[1] =  (-x3 / det);
       inv_mat[2] =  (-x2 / det);
@@ -955,12 +966,17 @@ static OENTRY vbap_localops[] = {
   { "vbap.A",      S(VBAPA), TR, 5,  "a[]",    "akOOo",
     (SUBR) vbap_init_a,          (SUBR) NULL,    (SUBR) vbap_a               },
   { "vbap4",      S(VBAP),
-    TR|_QQ, 5,  "aaaa",  "akOOo", (SUBR) vbap_init, (SUBR) NULL, (SUBR) vbap },
+    TR|_QQ, 5,  "aaaammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
+    "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+    "akOOo", (SUBR) vbap_init, (SUBR) NULL, (SUBR) vbap },
   { "vbap8",      S(VBAP),
-    TR|_QQ, 5,  "aaaaaaaa", "akOOo",
+    TR|_QQ, 5,  "aaaaaaaammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
+    "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+    "akOOo",
     (SUBR) vbap_init,          (SUBR) NULL,    (SUBR) vbap                   },
   { "vbap16",      S(VBAP),
-    TR|_QQ, 5,  "aaaaaaaaaaaaaaaa", "akOOo",
+    TR|_QQ, 5,  "aaaaaaaaaaaaaaaammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
+    "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "akOOo",
     (SUBR) vbap_init,          (SUBR) NULL,    (SUBR) vbap                   },
   { "vbapg.a",      S(VBAP1),             TR, 3,
     "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
diff --git a/Opcodes/vbap1.c b/Opcodes/vbap1.c
index 3e1abbb..c782e6f 100644
--- a/Opcodes/vbap1.c
+++ b/Opcodes/vbap1.c
@@ -195,8 +195,9 @@ int vbap1_init(CSOUND *csound, VBAP1 *p)
       for (j=0 ; j < p->q.dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int)*(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /*initial setting*/
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT)); // initial setting
+      /* for (j=0 ; j < 9; j++) */
+      /*   ls_set_ptr[i].ls_mx[j] = FL(0.0);  /\*initial setting*\/ */
       for (j=0 ; j < (p->q.dim) * (p->q.dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT)*(ptr++);
       }
@@ -263,8 +264,7 @@ int vbap1_init_a(CSOUND *csound, VBAPA1 *p)
       for (j=0 ; j < p->q.dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int)*(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /*initial setting*/
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT));  /*initial setting*/
       for (j=0 ; j < (p->q.dim) * (p->q.dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT)*(ptr++);
       }
@@ -305,7 +305,7 @@ int vbap1_moving(CSOUND *csound, VBAP1_MOVING *p)
 
 int vbap1_moving_a(CSOUND *csound, VBAPA1_MOVING *p)
 {                               /* during note performance:   */
-    int j;
+    //    int j;
     int cnt = p->q.number;
 
     vbap1_moving_control(csound,&p->q, p->h.insdshead, CS_ONEDKR,
@@ -313,9 +313,10 @@ int vbap1_moving_a(CSOUND *csound, VBAPA1_MOVING *p)
 
     /* write audio to resulting audio streams weighted
        with gain factors*/
-    for (j=0; j<cnt ;j++) {
-      p->tabout->data[j] = p->q.gains[j];
-    }
+    memcpy(p->tabout->data, p->q.gains, cnt*sizeof(MYFLT));
+    /* for (j=0; j<cnt ;j++) { */
+    /*   p->tabout->data[j] = p->q.gains[j]; */
+    /* } */
     return OK;
 }
 
@@ -331,9 +332,9 @@ static int vbap1_moving_control(CSOUND *csound, VBAP1_MOVE_DATA *p,
     MYFLT coeff, angle;
     int cnt = p->number;
     MYFLT *tmp_gains=malloc(sizeof(MYFLT)*cnt),sum=FL(0.0);
-
+#ifdef JPFF
     printf("cnt=%d dim=%d\n", cnt, p->dim);
-
+#endif
     if (UNLIKELY(p->dim == 2 && fabs(p->ang_dir.ele) > 0.0)) {
       csound->Warning(csound,
                       Str("Warning: truncating elevation to 2-D plane\n"));
@@ -598,7 +599,7 @@ int vbap1_moving_init_a(CSOUND *csound, VBAPA1_MOVING *p)
     MYFLT   *ls_table, *ptr;
     LS_SET  *ls_set_ptr;
 
-    if (p->tabout->data == NULL || p->tabout->dimensions!=1)
+    if (UNLIKELY(p->tabout->data == NULL || p->tabout->dimensions!=1))
       return csound->InitError(csound, Str("Output array not initialised"));
     p->q.number = p->tabout->sizes[0];
     ls_table =
@@ -608,7 +609,7 @@ int vbap1_moving_init_a(CSOUND *csound, VBAPA1_MOVING *p)
     p->q.ls_am     = (int)ls_table[1];
     p->q.ls_set_am = (int)ls_table[2];
     ptr = &(ls_table[3]);
-    if (!p->q.ls_set_am)
+    if (UNLIKELY(!p->q.ls_set_am))
       return csound->InitError(csound, Str("vbap system NOT configured. \n"
                                            "Missing vbaplsinit opcode"
                                            " in orchestra?"));
diff --git a/Opcodes/vbap_n.c b/Opcodes/vbap_n.c
index d998f64..72475c8 100644
--- a/Opcodes/vbap_n.c
+++ b/Opcodes/vbap_n.c
@@ -25,7 +25,7 @@
 
 functions specific to four loudspeaker VBAP
 
-Ville Pulkki heavily modified my Joh ffitch 2012
+Ville Pulkki heavily modified by John ffitch 2012
 */
 
 
@@ -259,7 +259,7 @@ int vbap_init(CSOUND *csound, VBAP *p)
     int cnt = p->q.number = (int)(p->OUTOCOUNT);
     char name[24];
 
-    if((!strcmp(p->h.optext->t.opcod, "vbap.a")) == 0) {
+    if ((!strcmp(p->h.optext->t.opcod, "vbap.a")) == 0) {
       p->audio = p->out_array[cnt];
       p->azi = p->out_array[cnt+1];
       p->ele = p->out_array[cnt+2];
@@ -269,7 +269,7 @@ int vbap_init(CSOUND *csound, VBAP *p)
     snprintf(name, 24, "vbap_ls_table_%d", (p->layout==NULL?0:(int)*p->layout));
     ls_table = (MYFLT*) (csound->QueryGlobalVariable(csound, name));
 
-    if (ls_table==NULL)
+    if (UNLIKELY(ls_table==NULL))
       return csound->InitError(csound,
                                Str("could not find layout table no.%d"),
                                (int)*p->layout );
@@ -278,7 +278,7 @@ int vbap_init(CSOUND *csound, VBAP *p)
     p->q.ls_am     = (int)ls_table[1];
     p->q.ls_set_am = (int)ls_table[2];
     ptr = &(ls_table[3]);
-    if (!p->q.ls_set_am)
+    if (UNLIKELY(!p->q.ls_set_am))
       return csound->InitError(csound,
                                Str("vbap system NOT configured. \nMissing"
                                    " vbaplsinit opcode in orchestra?"));
@@ -293,8 +293,9 @@ int vbap_init(CSOUND *csound, VBAP *p)
       for (j=0 ; j < p->q.dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int)*(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /*initial setting*/
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT)); // initial setting
+      /* for (j=0 ; j < 9; j++) */
+      /*   ls_set_ptr[i].ls_mx[j] = FL(0.0);  /\*initial setting*\/ */
       for (j=0 ; j < (p->q.dim) * (p->q.dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT)*(ptr++);
       }
@@ -333,7 +334,7 @@ int vbap_init_a(CSOUND *csound, VBAPA *p)
     snprintf(name, 24, "vbap_ls_table_%d", (int)*p->layout);
     ls_table = (MYFLT*) (csound->QueryGlobalVariable(csound, name));
 
-    if (ls_table==NULL)
+    if (UNLIKELY(ls_table==NULL))
       return csound->InitError(csound,
                                Str("could not find layout table no.%d"),
                                (int)*p->layout );
@@ -342,7 +343,7 @@ int vbap_init_a(CSOUND *csound, VBAPA *p)
     p->q.ls_am     = (int)ls_table[1];
     p->q.ls_set_am = (int)ls_table[2];
     ptr = &(ls_table[3]);
-    if (!p->q.ls_set_am)
+    if (UNLIKELY(!p->q.ls_set_am))
       return csound->InitError(csound,
                                Str("vbap system NOT configured.\nMissing"
                                    " vbaplsinit opcode in orchestra?"));
@@ -357,8 +358,9 @@ int vbap_init_a(CSOUND *csound, VBAPA *p)
       for (j=0 ; j < p->q.dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int)*(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /*initial setting*/
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT));
+      /* for (j=0 ; j < 9; j++) */
+      /*   ls_set_ptr[i].ls_mx[j] = FL(0.0);  /\*initial setting*\/ */
       for (j=0 ; j < (p->q.dim) * (p->q.dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT)*(ptr++);
       }
@@ -501,7 +503,7 @@ int vbap_moving_control(CSOUND *csound, VBAP_MOVE_DATA *p, INSDS *insdshead,
         tmp3.x /= coeff; tmp3.y /= coeff; tmp3.z /= coeff;
         cart_to_angle(tmp3,&(p->ang_dir));
       }
-      else if (p->dim == 2) { /* 2-D */
+      else if (LIKELY(p->dim == 2)) { /* 2-D */
         p->prev_ang_dir.azi =  *fld[p->curr_fld];
         p->next_ang_dir.azi =  *fld[p->next_fld ];
         p->prev_ang_dir.ele = p->next_ang_dir.ele =  FL(0.0);
@@ -647,7 +649,7 @@ int vbap_moving_init(CSOUND *csound, VBAP_MOVING *p)
 
     ls_table = (MYFLT*) (csound->QueryGlobalVariableNoCheck(csound,
                                                         "vbap_ls_table_0"));
-    if (ls_table==NULL)
+    if (UNLIKELY(ls_table==NULL))
       return csound->InitError(csound, Str("could not find layout table no.0"));
     p->q.number = cnt;
     /* reading in loudspeaker info */
@@ -655,7 +657,7 @@ int vbap_moving_init(CSOUND *csound, VBAP_MOVING *p)
     p->q.ls_am     = (int)ls_table[1];
     p->q.ls_set_am = (int)ls_table[2];
     ptr = &(ls_table[3]);
-    if (!p->q.ls_set_am)
+    if (UNLIKELY(!p->q.ls_set_am))
       return csound->InitError(csound, Str("vbap system NOT configured. \nMissing"
                                            " vbaplsinit opcode in orchestra?"));
     csound->AuxAlloc(csound, p->q.ls_set_am * sizeof(LS_SET), &p->q.aux);
@@ -775,7 +777,7 @@ int vbap_moving_init_a(CSOUND *csound, VBAPA_MOVING *p)
     LS_SET  *ls_set_ptr;
     int cnt;
 
-    if (p->tabout->data==NULL) {
+    if (UNLIKELY(p->tabout->data==NULL)) {
       return csound->InitError(csound,
                                Str("Output array in vpabmove not initalised"));
     }
@@ -783,7 +785,7 @@ int vbap_moving_init_a(CSOUND *csound, VBAPA_MOVING *p)
 
     ls_table = (MYFLT*) (csound->QueryGlobalVariableNoCheck(csound,
                                                         "vbap_ls_table_0"));
-    if (ls_table==NULL)
+    if (UNLIKELY(ls_table==NULL))
       return csound->InitError(csound, Str("could not find layout table no.0"));
     p->q.number = cnt;
     /* reading in loudspeaker info */
@@ -791,7 +793,7 @@ int vbap_moving_init_a(CSOUND *csound, VBAPA_MOVING *p)
     p->q.ls_am     = (int)ls_table[1];
     p->q.ls_set_am = (int)ls_table[2];
     ptr = &(ls_table[3]);
-    if (!p->q.ls_set_am)
+    if (UNLIKELY(!p->q.ls_set_am))
       return csound->InitError(csound,
                                Str("vbap system NOT configured.\nMissing"
                                    " vbaplsinit opcode in orchestra?"));
@@ -806,8 +808,9 @@ int vbap_moving_init_a(CSOUND *csound, VBAPA_MOVING *p)
       for (j=0 ; j < p->q.dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int)*(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /*initial setting*/
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT));
+      /* for (j=0 ; j < 9; j++) */
+      /*   ls_set_ptr[i].ls_mx[j] = FL(0.0);  /\*initial setting*\/ */
       for (j=0 ; j < (p->q.dim) * (p->q.dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT)*(ptr++);
       }
diff --git a/Opcodes/vbap_zak.c b/Opcodes/vbap_zak.c
index 87b66db..2423b41 100644
--- a/Opcodes/vbap_zak.c
+++ b/Opcodes/vbap_zak.c
@@ -548,8 +548,9 @@ int vbap_zak_moving_init(CSOUND *csound, VBAP_ZAK_MOVING *p)
       for (j=0 ; j < p->dim ; j++) {
         ls_set_ptr[i].ls_nos[j] = (int) *(ptr++);
       }
-      for (j=0 ; j < 9; j++)
-        ls_set_ptr[i].ls_mx[j] = FL(0.0);  /* initial setting */
+      memset(ls_set_ptr[i].ls_mx, '\0', 9*sizeof(MYFLT));
+      /* for (j=0 ; j < 9; j++) */
+      /*   ls_set_ptr[i].ls_mx[j] = FL(0.0);  /\* initial setting *\/ */
       for (j=0 ; j < (p->dim) * (p->dim); j++) {
         ls_set_ptr[i].ls_mx[j] = (MYFLT) *(ptr++);
       }
diff --git a/Opcodes/vpvoc.c b/Opcodes/vpvoc.c
index 62d2b87..214a904 100644
--- a/Opcodes/vpvoc.c
+++ b/Opcodes/vpvoc.c
@@ -37,9 +37,8 @@ int tblesegset(CSOUND *csound, TABLESEG *p)
     FUNC    *nxtfunc, *curfunc;
     int32    flength;
 
-    if (!(p->INCOUNT & 1)){
-      csound->InitError(csound, "incomplete number of input arguments");
-      return NOTOK;
+    if (UNLIKELY(!(p->INCOUNT & 1))) {
+      return csound->InitError(csound, Str("incomplete number of input arguments"));
     }
 
     {
@@ -68,7 +67,7 @@ int tblesegset(CSOUND *csound, TABLESEG *p)
     p->outfunc->lobits = nxtfunc->lobits;
     p->outfunc->lomask = nxtfunc->lomask;
     p->outfunc->lodiv = nxtfunc->lodiv;
-    memset(p->outfunc->ftable, 0, sizeof(MYFLT)*(flength+1));
+    //memset(p->outfunc->ftable, 0, sizeof(MYFLT)*(flength+1)); not needed -- calloc
     if (**argp <= 0.0)  return OK;         /* if idur1 <= 0, skip init  */
     p->cursegp = segp;                      /* else proceed from 1st seg */
     segp--;
@@ -78,7 +77,7 @@ int tblesegset(CSOUND *csound, TABLESEG *p)
         dur = **argp++;
         if (UNLIKELY((nxtfunc = csound->FTnp2Find(csound, *argp++)) == NULL))
           return OK;
-        if (dur > FL(0.0)) {
+        if (LIKELY(dur > FL(0.0))) {
                 segp->d = dur * CS_EKR;
                 segp->function =  curfunc;
                 segp->nxtfunction = nxtfunc;
@@ -316,7 +315,7 @@ int vpvoc(CSOUND *csound, VPVOC *p)
     }
     if (frIndx > (MYFLT)p->maxFr) { /* not past last one */
       frIndx = (MYFLT)p->maxFr;
-      if (p->prFlg) {
+      if (UNLIKELY(p->prFlg)) {
         p->prFlg = 0;   /* false */
         csound->Warning(csound, Str("PVOC ktimpnt truncated to last frame"));
       }
@@ -342,7 +341,7 @@ int vpvoc(CSOUND *csound, VPVOC *p)
     if (specwp == 0 || (p->prFlg)++ == -(int)specwp) {
       /* ?screws up when prFlg used */
       /* specwp=0 => normal; specwp = -n => just nth frame */
-      if (specwp < 0)
+      if (UNLIKELY(specwp < 0))
         csound->Warning(csound, Str("PVOC debug: one frame gets through\n"));
       if (specwp > 0)
         PreWarpSpec(buf, asize, pex, (MYFLT *)p->memenv.auxp);
diff --git a/Opcodes/vst4cs/licensing_considerations_for_csoundvst_and_vst4cs.md b/Opcodes/vst4cs/licensing_considerations_for_csoundvst_and_vst4cs.md
new file mode 100644
index 0000000..866cb3d
--- /dev/null
+++ b/Opcodes/vst4cs/licensing_considerations_for_csoundvst_and_vst4cs.md
@@ -0,0 +1,343 @@
+#LICENSING AND HOSTING CSOUNDVST AND VST4CS#
+Michael Gogins
+22 September 2017
+
+This is complicated and tedious, so please read carefully and pay attention. I have read all the licenses and agreements from Steinberg, AppVeyor, and GitHub as well as the LGPL v2.1, several times. Please note, I am not a lawyer; so if you think you need legal advice, get it from a lawyer. I welcome comments and corrections. 
+
+##SUMMARY##
+
+If you're going to go to sleep, here's the tl;dr:
+
+-- Hosting source code for CsoundVST and the vst4cs opcodes on GitHub does not violate Steinberg's VST SDK 2.4 license, which is the only one we need to comply with, because we don't host the VST SDK code.
+
+-- Hosting source code for CsoundVST and the vst4cs opcodes on GitHub does not violate Csound's GPL v2.1 license.
+
+-- Hosting binaries for Csound, CsoundVST, and the vst4cs opcodes on AppVeyor does not violate Steinberg's VST SDK 2.4 license, which is the only one we need to comply with, again because we don't redistribute the VST SDK code.
+
+- The question whether hosting binaries for CsoundVST and the vst4cs opcodes violates Csound's LGPL v2.1 license is more complex. However, it is permitted by clause 6 of the LGPL v2.1 and as indicated by https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs. 
+
+###Required Modification###
+
+We should however modify the wording of our LGPL v2.1 license for CsoundVST and vst4cs to include an exception for using the VST2 SDK. It would also be possible to use the VST3 SDK's GPL v3 license, but that would require porting both CsoundVST and the vst4cs opcodes to use VST SDK3 instead of the current VST2 SDK. In that case, it is clear that the Csound library could load the vst4cs opcodes, but it is not as clear that non-GPL hosts could load CsoundVST, although this situation is common in the wild.
+
+Assuming that we continue to use the LGPL v2.1 license, the licenses for all Csound source code in the `frontends/CsoundVST` and `Opcodes/vst4cs` directories should be changed to read (text is worded for vst4cs):
+
+```
+//  The vst4cs library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The vst4cs library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with The vst4cs library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a 
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU 
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs give 
+//  you permission to combine vst4cs with free software programs or libraries
+//  that are released under the GNU LGPL and with code included in the 
+//  standard release of the VST SDK version 2 under the terms of the license 
+//  stated in the VST SDK version 2 files. You may copy and distribute such a 
+//  system following the terms of the GNU LGPL for vst4cs and the licenses of 
+//  the other code concerned. The source code for the VST SDK version 2 is 
+//  available in the VST SDK hosted at https://github.com/steinbergmedia/vst3sdk.
+//  
+//  Note that people who make modified versions of vst4cs are not obligated to 
+//  grant this special exception for their modified versions; it is their 
+//  choice whether to do so. The GNU Lesser General Public License gives 
+//  permission to release a modified version without this exception; this 
+//  exception also makes it possible to release a modified version which 
+//  carries forward this exception.
+
+```
+
+##DETAILED EXPLANATION##
+
+OK, here are the grisly details.
+
+The licenses and agreements that we need to comply with are:
+
+1. GitHub's terms of use.
+
+2. AppVeyor's terms of use.
+
+3. The license used by the Steinberg VST2 SDK (not the VST3 SDK, I will explain this).
+
+4. Csound's LGPL v2.1 license, which specifically includes the clause "or (at your option) any later version."
+
+I will now explain these in more detail.
+
+Regarding AppVeyor, its terms of service require only that we truthfully convey to AppVeyor the copyrights and licenses to all code built on AppVeyor. This automatically happens when AppVeyor clones Csound's Git repository. So, we do this.
+
+Regarding GitHub, its terms of service similarly make no requirements as to licensing of hosted code, but recommends that hosted projects use an open source license. We do that.
+
+Csound does not use the GPLv3 license, but rather the LGPL v2.1 license. GPL is "free software," LGPL is "open source." The GPL license is compatible with the LGPL v2.1 license if and and only if the LGPL license includes the wording "or (at your option) any later version." Our license does include this wording. So Csound itself is compatible with the GPL v3 -- if we convey the Csound code under GPL v3. The LGPL allows LGPL or proprietary software to use the Csound library. The situation might be different if CsoundVST and the vst4cs opcodes were GPL. The language for dynamic linking in the GPL is imprecise and contested. Both CsoundVST and vst4cs are not shared libraries that are linked at compile time, they are dynamically loaded and linked at run time. Opinions differ on whether this is permitted. If not, then CsoundVST under GPL 3 could not be loaded by GPL-incompatible hosts.
+
+NOTE: We have to worry not only about Csound -- but also about a lot of third party dependencies such as libsndfile!
+    
+Steinberg's license for the VST SDK is different for different files in the SDK. The VST SDK distribution comes in two directories: VST2_SDK and VST3_SDK. EACH OF THESE HAS ITS OWN LICENSE! Specifically, the VST2_SDK files are licensed thus:
+
+//-----------------------------------------------------------------------------
+// LICENSE
+// (c) 2017, Steinberg Media Technologies GmbH, All Rights Reserved
+//-----------------------------------------------------------------------------
+// This Software Development Kit may not be distributed in parts or its entirety  
+// without prior written agreement by Steinberg Media Technologies GmbH. 
+// This SDK must not be used to re-engineer or manipulate any technology used  
+// in any Steinberg or Third-party application or software module, 
+// unless permitted by law.
+// Neither the name of the Steinberg Media Technologies nor the names of its
+// contributors may be used to endorse or promote products derived from this 
+// software without specific prior written permission.
+// 
+// THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+// IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 
+// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
+// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+// OF THE POSSIBILITY OF SUCH DAMAGE.
+//----------------------------------------------------------------------------------
+
+The VST3_SDK files are licensed thus:
+
+//-----------------------------------------------------------------------------
+// LICENSE
+// (c) 2017, Steinberg Media Technologies GmbH, All Rights Reserved
+//-----------------------------------------------------------------------------
+This license applies only to files referencing this license,
+for other files of the Software Development Kit the respective embedded license text
+is applicable. The license can be found at: www.steinberg.net/sdklicenses_vst3
+
+This Software Development Kit is licensed under the terms of the Steinberg VST3 License,
+or alternatively under the terms of the General Public License (GPL) Version 3.
+You may use the Software Development Kit according to either of these licenses as it is
+most appropriate for your project on a case-by-case basis (commercial or not).
+
+a) Proprietary Steinberg VST3 License
+The Software Development Kit may not be distributed in parts or its entirety
+without prior written agreement by Steinberg Media Technologies GmbH.
+The SDK must not be used to re-engineer or manipulate any technology used
+in any Steinberg or Third-party application or software module,
+unless permitted by law.
+Neither the name of the Steinberg Media Technologies GmbH nor the names of its
+contributors may be used to endorse or promote products derived from this
+software without specific prior written permission.
+Before publishing a software under the proprietary license, you need to obtain a copy
+of the License Agreement signed by Steinberg Media Technologies GmbH.
+The Steinberg VST SDK License Agreement can be found at:
+www.steinberg.net/en/company/developers.html
+
+THE SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+b) General Public License (GPL) Version 3
+Details of these licenses can be found at: www.gnu.org/licenses/gpl-3.0.html
+//----------------------------------------------------------------------------------
+
+Csound's VST features do not use any files in VST3_SDK, but only files in VST2_SDK. I did not sign the agreement for VST SDK 3, because I do not use it. I do adhere to the terms of the VST SDK 2.4, which I registered for and downloaded from Steinberg a long time ago.
+
+Please note, we COULD license CsoundVST and the vst4cs opcodes as GPL v3 because of the "any later version" clause of our LPGL v2.1 license, thus complying with the VST3 SDK GPL v3 license, but that would require porting both CsoundVST and the vst4cs opcodes to use the VST3 SDK.
+
+So the main question is whether Csound's LGPL v2.1 license permits us to host and distribute the existing CsoundVST and vst4cs binaries. The issue is complex, and the law does not appear to be completely settled.
+
+As background, be aware that CsoundVST is a "derivative work" of both the csnd6 library and the VST2 SDK, because it incorporates source code from both. CsoundVST is NOT a derivative work of the csound64 library, because it does not incorporate source code from it, but only uses the csound64 library by dynamic linking. Opinions differ as to dynamic linking, but a strong argument can be made that a program that uses a LGPL v2.1 library by dynamic linking is not a derivative work. Case law leans in that direction, but has so far not squarely focused on this issue.
+
+The vst4cs opcodes are NOT a derivative work of any part of Csound, but ARE a derivative work of the VST2 SDK. The vst4cs source code, however, like Csound, is LGPL v2.1.
+
+The question then is whether the LGPL v2.1 permits us to host the binaries for CsoundVST and the vst4cs opcodes on AppVeyor and/or GitHub. At first sight, the fact that CsoundVST is a derivative work of the csnd6 library but incorporates proprietary code, and the fact that the vst4cs opcodes are themselves LGPL v2.1 but incorporate proprietary code, would seem to mean "no." 
+
+However, NOT SO FAST, the LGPL v2.1 license includes a clause to deal with this kind of situation. My comments are enclosed in ***.
+
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. *** THIS IS THE KEY. We do this. ***
+
+You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
+
+a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
+b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. *** This is true of Csound, CsoundVST, and vst4cs. ***
+c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. *** We do this for everything but the VST2 SDK; and we also instruct users how to copy the VST2 SDK from Steinberg. There are a number of other VST plugins on GitHub, with both open source licenses and free software licenses, that do just this, including the widely used JUCE audio application framework, which is GPL v3. ***
+e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. *** We are not in this kind of contradiction, because we DO comply with the VST2 SDK license. ***
+
+The AppVeyor.yml file is set up to download the VST SDK 3. I believe that we may download the VST SDK 3, not use any of the SDK 3 specific files, use only the SDK 2.4 files, and thus be bound only by the terms of the SDK 2.4 license.
+
+So I think we are OK to build VST features for Csound on AppVeyor using only the VST SDK 2.4 files, and distribute the resulting binaries, without violating Steinberg's license. I don't think Steinberg is being very clear about this situation, because they want everyone to ask permission and thus explicitly give up liability claims against Steinberg. I would be fine with doing that, I just don't think it's necessary.
+
+As far as Csound's LGPL v2.1 license is concerned, I believe we are OK under clause 6 of the license, but we could also license CsoundVST and the vst4cs opcodes under GPL v3 and then port them to use VST SDK3.
+
+##OTHER PROJECTS##
+
+To gain more understanding of the licensing issues, I have looked over a variety of other free software and open source projects for VST plugins and hosts.
+
+Hermann Seib's VSTHOST http://www.hermannseib.com/english/vsthost.htm is LGPL v2.1 with the "later version" option and thus is completely compatible with Csound. That's good, because vst4cs is based on vsthost. It is ditributed both as source (without the VST2 SDK) and as a compiled program from Seib's Web site. However, according to the GPL, we need to get permission from Seib to modify our license as I have proposed. Update: Seib just gave his permission; I have appended his email below.
+
+The Pure Data extension `vst~`, which serves the same purpose as vst4cs, hosted at https://sourceforge.net/p/pure-data/svn/HEAD/tree/trunk/, simply incorporates minimal VST2 SDK files attributed to Steinberg, but without license or explanation. Pure Data itself uses the BSD license which is less restrictive than LGPL v2.1.
+
+Psycle at https://sourceforge.net/projects/psycle/ is GPL v2 but uses a later version of Seib's VSTHost that is GPL v2.1.
+
+Some of the `vst~` external is based on code from http://iem.kug.ac.at/~jams/, but currently this page is inaccessible.
+
+Qtractor at https://sourceforge.net/projects/qtractor/ contains the VeSTige aeffect.h header which appears to reverse engineer the VST2 SDK. However, the Qtractor README says it uses Steinberg's VST2 SDK.
+
+The JUCE framework, which contains features similar to both CsoundVST and vst4cs, appears to use the Steinberg VST3 SDK which appears to be consistent with the JUCE license, especially if GPL v3.
+
+The LMMS sequencer is GPL v2. It appears to contain the VeSTige emulation of the VST2 SDK which is GPL v2.
+
+Paul Nasca's http://zynaddsubfx.sourceforge.net/ now provides VST support via something called DPF, which I think stands for Distrho Plugin Framework or something like that. The DPF directory in the ZynAddSubFX repository is empty. 
+
+The DPF uses VeSTige from Ardour. The DPF uses the ISC license, which is very permissive open source. But it can also use the VST2 SDK.
+
+Ardour at https://github.com/Ardour/ardour uses the GPL v2. Ardour also uses VeSTige from LMMS which is GPL v2.
+
+WDL-OL at https://github.com/olilarkin/wdl-ol is an audio plugin development framework that uses, among other libraries, the VST SDK. WDL-OS uses the Cockos WDL License which is a very permissive open source license. The programmer must download the VST SDK from Steinberg and also copy the most basic VST2 SDK files. NOTE: It might make sense to use this for Csound and gain interoperability with a number of plugin formats.
+
+Dexed at https://github.com/asb2m10/dexed uses the JUCE plugin wrapper and also is GPL v3.
+
+vst2413 at https://github.com/keijiro/vst2413 has no license information. It appears to use the VST2 SDK. By the way, it sounds great. Releases include binaries.
+
+rust-vst2 at https://github.com/overdrivenpotato/rust-vst2 is a "VST 2.4 API implementation in rust. Create plugins or hosts." Uses the MIT license. The implication is that overdrivepotato has either ported or reverse engineered the VST2 SDK.
+
+amsynth at https://github.com/amsynth/amsynth. It uses GPL v2 and also uses VeSTige.
+
+VOSIMSynth at https://github.com/austensatterlee/VOSIMSynth uses GPL v3. The programmer must download the VST SDK from Steinberg and copy some VST2 SDK files. 
+
+###TRENDS###
+
+VeSTige is getting a lot of use, but is GPL v2.
+
+JUCE is getting even more use, but makes projects GPL v3.
+
+There are a number of projects that require the programmer to download and install VST2 SDK sources before compiling, as I propose.
+
+##APPENDIX##
+
+Here is the full text of my email to, and response from, Hermann Seib:
+
+<him at hermannseib.com>
+9:58 AM (24 minutes ago)
+
+ to me 
+Legal considerations always give me a headache.
+
+Originally, my open-source VSTHost code contained no license at all - a "do what the fuck you want with it" license, so to speak. Which was taken advantage of, so I added a license; the sole intention of that was to add an explicit "... but don't pretend it's your code and make others pay for it!".
+
+So ... your license below looks good to me. I had no problem when Psycle included parts of VSTHost, I don't have a problem with CSound including parts of it.
+
+As long as it's understood that this license doesn't cover my own VSTHost code, i.e., it only covers your version and everything that's derived from it, you have my expressed permission.
+
+I hope you don't need that in hand-written form, signed with blood :-)
+
+Bye,
+
+  Hermann
+
+
+Am 23.09.2017 um 03:59 schrieb Michael Gogins:
+I am a developer and maintainer of Csound, a widely used programmable
+software synthesizer, see http://csound.github.io/ and
+https://github.com/csound/csound. I am writing this to ask your
+permission to add an exception to our licensing tems for code that we
+have borrowed from your VSTHost code.
+
+Currently, Csound contains vst4cs, a set of opcodes for csound, that
+enable Csound to host VST instruments and effects. The sources for
+vst4cs, in https://github.com/csound/csound/tree/develop/Opcodes/vst4cs,
+are based in part on your VSTHost sources. The Csound license is LGPL
+v2.1 with the "either version 2.1 of the License, or (at your option)
+any later version" clause. I am currently the maintainer of vst4cs.
+
+By the way, thank you for creating this excellent project, which we
+use not only as the basis for vst4cs, but also for testing the VST
+plugin version of Csound, CsoundVST.
+
+Of course, we do not redistribute the VST2 SDK. To build vst4cs
+requires the developer also to download the VST2 SDK from Steinberg.
+The licensing situation then becomes a little tricky. According to the
+GPL, we are permitted to modify the LGPL v2.1 text to permit other
+users of vst2cs to also use the VST2 SDK and still keep the LGPL v2.1
+license. However, we need the permission of the "original author" in
+order to make this change. Our license notice would then read:
+
+//  vst4cs: VST HOST OPCODES FOR CSOUND
+//
+//  Uses code by Hermann Seib from his Vst Host program
+//  and from the vst~ object by Thomas Grill,
+//  which in turn borrows from the Psycle tracker.
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Andres Cabrera, Michael Gogins
+//
+//  The vst4cs library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The vst4cs library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with The vst4cs library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs, 
+//  including the Csound developers and Hermann Seib, the original author of 
+//  VSTHost, give you permission to combine vst4cs with free software programs 
+//  or libraries that are released under the GNU LGPL and with code included 
+//  in the standard release of the VST SDK version 2 under the terms of the 
+//  license stated in the VST SDK version 2 files. You may copy and distribute 
+//  such a system following the terms of the GNU LGPL for vst4cs and the 
+//  licenses of the other code concerned. The source code for the VST SDK 
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
+May we have your permission to make this our license for our code
+which is based on your code?
+
+Thank you for your consideration,
+Michael Gogins
+
+
+-----------------------------------------------------
+Michael Gogins
+Irreducible Productions
+http://michaelgogins.tumblr.com
+Michael dot Gogins at gmail dot com
+
diff --git a/Opcodes/vst4cs/readme.txt b/Opcodes/vst4cs/readme.txt
index 37864ac..9e31697 100644
--- a/Opcodes/vst4cs/readme.txt
+++ b/Opcodes/vst4cs/readme.txt
@@ -3,8 +3,12 @@ vst4cs
 
 VST HOST OPCODES FOR CSOUND
 
-Uses code from Hermann Seib's VST Host and Thomas Grill's vst~ object,
-which in turn borrows from the Psycle tracker.
+vst4cs: VST HOST OPCODES FOR CSOUND
+
+Uses code by Hermann Seib from his VSTHost program and from the vst~ 
+object by Thomas Grill (no license), which in turn borrows from the Psycle 
+tracker (also based on VSTHost).
+
 VST is a trademark of Steinberg Media Technologies GmbH.
 VST Plug-In Technology by Steinberg.
 
@@ -25,7 +29,29 @@ License along with The vst4cs library; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 02111-1307 USA
 
-Current version: 0.1alpha
+Linking vst4cs statically or dynamically with other modules is making a
+combined work based on vst4cs. Thus, the terms and conditions of the GNU
+Lesser General Public License cover the whole combination.
+
+In addition, as a special exception, the copyright holders of vst4cs, 
+including the Csound developers and Hermann Seib, the original author of 
+VSTHost, give you permission to combine vst4cs with free software programs 
+or libraries that are released under the GNU LGPL and with code included 
+in the standard release of the VST SDK version 2 under the terms of the 
+license stated in the VST SDK version 2 files. You may copy and distribute 
+such a system following the terms of the GNU LGPL for vst4cs and the 
+licenses of the other code concerned. The source code for the VST SDK 
+version 2 is available in the VST SDK hosted at
+https://github.com/steinbergmedia/vst3sdk.
+
+Note that people who make modified versions of vst4cs are not obligated to
+grant this special exception for their modified versions; it is their
+choice whether to do so. The GNU Lesser General Public License gives
+permission to release a modified version without this exception; this
+exception also makes it possible to release a modified version which
+carries forward this exception.
+
+Current version: 1.0
 
 Installing: Copy vst4cs.dll into your plugin opcodes directory.
 Copy documentation and source where it suits you.
diff --git a/Opcodes/vst4cs/src/fxbank.cpp b/Opcodes/vst4cs/src/fxbank.cpp
index 7a99b72..a33345d 100644
--- a/Opcodes/vst4cs/src/fxbank.cpp
+++ b/Opcodes/vst4cs/src/fxbank.cpp
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,6 +23,29 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #ifdef _WIN32
   #pragma warning(disable:4786) //gab
 #endif
@@ -433,4 +457,3 @@ fxProgram * CFxBank::GetProgram(int nProgNum)
 #endif
     return pProg;
 }
-
diff --git a/Opcodes/vst4cs/src/fxbank.h b/Opcodes/vst4cs/src/fxbank.h
index 4c583f8..3624d60 100644
--- a/Opcodes/vst4cs/src/fxbank.h
+++ b/Opcodes/vst4cs/src/fxbank.h
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,6 +23,28 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
 
 #ifndef FXBANK_H
 #define FXBANK_H
diff --git a/Opcodes/vst4cs/src/vst4cs.cpp b/Opcodes/vst4cs/src/vst4cs.cpp
index c7577ea..b4e98a4 100644
--- a/Opcodes/vst4cs/src/vst4cs.cpp
+++ b/Opcodes/vst4cs/src/vst4cs.cpp
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,6 +23,30 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
+// Linux only: #define CSOUND_LIFECYCLE_DEBUG
 
 #ifdef _WIN32
 #pragma warning(disable:4786) //gab
@@ -32,13 +57,20 @@
 #include <vector>
 #include <string>
 #include "vst4cs.h"
+#include <OpcodeBase.hpp>
 #include "vsthost.h"
 #include "fxbank.h"
 
+#if defined(CSOUND_LIFECYCLE_DEBUG)
+#include <unistd.h>
+#include <sys/syscall.h>
+#include <sys/types.h>
+#endif
+
 // These two collections replace similar ones that used to be in widglobals.h.
 
-static std::vector<VSTPlugin*> *vstPlugEditors = 0;
-static std::vector<VSTPlugin*> *vstPlugins = 0;
+//typedef std::vector<VSTEDIT*> vstPlugEditors_t;
+typedef std::vector<VSTPlugin*> vstPlugins_t;
 
 extern "C" {
     std::string version = "0.2";
@@ -55,16 +87,18 @@ extern "C" {
     {
         VSTINIT *p = (VSTINIT *) data;
         VSTPlugin *plugin = new VSTPlugin(csound);
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         *p->iVSThandle = (MYFLT) vstPlugins->size();
         vstPlugins->push_back(plugin);
         if ((int) vstPlugins->size() == 1) {
-            plugin->Log("============================================================\n");
-            plugin->Log("vst4cs version %s by Andres Cabrera and Michael Gogins\n",
+          plugin->Log("============================================================\n");
+          plugin->Log("vst4cs version %s by Andres Cabrera and Michael Gogins\n",
                         version.c_str());
-            plugin->Log("Using code from H. Seib's VstHost and T. Grill's vst~ object\n");
-            plugin->Log("VST is a trademark of Steinberg Media Technologies GmbH\n");
-            plugin->Log("VST Plug-In Technology by Steinberg\n");
-            plugin->Log("============================================================\n");
+          plugin->Log("Using code from H. Seib's VstHost and T. Grill's vst~ object\n");
+          plugin->Log("VST is a trademark of Steinberg Media Technologies GmbH\n");
+          plugin->Log("VST Plug-In Technology by Steinberg\n");
+          plugin->Log("============================================================\n");
         }
         char vstplugname[0x100];
         strncpy(vstplugname,((STRINGDAT *)p->iplugin)->data, MAXNAME-1);
@@ -72,12 +106,12 @@ extern "C" {
         path_convert(vstplugname);
 #endif
         if (plugin->Instantiate(vstplugname)) {
-            csound->InitError(csound, "vstinit: Error loading effect.");
-            csound->LongJmp(csound, 1);
+          return csound->InitError(csound, Str("vstinit: Error loading effect."));
+          csound->LongJmp(csound, 1);
         }
         plugin->Init();
         if (*p->iverbose) {
-            plugin->Info();
+          plugin->Info();
         }
         return OK;
     }
@@ -85,6 +119,8 @@ extern "C" {
     static int vstinfo(CSOUND *csound, void *data)
     {
         VSTINFO *p = (VSTINFO *) data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
         plugin->Info();
         return OK;
@@ -93,12 +129,14 @@ extern "C" {
     static int vstaudio_init(CSOUND *csound, void *data)
     {
         VSTAUDIO *p = (VSTAUDIO *) data;
-
         p->opcodeInChannels = (size_t) (csound->GetInputArgCnt(data) - 1);
         if (p->opcodeInChannels > 32) {
-            csound->InitError(csound, "vstaudio: too many input args");
+          return csound->InitError(csound, Str("vstaudio: too many input args"));
         }
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         plugin->Debug("vstaudio_init.\n");
         p->framesPerBlock = csound->GetKsmps(csound);
         p->pluginInChannels  = (size_t) plugin->getNumInputs();
@@ -111,7 +149,7 @@ extern "C" {
     {
         VSTAUDIO *p = (VSTAUDIO *) data;
         size_t  i, j;
-        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        VSTPlugin *plugin = p->vstplugin;
         uint32_t offset = p->h.insdshead->ksmps_offset;
         for(j=0; j < p->pluginOutChannels; j++) {
             memset(p->aouts[j], '\0', offset*sizeof(MYFLT));
@@ -134,7 +172,8 @@ extern "C" {
                             p->framesPerBlock);
             for (j = 0; j < p->pluginOutChannels && j < p->opcodeOutChannels; j++)
                 for (i = offset; i < p->framesPerBlock; i++) {
-                    p->aouts[j][i] = (MYFLT) plugin->outputs_[j][i] * csound->Get0dBFS(csound);
+                    p->aouts[j][i] =
+                      (MYFLT) plugin->outputs_[j][i] * csound->Get0dBFS(csound);
                 }
             for ( ; j < p->opcodeOutChannels; j++)
                 for (i = 0; i < p->framesPerBlock; i++) {
@@ -156,8 +195,8 @@ extern "C" {
     static int vstaudiog(CSOUND *csound, void *data)
     {
         VSTAUDIO *p = (VSTAUDIO *) data;
+        VSTPlugin *plugin = p->vstplugin;
         size_t  i, j;
-        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
         uint32_t offset = p->h.insdshead->ksmps_offset;
         for(j=0; j < p->pluginOutChannels; j++) {
             memset(p->aouts[j], '\0', offset*sizeof(MYFLT));
@@ -178,7 +217,8 @@ extern "C" {
                         p->framesPerBlock);
         for (j = 0; j < p->pluginOutChannels && j < p->opcodeOutChannels; j++)
             for (i = offset; i < p->framesPerBlock; i++) {
-                p->aouts[j][i] = (MYFLT) plugin->outputs_[j][i] * csound->Get0dBFS(csound);
+                p->aouts[j][i] =
+                  (MYFLT) plugin->outputs_[j][i] * csound->Get0dBFS(csound);
             }
         for ( ; j < p->opcodeOutChannels; j++)
             for (i = 0; i < p->framesPerBlock; i++) {
@@ -191,9 +231,10 @@ extern "C" {
     static int vstmidiout_init(CSOUND *csound, void *data)
     {
         VSTMIDIOUT *p = (VSTMIDIOUT *) data;
-        VSTPlugin *plugin;
-        p->vstHandle = (size_t) *p->iVSThandle;
-        plugin = (*vstPlugins)[p->vstHandle];
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
+        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         plugin->Debug("vstmidiout_init.\n");
         p->prvMidiData = 0;
         return OK;
@@ -202,7 +243,7 @@ extern "C" {
     static int vstmidiout(CSOUND *csound, void *data)
     {
         VSTMIDIOUT *p = (VSTMIDIOUT *) data;
-        VSTPlugin *plugin;
+        VSTPlugin *plugin = p->vstplugin;
         int     st, ch, d1, d2, midiData;
         st = (int) *(p->kstatus);
         if (st < 128 || st >= 240) {
@@ -231,7 +272,6 @@ extern "C" {
             return OK;
         }
         p->prvMidiData = midiData;
-        plugin = (*vstPlugins)[p->vstHandle];
         plugin->Debug("vstmidiout. kstatus = %i kdata1 = %i kdata2 = %i"
                       "--- mididata = %i\n",
                       (int) *(p->kstatus),
@@ -244,13 +284,18 @@ extern "C" {
 
     static int vstparamget_init(CSOUND *csound, void *data)
     {
+        VSTPARAMGET *p = (VSTPARAMGET *) data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
+        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         return OK;
     }
 
     static int vstparamget(CSOUND *csound, void *data)
     {
         VSTPARAMGET *p = (VSTPARAMGET *) data;
-        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        VSTPlugin *plugin = p->vstplugin;
         plugin->Debug("vstparamset(%d).\n", int(*p->kparam));
         *p->kvalue = plugin->GetParamValue(int(*p->kparam));
         if (*(p->kvalue) == FL(-1.0)) {
@@ -262,7 +307,10 @@ extern "C" {
     static int vstparamset_init(CSOUND *csound, void *data)
     {
         VSTPARAMSET *p = (VSTPARAMSET *) data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         plugin->Debug("vstparamset_init.\n");
         p->oldkparam = 0;
         p->oldkvalue = 0;
@@ -272,7 +320,7 @@ extern "C" {
     static int vstparamset(CSOUND *csound, void *data)
     {
         VSTPARAMSET *p = (VSTPARAMSET *) data;
-        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        VSTPlugin *plugin = p->vstplugin;
         if (*p->kparam == p->oldkparam && *p->kvalue == p->oldkvalue) {
             return OK;
         }
@@ -286,26 +334,29 @@ extern "C" {
     static int vstbankload(CSOUND *csound, void *data)
     {
         VSTBANKLOAD *p = (VSTBANKLOAD *) data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         void    *dummyPointer = 0;
         CFxBank fxBank((char *) p->ibank);          /* load the bank    */
         plugin->Dispatch(effBeginLoadBank,
                          0, 0, (VstPatchChunkInfo *) fxBank.GetChunk(), 0);
         if (plugin->Dispatch(effBeginLoadBank,
                              0, 0, (VstPatchChunkInfo *) fxBank.GetChunk(), 0)) {
-            csound->InitError(csound, "Error: BeginLoadBank.");
-            return NOTOK;
+          return csound->InitError(csound, Str("Error: BeginLoadBank."));
         }
         if (fxBank.IsLoaded()) {
-            if (plugin->aeffect->uniqueID != fxBank.GetFxID()) {
-                csound->InitError(csound, "Loaded bank ID doesn't match plug-in ID.");
-                return NOTOK;
+          if (plugin->aeffect->uniqueID != fxBank.GetFxID()) {
+            return
+              csound->InitError(csound,
+                                Str("Loaded bank ID doesn't match plug-in ID."));
             }
             if (fxBank.IsChunk()) {
-                if (!(plugin->aeffect->flags & effFlagsProgramChunks)) {
-                    csound->InitError(csound, "Loaded bank contains a chunk format "
-                                      "that the effect cannot handle.");
-                    return NOTOK;
+              if (!(plugin->aeffect->flags & effFlagsProgramChunks)) {
+                return csound->InitError(csound,
+                                         Str("Loaded bank contains a chunk format "
+                                             "that the effect cannot handle."));
                 }
                 plugin->Dispatch(effSetChunk, 0, fxBank.GetChunkSize(),
                                  fxBank.GetChunk(), 0); // isPreset = 0
@@ -325,8 +376,9 @@ extern "C" {
                 plugin->Dispatch(effSetProgram, 0, cProg, dummyPointer, 0);
             }
         } else {
-            csound->InitError(csound, "Problem loading bank.");
-            return NOTOK;           /* check if error loading */
+          return
+            csound->InitError(csound,
+                              Str("Problem loading bank.")); /* check if error loading */
         }
         plugin->Log("Bank loaded OK.\n");
         return OK;
@@ -336,10 +388,14 @@ extern "C" {
     {
         // The changes here are part of an attempt to map 0 to 1 and others
         VSTPROGSET *p = (VSTPROGSET *) data;
-        int program = (int)*p->iprogram;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
+        int program = (int)*p->iprogram;
         if (program<=0) {
-            csound->Message(csound, "VSTprogset: Program %d treated as 1\n", program);
+          csound->Message(csound,
+                          Str("VSTprogset: Program %d treated as 1\n"), program);
             program = 1;
         }
         plugin->SetCurrentProgram(program);
@@ -349,16 +405,22 @@ extern "C" {
     static int vstedit_init(CSOUND *csound, void *data)
     {
         VSTEDIT *p = (VSTEDIT *) data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         plugin->OpenEditor();
-        vstPlugEditors->push_back(plugin); //gab
+        //~ vstPlugEditors->push_back(plugin); //gab
         return OK;
     }
 
     static int vstSetTempo(CSOUND *csound, void *data)
     {
         VSTTEMPO *p = (VSTTEMPO *)data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         plugin->vstTimeInfo.tempo = *p->tempo;
         return OK;
     }
@@ -366,7 +428,10 @@ extern "C" {
     int vstbanksave(CSOUND *csound, void *data)
     {
         VSTBANKLOAD *p = (VSTBANKLOAD *)data;
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         char bankname[512]; //gab
         strcpy(bankname, (char *) p->ibank);          /*   use that         */
         if (!plugin) {
@@ -396,8 +461,8 @@ extern "C" {
                     plugin->EffGetProgramName(szName);
                     b.SetProgramName(i, szName);
                     for (j = 0; j < nParms; j++)
-                        b.SetProgParm(i, j,
-                                      plugin->aeffect->getParameter(plugin->aeffect,j));
+                      b.SetProgParm(i, j,
+                                    plugin->aeffect->getParameter(plugin->aeffect,j));
                 }
                 plugin->EffSetProgram(cProg);
             }
@@ -436,20 +501,22 @@ extern "C" {
         MYFLT *iKey;
         MYFLT *iVelocity;
         MYFLT *iDuration;
-        VSTPlugin *vstPlugin;
         MYFLT startTime;
         MYFLT offTime;
         int channel;
         int key;
         int velocity;
         int on;
+        VSTPlugin *vstplugin;
     } VSTNOTEOUT;
 
     static int vstnote_init(CSOUND *csound, void *data)
     {
         VSTNOTEOUT *p = (VSTNOTEOUT *)data;
-        size_t vstHandle = (size_t) *p->iVSThandle;
-        p->vstPlugin = (*vstPlugins)[vstHandle];
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
+        VSTPlugin *plugin = (*vstPlugins)[(size_t) *p->iVSThandle];
+        p->vstplugin = plugin;
         p->startTime = getCurrentTime(csound);
         double onTime = double(p->h.insdshead->p2.value);
         double deltaTime = onTime - getCurrentTime(csound);
@@ -463,7 +530,8 @@ extern "C" {
             // In case of real-time performance with indefinite p3...
         } else if (*p->iDuration == FL(0.0)) {
             if (csound->GetDebug(csound)) {
-                csound->Message(csound, "vstnote_init: not scheduling 0 duration note.\n");
+              csound->Message(csound,
+                              Str("vstnote_init: not scheduling 0 duration note.\n"));
             }
             return OK;
         } else {
@@ -477,7 +545,7 @@ extern "C" {
         int cents = int( ( ( double(*p->iKey) - double(p->key) ) * double(100.0) ) +
                          double(0.5) );
         p->velocity = int(*p->iVelocity) & 0x7f;
-        p->vstPlugin->AddMIDI(144 | p->channel | (p->key << 8) | (p->velocity << 16),
+        p->vstplugin->AddMIDI(144 | p->channel | (p->key << 8) | (p->velocity << 16),
                               deltaFrames, cents);
         // Ensure that the opcode instance is still active when we are scheduled
         // to turn the note off!
@@ -509,7 +577,7 @@ extern "C" {
                 if (deltaTime > 0) {
                     deltaFrames = int(deltaTime / csound->GetSr(csound));
                 }
-                p->vstPlugin->AddMIDI(128 | p->channel | (p->key << 8) | (0 << 16),
+                p->vstplugin->AddMIDI(128 | p->channel | (p->key << 8) | (0 << 16),
                                       deltaFrames, 0);
                 p->on = false;
                 if (csound->GetDebug(csound)) {
@@ -568,13 +636,24 @@ extern "C" {
 
     PUBLIC int csoundModuleCreate(CSOUND *csound)
     {
-        vstPlugEditors = new std::vector<VSTPlugin*>;
-        vstPlugins = new std::vector<VSTPlugin*>;
+        // It is necessary to store global references to plugins and editors from Seib's code
+        // so that their memory can be freed when the opcode module is destroyed.
+
+        #if defined(CSOUND_LIFECYCLE_DEBUG)
+        csound->Message(csound, "csoundModuleCreate: csound: %p thread: %d\n", csound, syscall(SYS_gettid));
+        #endif
+
+        int result = 0;
+        vstPlugins_t *vstPlugins = new vstPlugins_t;
+        result = csound::CreateGlobalPointer (csound, "vstPlugins", vstPlugins);
         return 0;
     }
 
     PUBLIC int csoundModuleInit(CSOUND *csound)
     {
+        #if defined(CSOUND_LIFECYCLE_DEBUG)
+        csound->Message(csound, "csoundModuleInit: csound: %p thread: %d\n", csound, syscall(SYS_gettid));
+        #endif
         OENTRY  *ep = (OENTRY *) &(localops[0]);
         int     err = 0;
         while (ep->opname != NULL) {
@@ -595,6 +674,11 @@ extern "C" {
 
     PUBLIC int csoundModuleDestroy(CSOUND *csound)
     {
+        #if defined(CSOUND_LIFECYCLE_DEBUG)
+        csound->Message(csound, "csoundModuleDestroy: csound: %p thread: %d\n", csound, syscall(SYS_gettid));
+        #endif
+        vstPlugins_t *vstPlugins = 0;
+        csound::QueryGlobalPointer(csound, "vstPlugins", vstPlugins);
         for (size_t i = 0, n = vstPlugins->size(); i < n; ++i) {
             if ((*vstPlugins)[i]) {
                 delete (*vstPlugins)[i];
@@ -603,14 +687,16 @@ extern "C" {
         }
         delete vstPlugins;
         vstPlugins = 0;
-        for (size_t i = 0, n = vstPlugEditors->size(); i < n; ++i) {
-            if ((*vstPlugEditors)[i]) {
-                delete (*vstPlugEditors)[i];
-            }
-            vstPlugEditors->clear();
-        }
-        delete vstPlugEditors;
-        vstPlugEditors = 0;
+        //~ vstPlugins_t *vstPlugEditors = 0;
+        //~ csound::QueryGlobalPointer(csound, "vstPlugEditors", vstPlugEditors);
+        //~ for (size_t i = 0, n = vstPlugEditors->size(); i < n; ++i) {
+            //~ if ((*vstPlugEditors)[i]) {
+                //~ delete (*vstPlugEditors)[i];
+            //~ }
+            //~ vstPlugEditors->clear();
+        //~ }
+        //~ delete vstPlugEditors;
+        //~ vstPlugEditors = 0;
         return 0;
     }
 }  // extern "C"
diff --git a/Opcodes/vst4cs/src/vst4cs.h b/Opcodes/vst4cs/src/vst4cs.h
index 681434b..64663ad 100644
--- a/Opcodes/vst4cs/src/vst4cs.h
+++ b/Opcodes/vst4cs/src/vst4cs.h
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,24 +23,56 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
 
 #ifndef VST4CS_H
 #define VST4CS_H
 
 #include "csdl.h"
 
+class VSTPlugin;
+
+// In all of these, sizeof(MYFLT) is not necessarily equal to or greater than
+// sizeof(VSTPlugin *), hence type casting can not be used and a table of
+// handles must be used.
+
 typedef struct VSTINIT_ {
     OPDS    h;
     // Inputs.
     MYFLT   *iVSThandle;
     MYFLT   *iplugin;
     MYFLT   *iverbose;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTINIT;
 
 typedef struct VSTINFO_ {
     OPDS    h;
     // Inputs.
     MYFLT   *iVSThandle;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTINFO;
 
 typedef struct VSTAUDIO_ {
@@ -55,6 +88,7 @@ typedef struct VSTAUDIO_ {
     size_t  pluginOutChannels;
     size_t  opcodeInChannels;
     size_t  opcodeOutChannels;
+    VSTPlugin *vstplugin;
 } VSTAUDIO;
 
 typedef struct VSTNOTE_ {
@@ -70,6 +104,7 @@ typedef struct VSTNOTE_ {
     int     chn;
     int     note;
     size_t  framesRemaining;
+    VSTPlugin *vstplugin;
 } VSTNOTE;
 
 typedef struct VSTMIDIOUT_ {
@@ -83,6 +118,7 @@ typedef struct VSTMIDIOUT_ {
     // State.
     size_t  vstHandle;
     int     prvMidiData;
+    VSTPlugin *vstplugin;
 } VSTMIDIOUT;
 
 typedef struct VSTPARAMGET_ {
@@ -92,6 +128,8 @@ typedef struct VSTPARAMGET_ {
     // Intputs.
     MYFLT   *iVSThandle;
     MYFLT   *kparam;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTPARAMGET;
 
 typedef struct VSTPARAMSET_ {
@@ -103,6 +141,7 @@ typedef struct VSTPARAMSET_ {
     // State.
     MYFLT   oldkparam;
     MYFLT   oldkvalue;
+    VSTPlugin *vstplugin;
 } VSTPARAMSET;
 
 typedef struct VSTBANKLOAD_ {
@@ -110,6 +149,8 @@ typedef struct VSTBANKLOAD_ {
     // Inputs.
     MYFLT   *iVSThandle;
     MYFLT   *ibank;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTBANKLOAD;
 
 typedef struct VSTPROGSET_ {
@@ -117,19 +158,25 @@ typedef struct VSTPROGSET_ {
     // Inputs.
     MYFLT   *iVSThandle;
     MYFLT   *iprogram;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTPROGSET;
 
 typedef struct VSTEDIT_ {
     OPDS    h;
     // Inputs.
     MYFLT   *iVSThandle;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTEDIT;
 
 typedef struct VSTTEMPO_ { //gab
-        OPDS h;
-        // Inputs.
-        MYFLT *tempo,*iVSThandle;
+    OPDS h;
+    // Inputs.
+    MYFLT *tempo;
+    MYFLT *iVSThandle;
+    // State.
+    VSTPlugin *vstplugin;
 } VSTTEMPO;
 
 #endif
-
diff --git a/Opcodes/vst4cs/src/vsthost.cpp b/Opcodes/vst4cs/src/vsthost.cpp
index b5aab66..4315861 100644
--- a/Opcodes/vst4cs/src/vsthost.cpp
+++ b/Opcodes/vst4cs/src/vsthost.cpp
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,6 +23,28 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
 
 #include "vsthost.h"
 #include <cmath>
@@ -48,10 +71,11 @@
 
 void VSTPlugin::initializeOpcodes()
 {
-    if (opcodeRefCount()) {
-      opcodeRefCount()++;
-      return;
+    static bool opcodes_initialized = false;
+    if (opcodes_initialized) {
+        return;
     }
+    opcodes_initialized = true;
     dispatchOpcodes().insert(std::pair<long,
                              std::string>((long) effOpen, "effOpen"));
     dispatchOpcodes().insert(std::pair<long,
@@ -423,7 +447,6 @@ void VSTPlugin::initializeOpcodes()
                            std::string>((long)audioMasterGetInputSpeakerArrangement,
                                         "audioMasterGetInputSpeakerArrangement"));
 
-    opcodeRefCount()++;
 }
 
 VSTPlugin::VSTPlugin(CSOUND *csound_)
@@ -449,7 +472,6 @@ VSTPlugin::VSTPlugin(CSOUND *csound_)
 VSTPlugin::~VSTPlugin()
 {
     Free();
-    opcodeRefCount()--;
 }
 
 bool VSTPlugin::AddMIDI(int data, int deltaFrames, int detune)
diff --git a/Opcodes/vst4cs/src/vsthost.h b/Opcodes/vst4cs/src/vsthost.h
index da07bac..93f7fb5 100644
--- a/Opcodes/vst4cs/src/vsthost.h
+++ b/Opcodes/vst4cs/src/vsthost.h
@@ -1,8 +1,9 @@
 //  vst4cs: VST HOST OPCODES FOR CSOUND
 //
-//  Uses code by Hermann Seib from his Vst Host program
-//  and from the vst~ object by Thomas Grill,
-//  which in turn borrows from the Psycle tracker.
+//  Uses code by Hermann Seib from his VSTHost program and from the vst~
+//  object by Thomas Grill (no license), which in turn borrows from the Psycle
+//  tracker (also based on VSTHost).
+//
 //  VST is a trademark of Steinberg Media Technologies GmbH.
 //  VST Plug-In Technology by Steinberg.
 //
@@ -22,6 +23,28 @@
 //  License along with The vst4cs library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 //  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
 
 #ifndef VSTPLUGIN_HOST_H
 #define VSTPLUGIN_HOST_H
@@ -180,11 +203,6 @@ class VSTPlugin {
     static std::map<long, std::string> dispatchOpcodes_;
     return dispatchOpcodes_;
   }
-  static size_t &opcodeRefCount()
-  {
-    static size_t opcodeRefCount_ = 0;
-    return opcodeRefCount_;
-  }
 };
 
 inline VstIntPtr VSTPlugin::Dispatch(VstInt32 opCode,
diff --git a/Opcodes/wave-terrain.c b/Opcodes/wave-terrain.c
index 0c15ee1..420a980 100644
--- a/Opcodes/wave-terrain.c
+++ b/Opcodes/wave-terrain.c
@@ -118,8 +118,8 @@ static int scanhinit(CSOUND *csound, SCANHAMMER *p)
   FUNC *fdst = csound->FTnp2Find(csound, p->idst); /* Destination table */
 
   if (UNLIKELY(fsrc->flen > fdst->flen)) {
-    return csound->InitError(csound, Str(
-                  "Source table must be same size or smaller than dest table\n"));
+    return csound->InitError(csound, Str("Source table must be same size or "
+                                         "smaller than dest table\n"));
   }
 
   for (srcpos=0; srcpos<fsrc->flen; srcpos++) {
@@ -225,7 +225,7 @@ static int scantPerf(CSOUND *csound, SCANTABLE *p)
 
 /* CALCULATE NEW POSITIONS
  *
- * fill in newloc and newvel arrays with caluclated values
+ * fill in newloc and newvel arrays with calculated values
  * this is the string updating function
  *
  * a mass of zero means immovable, so as to allow fixed points
@@ -237,14 +237,14 @@ static int scantPerf(CSOUND *csound, SCANTABLE *p)
       /* set up conditions for end-points */
       last = i - 1;
       next = i + 1;
-      if (i == p->size - 1) {
+      if (UNLIKELY(i == p->size - 1)) {
         next = 0;
       }
-      else if (i == 0) {
+      else if (UNLIKELY(i == 0)) {
         last = (int)p->size - 1;
       }
 
-      if (fmass->ftable[i] == 0) {
+      if (UNLIKELY(fmass->ftable[i] == 0)) {
         /* if the mass is zero... */
         p->newloc[i] = fpoint->ftable[i];
         p->newvel[i] = 0;
@@ -273,7 +273,7 @@ static int scantPerf(CSOUND *csound, SCANTABLE *p)
       aout[i] = fpoint->ftable[(int)pos] * amp;
 
       pos += inc /* p->size * *(p->kpch) * csound->onedsr */;
-      if (pos > p->size) {
+      if (UNLIKELY(pos > p->size)) {
         pos -= p->size;
       }
     }
@@ -283,11 +283,8 @@ static int scantPerf(CSOUND *csound, SCANTABLE *p)
      *
      * replace current values with new ones
      */
-    /* Could use memcpy here?? */
-    for (i=0; i<p->size; i++) {
-      fpoint->ftable[i] = p->newloc[i];
-      fvel->ftable[i]   = p->newvel[i];
-    }
+    memcpy(fpoint->ftable, p->newloc, p->size*sizeof(MYFLT));
+    memcpy(fvel->ftable, p->newvel, p->size*sizeof(MYFLT));
     return OK;
 }
 
diff --git a/Opcodes/wavegde.h b/Opcodes/wavegde.h
index f30cd1e..734a354 100644
--- a/Opcodes/wavegde.h
+++ b/Opcodes/wavegde.h
@@ -59,9 +59,6 @@ typedef struct {
   MYFLT* pointer;          /* pointer to current position in data */
 } circularBuffer;
 
-/* circular buffer member functions */
-static void circularBufferCircularBuffer(CSOUND *,
-                                         circularBuffer*,len_t);/* constructor */
 /* class filter -- recursive filter implementation class */
 typedef struct {
   circularBuffer buffer; /* The filter's delay line */
diff --git a/Opcodes/websockets/CMakeLists.txt b/Opcodes/websockets/CMakeLists.txt
index f3dc697..4a6b05b 100644
--- a/Opcodes/websockets/CMakeLists.txt
+++ b/Opcodes/websockets/CMakeLists.txt
@@ -14,16 +14,16 @@ else()
   find_library (websockets_library NAMES websockets)
 
 if(APPLE)
-FIND_LIBRARY ( ssl_library ssl
+FIND_LIBRARY (ssl_library NAMES ssl.a
       /usr/local/lib
       /usr/lib
   )
-   find_library (crypto_library NAMES crypto)
-   FIND_LIBRARY ( crypto_library crypto
+   #find_library (crypto_library NAMES crypto.a
+   FIND_LIBRARY ( crypto_library NAMES crypto.a
       /usr/local/lib
       /usr/lib
   )
-   find_library (crypto_library NAMES crypto)
+   #find_library (crypto_library NAMES crypto)
 endif()
 
 endif()
@@ -42,7 +42,7 @@ if(BUILD_WEBSOCKET_OPCODE)
  	target_link_libraries(websocketIO ${websockets_library} ${CSOUNDLIB})
 
   if(APPLE)
-   target_link_libraries(websocketIO ${ssl_library} ${crypto_library}  z)
+   target_link_libraries(websocketIO /usr/local/lib/libssl.a /usr/local/lib/libcrypto.a  z)
   endif()
   
   if(WIN32 AND NOT MSVC) 
diff --git a/Opcodes/websockets/WebSocketOpcode.c b/Opcodes/websockets/WebSocketOpcode.c
index 7bd7390..4a9a326 100644
--- a/Opcodes/websockets/WebSocketOpcode.c
+++ b/Opcodes/websockets/WebSocketOpcode.c
@@ -41,6 +41,7 @@ typedef enum ArgumentType
     UNKNOWN
 } ArgumentType;
 
+
 struct OpcodeArgument{
 
     void *dataPointer;
@@ -52,8 +53,8 @@ struct OpcodeArgument{
     char *name;
     void *readBuffer;
     int itemsCount;
-    int bytesCount;
-    int bytesWritten;
+    unsigned int bytesCount;
+    unsigned int bytesWritten;
     bool iRateVarSent;
 };
 
@@ -110,7 +111,7 @@ void WebSocketOpcode_sendInputArgumentData(CSOUND *csound, WebSocketOpcode *self
                                   currentArgument->dataPointer,
                                   currentArgument->itemsCount);
 
-      if (itemsWritten != currentArgument->itemsCount) {
+      if (UNLIKELY(itemsWritten != currentArgument->itemsCount)) {
 
         csound->Message(csound,
                         Str("websocket: variable %s data not sent, "
@@ -211,7 +212,7 @@ void WebSocketOpcode_allocateStringArgument(MYFLT *argument,
 {
     STRINGDAT *string = (STRINGDAT *)argument;
 
-    if (isInputArgument == true) {
+    if (UNLIKELY(isInputArgument == true)) {
 
       csound->Die(csound,
                   Str("websocket: this opcode does not send strings, only "
@@ -219,7 +220,7 @@ void WebSocketOpcode_allocateStringArgument(MYFLT *argument,
     }
     else {
 
-      if (string->size != 0) {
+      if (UNLIKELY(string->size != 0)) {
 
         csound->Die(csound,
                     Str("websocket: error output string variable %s must not "
@@ -253,7 +254,7 @@ void WebSocketOpcode_allocateArrayArgument(MYFLT *argument,
 {
     ARRAYDAT *array = (ARRAYDAT *)argument;
 
-    if (array->dimensions == 0) {
+    if (UNLIKELY(array->dimensions == 0)) {
 
       csound->Die(csound,
                   Str("websocket: error array variable %s has not been "
@@ -297,7 +298,7 @@ void WebSocketOpcode_initialiseArgumentsArray(CSOUND *csound,
                                               MYFLT **arguments,
                                               bool areInputArguments)
 {
-    int i;
+    unsigned int i;
     for (i = 0; i < argumentsCount; ++i) {
 
       OpcodeArgument *argumentArrayItem = &argumentsArray[i];
@@ -381,6 +382,7 @@ void WebSocketOpcode_writeFragments(WebSocketOpcode *self,
     unsigned char *inputData =
       &((unsigned char *)inputArgument->readBuffer)[inputArgument->bytesWritten];
 
+    // *** FIXME *** signed/usigned comparison
     if (inputArgument->bytesWritten + writeBufferBytesCount <
         inputArgument->bytesCount) {
 
@@ -477,9 +479,10 @@ void WebSocketOpcode_handleReceive(struct lws *websocket, WebSocketOpcode *self,
       return;
     }
 
-    if (argument->bytesCount != inputDataSize
-        &&
-        argument->argumentType != STRING_VAR) {
+    // *** FIXME *** signed/unsigned comparison
+    if (UNLIKELY(argument->bytesCount != inputDataSize
+                 &&
+                 argument->argumentType != STRING_VAR)) {
 
       csound->Message(csound, Str("websocket: received message from is not "
                                   "correct size for variable %s, message dumped"),
@@ -487,9 +490,9 @@ void WebSocketOpcode_handleReceive(struct lws *websocket, WebSocketOpcode *self,
       return;
     }
 
-    if (argument->argumentType == STRING_VAR
-        &&
-        argument->bytesCount > stringVarMaximumBytesCount) {
+    if (UNLIKELY(argument->argumentType == STRING_VAR
+                 &&
+                 argument->bytesCount > stringVarMaximumBytesCount)) {
 
       csound->Message(csound, Str("websocket: received string message from "
                                   "%s is too large, message dumped"),
@@ -502,7 +505,7 @@ void WebSocketOpcode_handleReceive(struct lws *websocket, WebSocketOpcode *self,
                                                  inputData, argument->itemsCount);
     argument->receivedData = true;
 
-    if (writtenItems == 0) {
+    if (UNLIKELY(writtenItems == 0)) {
 
       csound->Message(csound, Str("websocket: received message from %s "
                                   "dumped, buffer overrrun"), argument->name);
@@ -629,7 +632,7 @@ void WebSocketOpcode_initialiseWebSocket(WebSocketOpcode *self, CSOUND *csound)
       csound->Calloc(csound, LWS_SEND_BUFFER_PRE_PADDING +
                      (sizeof(char) * writeBufferBytesCount) +
                      LWS_SEND_BUFFER_POST_PADDING);
-    if (self->webSocket->context == NULL) {
+    if (UNLIKELY(self->webSocket->context == NULL)) {
 
       csound->Die(csound,
                   Str("websocket: could not initialise websocket, Exiting"));
diff --git a/README.md b/README.md
index 92996b0..651be63 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,12 @@ Version 6.09 beta
 
 [![Build Status](https://travis-ci.org/csound/csound.svg?branch=develop)](https://travis-ci.org/csound/csound)
 ![Coverity Status](https://scan.coverity.com/projects/1822/badge.svg)
+[![Build status](https://ci.appveyor.com/api/projects/status/1qamc986774rsbjq/branch/develop?svg=true)](https://ci.appveyor.com/project/csound/csound/branch/develop)
 
 A user-programmable and user-extensible sound processing language
 and software synthesizer.
 
-Csound is copyright (c) 1991 Barry Vercoe, John ffitch.
+Csound is copyright (c) 1991 Barry Vercoe, John ffitch, and other contributors.
 
 Csound is free software; you can redistribute them
 and/or modify them under the terms of the GNU Lesser General Public
@@ -26,14 +27,15 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 
 # GETTING STARTED
 
-CsoundQt, a graphical shell for Csound, makes an excellent place to begin
-the exploration of Csound, especially because CsoundQt has an extensive menu
+CsoundQt, a graphical shell for Csound, is an excellent place to begin
+the exploration of Csound, especially as CsoundQt has an extensive menu
 of built-in examples that show off Csound's capabilities. Many musicians make
 CsoundQt their main Csound environment, although there are other excellent
-environments. CsoundQt runs not only Csound code, but also Python scripts.
+environments. CsoundQt runs not only Csound code, but also Python scripts and, 
+in the latest version, HTML5 code.
 
-The examples directory and its subdirectories contains numerous working 
-Csound orchestras and even complete pieces. 
+The examples directory and its subdirectories contain numerous working 
+Csound orchestras, and even complete pieces. 
 
 The Csound Reference Manual may be found online at 
 http://csound.github.io/docs/manual/indexframes.html, or it may be installed with 
@@ -42,7 +44,7 @@ Csound in a location that varies by operating system.
 This version of Csound is programmable in C, C++, JavaScript, Python, Java, Lua, 
 and Common Lisp, and scores can be generated in these languages.
 
-The Csound API application programming interfaces reference 
+The Csound API application programming interface reference 
 may be found online at http://csound.github.io/docs/api/index.html, or it may be 
 installed with Csound in a location that varies by operating system. The API 
 reference is generated from and for the C and C++ API, but it is also helpful when 
@@ -54,18 +56,26 @@ Csound contains contributions from musicians, scientists, and programmers
 from around the world. They include (but are not limited to):
 
 * Allan Lee
+* Andres Cabrera
+* Anthony Kozar
 * Bill Gardner
 * Bill Verplank
 * Dan Ellis
 * David Macintyre
+* Ed Costello
 * Eli Breder
+* Fabio P. Bertolotti
+* Felipe Sataler
 * Gabriel Maldonado
 * Greg Sullivan
 * Hans Mikelson
+* Henri Manson
+* Ian McCurdy
 * Istvan Varga
 * Jean Piché
-* John ffitch
+* Joachim Heintz
 * John Ramsdell
+* John ffitch
 * Marc Resibois
 * Mark Dolson
 * Matt Ingalls
@@ -74,6 +84,7 @@ from around the world. They include (but are not limited to):
 * Michael Clark
 * Michael Gogins
 * Mike Berry
+* Nate Whetsell
 * Paris Smaragdis
 * Perry Cook
 * Peter Neubäcker
@@ -83,11 +94,11 @@ from around the world. They include (but are not limited to):
 * Richard Karpen
 * Rob Shaw
 * Robin Whittle
+* Rory Walsh
 * Sean Costello
+* Stephen Kyne
 * Steven Yi
+* Tito Latini
 * Tom Erbe
 * Victor Lazzarini
 * Ville Pulkki
-* Andres Cabrera
-* Felipe Sataler
-* Ian McCurdy
diff --git a/Release_Notes/Version_6.09.md b/Release_Notes/Version_6.09.md
index 398fd42..85f70c5 100644
--- a/Release_Notes/Version_6.09.md
+++ b/Release_Notes/Version_6.09.md
@@ -21,6 +21,19 @@ Any valid HTML can also be used.
 --->
 # CSOUND VERSION 6.09.1 RELEASE NOTES
 
+This is mostly a bugfix release of version 6.09 addressing a number of
+issues, including a bug in multicore performance. The Web Assembly
+platform is introduced in this release, as well as support for Swift
+development on iOS. Some DLLs that were missing from the Windows
+installer also have been added to it. Following Google's deprecation
+of PNaCl, this platform has been dropped from the release and will not
+be further developed.
+
+These notes include the changes in 6.09 (for completeness) and 6.09.1
+
+-- The Developers
+
+### (For 6.09)
 A mixed bag of new opcodes and many fixes and improvements.
 
 Also as usual there are a number of internal changes, including many
@@ -208,7 +221,7 @@ https://github.com/CsoundQt/CsoundQt/blob/develop/release_notes/Release%20notes%
 
 - losci/losci3 fixed in case of long tables.
 
-- inrg was broke for a while.
+- inrg was broken for a while.
 
 - Partikkel channelmask panning laws had an indexing error, now fixed.
 
diff --git a/Release_Notes/Version_6.10.md b/Release_Notes/Version_6.10.md
new file mode 100644
index 0000000..b318add
--- /dev/null
+++ b/Release_Notes/Version_6.10.md
@@ -0,0 +1,267 @@
+<!---
+
+To maintain this document use the following markdown:
+
+# First level heading
+## Second level heading
+### Third level heading
+
+- First level bullet point
+ - Second level bullet point
+  - Third level bullet point
+
+`inline code`
+
+``` preformatted text etc.  ```
+
+[hyperlink](url for the hyperlink)
+
+Any valid HTML can also be used.
+
+--->
+# CSOUND VERSION 6.10 RELEASE NOTES
+
+This is mostly a bugfix release, including a major bug recently introduced in
+loscil.  New and improved opcodes and a long orphaned gen
+(53) are here, as well as many small internal improvements.  Internal
+changes have removed a number of memory leaks.
+
+-- The Developers
+
+## USER-LEVEL CHANGES
+
+### New opcodes
+
+- midiout_i which is like midiout, but works at i-rate.
+
+- chngetks and chnsetks -- versions of chnget and chnset for string
+channels that **only** run at perf-time.
+
+- squinewave is a mostly bandlimited shape-shifting
+  square-pulse-saw-sinewave oscillator with hardsync.
+
+- The experimental opcode OSCsendA has been removed; use OSCsend instead.
+
+### New Gen and Macros
+
+- gen53 (which has been in the code but not documented for years) is
+  now acknowledged.  It creates a linear-phase or minimum-phase
+  impulse response table from a source table containing a frequency
+  response or an impulse response.
+
+### Orchestra
+
+- Incorrect use of k-rate if..then.. in instrument 0 is now treated as i-rate.
+
+- Incorrect use of k-rate operations in instrument 0 are no longer
+  treated as an error but a warning.
+
+- In a csd file commented-out tags were acted upon in some cases,
+  leading to truncated orchestras.  This is now fixed.
+
+- Arrays can be assigned from i-rate and k-rate to krate and i-rate;
+  previously rates had to match.
+
+- The use of ! as a Boolean operation (meaning negation) is now supported,
+  where previously the parser accepted it but did not use it.
+
+- Constant folding now implemented on a wide range of arithmetic.
+
+- Attempts to use an undefined macro produce a syntax error now.
+
+- Missing " (or other terminator) in #include is noticed and the #include is 
+  ignored.
+
+### Score
+
+- In a csd file commented-out tags were acted upon in some cases,
+  leading to truncated scores. This is now fixed.
+
+- The evaluation form [..] can now be nested.
+
+- The extract feature (-x from command line) now works.
+
+- Use of the score opcode x could case spurious error messages which are now 
+  suppressed.
+
+- After calling a undefined macro the rest of the line is ignored.
+
+- A couple of bugs in repeated sections (r opcode) have been removed.
+
+- Missing " (or other terminator) in #include is noticed and the #include is 
+  ignored.
+
+### Options
+
+- the --tempo (and -t) option now can be fractional; was previously
+  limited to an integer.
+
+- new option: --udp-console=address:port redirects console to a remote
+  address:port.
+
+- new option: --udp-mirror-console=address:port mirrors the console to
+  a remote address:port.
+
+- new option: --udp-echo echoes messages sent to the UDP server
+
+- new option: --aft-zero sets initial after-touch value to zero rather than 127.
+
+### Modified Opcodes and Gens
+
+- loscil/loscil3 accept floating point increment.
+
+- OSCraw closes socket after use.
+
+- fout can now generate ogg format, as well as accepting -1 to mean the
+  same format as -o uses.
+
+- bitwise and opcode (&) at a-rate corrected for sample-accurate mode.
+
+- slicearray has an optional additional argument to give a stride to the slice.
+
+- chnset now can have variable channel names.
+
+- a-rate arrays may be added, subtracted, multiplied and scaled.  This
+  is a start on a-rate array arithmetic.
+
+- dssiinit improved removing some crashes.
+
+- partials improved to remove a fencepost issue.
+
+- vco2ift fixed when an existing table is used.
+
+- The formatted printing opcodes now check for insufficient provided arguments.
+
+- FLbox and FLsetText again accept an ivar as first argument to give a
+  string via strset (as a alternative to a string).
+
+- Better checking in prints should stop some crashes.
+
+### Utilities
+
+-
+
+### Frontends
+
+- icsound:
+
+- csound~:
+
+- csdebugger:
+
+- Emscripten: Now compiled as WebAssembly (runs in all major browsers). API now
+  somewhat more conformed to other HTML5 APIs.
+
+- CsoundQt: Now built from master branch for improved stability.
+
+### General Usage
+
+## Bugs Fixed
+
+- The optionality of the last argument in sc_phasor now works.
+
+- Freezing in dconv fixed.
+
+- looptseg no longer crashes if presented with too few arguments.
+
+- schedule etc now work correctly with double-quoted strings within {{
+  }} strings.
+
+- problem with CLI frontend interrupt handler fixed.
+
+- outs2 was broken (always wrote to channel 1 like outs1).
+
+- Various errors in the DSSI/ladspa system fixed.
+
+- vbap was broken in all cases except 4-speakers, now corrected.
+
+- Live evaluation of Csound Orchestra code code could result in hard to
+  diagnose, odd errors (e.g., crashes, division by zeros, NaNs). This was due
+  to a bug in merging of newly found constants into the global constant pool. 
+
+## SYSTEM LEVEL CHANGES
+
+### System Changes
+
+- The GNU Lesser General Public License, version 2.1, for CsoundVST
+and the vst4cs opcodes has been modified to grant an exception for
+compiling and linking with the VST2 SDK, which is available from
+[https://github.com/steinbergmedia/vst3sdk]. For more information, see
+[https://github.com/csound/csound/blob/develop/Opcodes/vst4cs/licensing_considerations_for_csoundvst_and_vst4cs.md].
+
+- UDP Server now accepts some new commands, which are
+prefixed by an opcode. These include support for
+events (&<event>) and scores ($<score>); setting control channels
+(@<channel> <value>); setting string channels (%<channel> <string>));
+getting control channel values via UDP (:@<channel> <dest-address>
+<dest-port>) and string channel contents (:%<channel> <dest-address>
+<dest-port>).
+
+### Translations
+
+- As ever the French translations are complete.
+
+- The Italian translations of messages are greatly improved in scope;
+  about a half of error and warning messages are now done.
+
+- Some progress as been made in German translations.
+
+### API
+
+- CompileCsdText now always returns a value indicating success/failure.
+
+- Eight new asynchronous versions of API functions now available:
+  csoundCompileTreeAsync(), csoundCompileOrcAsync(),
+  csoundReadScoreAsync(), csoundInputMessageAsync(),
+  csoundScoreEventAsync(), csoundScoreEventAbsoluteAsync(),
+  csoundTableCopyOutAsync(), and csoundTableCopyInAsync().
+
+- For server use, three new API functions: csoundUDPServerStart,
+  csoundUDPServerStatus and csoundUDPServerClose.
+
+### Platform Specific
+
+- iOS
+
+ -
+
+- Android
+
+ -
+
+- Windows
+
+ - Now compiles with Microsoft Visual Studio 2015 or later.
+
+ - Continuous integration for Windows with AppVeyor (Visual Studio 2017).
+
+<!---
+- The AppVeyor build and installer now includes CsoundVST and the vst4cs
+   opcodes that enable hosting VST plugins in Csound. The LGPL v2.1
+   license for that code has been modified, with permission of Hermann
+   Seib the original author of the VSTHost code, to permit use with
+   the separately downloaded VST2 SDK from Steinberg.
+--->
+- OSX
+
+- GNU/Linux
+
+  ALSA MIDI backend now ignores some spurious -ENOENT error codes.
+
+==END==
+
+
+========================================================================
+Author: jpff <jpff at codemist.co.uk>
+Date:   Thu Nov 9 12:27:38 2017 +0000
+
+Author: Steven Yi <stevenyi at gmail.com>
+Date:   Mon Nov 6 16:53:08 2017 -0500
+
+    added NULL check for prints opcode to prevent crash when number given as initial arg
+
+Author: Steven Yi <stevenyi at gmail.com>
+Date:   Mon Nov 6 15:55:40 2017 -0500
+
+    added test for prints to not crash if number given (should just report error)
+
diff --git a/Submitting_opcodes b/Submitting_opcodes
new file mode 100644
index 0000000..404a766
--- /dev/null
+++ b/Submitting_opcodes
@@ -0,0 +1,102 @@
+Protocol for submitting new opcodes
+===================================
+
+The developers are happy to accept code for new opcodes (and other
+parts) but in order to make the process simple and clear we have drawn
+up this protocol in the hope that it will avoid embarrassing delays and
+discussions.
+
+
+Licence
+-------
+
+In general Csound is licenced with LGPL so submissions need to have that
+licence or a compatible one.  Note that GPL is a problem.
+
+Examples of suitable copyright and licence text can be found at the
+start of most opcode files.
+
+Names
+-----
+
+New opcodes should not have names that start with the letters i, k, f
+or a.  This is to avoid name clashes with existing orchestras; and yes
+it has happened in the past.
+
+Coding
+------
+
+Please follow the general style; it is important not to have any
+static variables which are not constant, while static fuctions are
+encouraged.  Any use of external libraries which introduces new
+dependencies is a potential problem and may be best discussed with the
+core team.
+
+
+Formatting/Indentation
+----------------------
+
+Ideally C code should not have any tab characters in it, and be
+limitted to 85 characters wide.  Format should be similar to existing
+code.  Also wrap any error strings with a call to Str to assist with
+language translations.
+
+Sample-accurate
+---------------
+
+If an opcode returns a audio-rate value or uses audio-rate input it
+must include support for sample-accurate mode.  Again looking at
+existing opcodes shows a template for this.
+
+The template for arate perf-pass opcodes is:
+
+    int perf_myopcode(CSOUND *csound, MYOPCODE *p)
+    {
+        uint32_t offset = p->h.insdshead->ksmps_offset; // delayed onset
+        uint32_t early  = p->h.insdshead->ksmps_no_end; // early end of event
+        uint32_t nsmps = CS_KSMPS;
+        ...
+        // Clear parts of the output outside event
+        if (UNLIKELY(offset)) memset(p->res, '\0', offset*sizeof(MYFLT));
+        if (UNLIKELY(early))  {
+          nsmps -= early;
+          memset(&p->res[nsmps], '\0', early*sizeof(MYFLT));
+        }
+        for (n=offset; n<nsmps; n++) { // Only calculate inside event
+            .....
+            p->res[n] = ....
+        }
+        return OK;
+    }
+
+
+Core or Plugin?
+---------------
+
+New opcodes can be either in the core library, or available as
+plugins.  Which is used depends on a number of factors.  If an opcode
+has external dependencies it can ONLY be added to the Csound standard
+codebase as a plugin. For platforms where plugins are not available,
+special packages can be prepared to include an opcode and its
+dependencies within the core library.  if the opcode is only useful on
+one platform (like the Linux joystick opcode) then a plugin is to be
+preferred.  For others it is a balance between code growth and
+utility.
+
+
+Documentation
+-------------
+
+All new opcodes or gens need a manual page, if only a minimal
+one. Even better if it includes an example .csd file.  There is a
+template in the manual tree opcodes/template.xml, and example files in
+the examples directory.
+
+
+Submission
+----------
+
+Probably easiest as a pull request on github, but direct mail to the
+developers' mailing list or direct contact with a core developer are OK.
+
+==JPff 2017 Dec 14
diff --git a/Top/argdecode.c b/Top/argdecode.c
index 6284bc1..fc93f97 100644
--- a/Top/argdecode.c
+++ b/Top/argdecode.c
@@ -121,62 +121,65 @@ static inline void set_stdout_assign(CSOUND *csound, int type, int state)
 
 /* IV - Feb 19 2005 */
 static const char *shortUsageList[] = {
-  Str_noop("--help\tprint long usage options"),
-  Str_noop("--version\tprint version details"),
-  Str_noop("-U unam\trun utility program unam"),
-  Str_noop("-C\tuse Cscore processing of scorefile"),
-  Str_noop("-j N\tuse N threads in performance"),
-  Str_noop("-I\tI-time only orch run"),
-  Str_noop("-n\tno sound onto disk"),
-  Str_noop("-i fnam\tsound input filename"),
-  Str_noop("-o fnam\tsound output filename"),
-  Str_noop("-b N\tsample frames (or -kprds) per software sound I/O buffer"),
-  Str_noop("-B N\tsamples per hardware sound I/O buffer"),
-  Str_noop("-A\tcreate an AIFF format output soundfile"),
-  Str_noop("-W\tcreate a WAV format output soundfile"),
-  Str_noop("-J\tcreate an IRCAM format output soundfile"),
-  Str_noop("-h\tno header on output soundfile"),
-  Str_noop("-c\t8-bit signed_char sound samples"),
+  Str_noop("--help      print long usage options"),
+  Str_noop("--version   print version details"),
+  Str_noop("-U unam     run utility program unam"),
+  Str_noop("-C          use Cscore processing of scorefile"),
+  Str_noop("-j N        use N threads in performance"),
+  Str_noop("-I          I-time only orch run"),
+  Str_noop("-n          no sound onto disk"),
+  Str_noop("-i fnam     sound input filename"),
+  Str_noop("-o fnam     sound output filename"),
+  Str_noop("-b N        sample frames (or -kprds) per software sound I/O buffer"),
+  Str_noop("-B N        samples per hardware sound I/O buffer"),
+  Str_noop("-A          create an AIFF format output soundfile"),
+  Str_noop("-W          create a WAV format output soundfile"),
+  Str_noop("-J          create an IRCAM format output soundfile"),
+  Str_noop("-h          no header on output soundfile"),
+  Str_noop("-c          8-bit signed_char sound samples"),
 #ifdef never
-  Str_noop("-a\talaw sound samples"),
+  Str_noop("-a          alaw sound samples"),
 #endif
-  Str_noop("-8\t8-bit unsigned_char sound samples"),
-  Str_noop("-u\tulaw sound samples"),
-  Str_noop("-s\tshort_int sound samples"),
-  Str_noop("-l\tlong_int sound samples"),
-  Str_noop("-f\tfloat sound samples"),
-  Str_noop("-3\t24bit sound samples"),
-  Str_noop("-r N\torchestra srate override"),
-  Str_noop("-k N\torchestra krate override"),
-  Str_noop("-K\tDo not generate PEAK chunks"),
-  Str_noop("-v\tverbose orch translation"),
-  Str_noop("-m N\ttty message level. Sum of:"),
-  Str_noop("\t\t1=note amps, 2=out-of-range msg, 4=warnings"),
-  Str_noop("\t\t0/32/64/96=note amp format (raw,dB,colors)"),
-  Str_noop("\t\t128=print benchmark information"),
-  Str_noop("-d\tsuppress all displays"),
-  Str_noop("-g\tsuppress graphics, use ascii displays"),
-  Str_noop("-G\tsuppress graphics, use Postscript displays"),
-  Str_noop("-x fnam\textract from score.srt using extract file 'fnam'"),
-  Str_noop("-t N\tuse uninterpreted beats of the score, initially at tempo N"),
-  Str_noop("-t 0\tuse score.srt for sorted score rather than a temporary"),
-  Str_noop("-L dnam\tread Line-oriented realtime score events from device 'dnam'"),
-  Str_noop("-M dnam\tread MIDI realtime events from device 'dnam'"),
-  Str_noop("-F fnam\tread MIDIfile event stream from file 'fnam'"),
-  /*  Str_noop("-P N\tMIDI sustain pedal threshold (0 - 128)"), */
-  Str_noop("-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"),
-  Str_noop("-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"),
-  Str_noop("-N\tnotify (ring the bell) when score or miditrack is done"),
-  Str_noop("-T\tterminate the performance when miditrack is done"),
-  Str_noop("-D\tdefer GEN01 soundfile loads until performance time"),
-  Str_noop("-Q dnam\tselect MIDI output device"),
-  Str_noop("-z\tList opcodes in this version"),
-  Str_noop("-Z\tDither output"),
+  Str_noop("-8          8-bit unsigned_char sound samples"),
+  Str_noop("-u          ulaw sound samples"),
+  Str_noop("-s          short_int sound samples"),
+  Str_noop("-l          long_int sound samples"),
+  Str_noop("-f          float sound samples"),
+  Str_noop("-3          24bit sound samples"),
+  Str_noop("-r N        orchestra srate override"),
+  Str_noop("-k N        orchestra krate override"),
+  Str_noop("-K          do not generate PEAK chunks"),
+  Str_noop("-v          verbose orch translation"),
+  Str_noop("-m N        tty message level. Sum of:"),
+  Str_noop("              1=note amps, 2=out-of-range msg, 4=warnings"),
+  Str_noop("              0/32/64/96=note amp format (raw,dB,colors)"),
+  Str_noop("              128=print benchmark information"),
+  Str_noop("-d          suppress all displays"),
+  Str_noop("-g          suppress graphics, use ascii displays"),
+  Str_noop("-G          suppress graphics, use Postscript displays"),
+  Str_noop("-x fnam     extract from score.srt using extract file 'fnam'"),
+  Str_noop("-t N        use uninterpreted beats of the score, "
+                       "initially at tempo N"),
+  Str_noop("-t 0        use score.srt for sorted score rather than a temporary"),
+  Str_noop("-L dnam     read Line-oriented realtime score events from "
+                       "device 'dnam'"),
+  Str_noop("-M dnam     read MIDI realtime events from device 'dnam'"),
+  Str_noop("-F fnam     read MIDIfile event stream from file 'fnam'"),
+  /* Str_noop("-P N        MIDI sustain pedal threshold (0 - 128)"), */
+  Str_noop("-R          continually rewrite header while writing soundfile "
+                       "(WAV/AIFF)"),
+  Str_noop("-H#         print heartbeat style 1, 2 or 3 at each soundfile write"),
+  Str_noop("-N          notify (ring the bell) when score or miditrack is done"),
+  Str_noop("-T          terminate the performance when miditrack is done"),
+  Str_noop("-D          defer GEN01 soundfile loads until performance time"),
+  Str_noop("-Q dnam     select MIDI output device"),
+  Str_noop("-z          list opcodes in this version"),
+  Str_noop("-Z          dither output"),
 #if defined(LINUX)
   Str_noop("--sched     set real-time priority and lock memory"),
-  Str_noop("            (requires -d and real time audio (-iadc/-odac))"),
+  Str_noop("              (requires -d and real time audio (-iadc/-odac))"),
   Str_noop("--sched=N   set specified scheduling priority, and lock memory"),
-  Str_noop("            (requires -d and real time audio (-iadc/-odac))"),
+  Str_noop("              (requires -d and real time audio (-iadc/-odac))"),
 #endif
   NULL
 };
@@ -185,116 +188,126 @@ static const char *longUsageList[] = {
   "--format={wav,aiff,au,raw,paf,svx,nist,voc,ircam,w64,mat4,mat5",
   "          pvf,xi,htk,sds,avr,wavex,sd2,flac,caf,wve,ogg,mpc2k,rf64}",
   "--format={alaw,ulaw,schar,uchar,float,double,short,long,24bit,vorbis}",
-  Str_noop("\t\t\tSet output file format"),
-  Str_noop("--aiff\t\t\tSet AIFF format"),
-  Str_noop("--au\t\t\tSet AU format"),
-  Str_noop("--wave\t\t\tSet WAV format"),
-  Str_noop("--ircam\t\t\tSet IRCAM format"),
-  Str_noop("--ogg\t\t\tSet OGG/VORBIS format"),
-  Str_noop("--noheader\t\tRaw format"),
-  Str_noop("--nopeaks\t\tDo not write peak information"),
+  Str_noop("  Set output file format"),
+  Str_noop("--aiff                  set AIFF format"),
+  Str_noop("--au                    set AU format"),
+  Str_noop("--wave                  set WAV format"),
+  Str_noop("--ircam                 set IRCAM format"),
+  Str_noop("--ogg                   set OGG/VORBIS format"),
+  Str_noop("--noheader              raw format"),
+  Str_noop("--nopeaks               do not write peak information"),
   " ",
-   Str_noop("--displays\t\tUse graphic displays"),
-  Str_noop("--nodisplays\t\tSuppress all displays"),
-  Str_noop("--asciidisplay\t\tSuppress graphics, use ascii displays"),
-  Str_noop("--postscriptdisplay\tSuppress graphics, use Postscript displays"),
+  Str_noop("--displays              use graphic displays"),
+  Str_noop("--nodisplays            suppress all displays"),
+  Str_noop("--asciidisplay          suppress graphics, use ascii displays"),
+  Str_noop("--postscriptdisplay     suppress graphics, use Postscript displays"),
   " ",
-  Str_noop("--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"),
-  Str_noop("--iobufsamps=N\t\tSample frames (or -kprds) per software "
-           "sound I/O buffer"),
-  Str_noop("--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"),
-  Str_noop("--cscore\t\tUse Cscore processing of scorefile"),
-  Str_noop("--orc\t\t\tUse orchfile without scorefile"),
+  Str_noop("--defer-gen1            defer GEN01 soundfile loads until "
+                                   "performance time"),
+  Str_noop("--iobufsamps=N          sample frames (or -kprds) per software "
+                                    "sound I/O buffer"),
+  Str_noop("--hardwarebufsamps=N    samples per hardware sound I/O buffer"),
+  Str_noop("--cscore                use Cscore processing of scorefile"),
+  Str_noop("--orc                   use orchfile without scorefile"),
   " ",
-  Str_noop("--midifile=FNAME\tRead MIDIfile event stream from file"),
-  Str_noop("--midioutfile=FNAME\tWrite MIDI output to file FNAME"),
-  Str_noop("--midi-device=FNAME\tRead MIDI realtime events from device"),
-  Str_noop("--terminate-on-midi\tTerminate the performance when miditrack is done"),
+  Str_noop("--midifile=FNAME        read MIDIfile event stream from file"),
+  Str_noop("--midioutfile=FNAME     write MIDI output to file FNAME"),
+  Str_noop("--midi-device=FNAME     read MIDI realtime events from device"),
+  Str_noop("--terminate-on-midi     terminate the performance when miditrack "
+           "is done"),
   " ",
-  Str_noop("--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at "
-           "each soundfile write"),
-  Str_noop("--notify\t\tNotify (ring the bell) when score or miditrack is done"),
-  Str_noop("--rewrite\t\tContinually rewrite header while writing "
-           "soundfile (WAV/AIFF)"),
+  Str_noop("--heartbeat=N           print a heartbeat style 1, 2 or 3 at "
+                                    "each soundfile write"),
+  Str_noop("--notify                notify (ring the bell) when score or "
+           "miditrack is done"),
+  Str_noop("--rewrite               continually rewrite header while writing "
+                                    "soundfile (WAV/AIFF)"),
   " ",
-  Str_noop("--input=FNAME\t\tSound input filename"),
-  Str_noop("--output=FNAME\t\tSound output filename"),
-  Str_noop("--logfile=FNAME\t\tLog output to file"),
+  Str_noop("--input=FNAME           sound input filename"),
+  Str_noop("--output=FNAME          sound output filename"),
+  Str_noop("--logfile=FNAME         log output to file"),
   " ",
-  Str_noop("--nosound\t\tNo sound onto disk or device"),
-  Str_noop("--tempo=N\t\tUse uninterpreted beats of the score, initially"
-           " at tempo N"),
-  Str_noop("--i-only\t\tI-time only orch run"),
-  Str_noop("--syntax-check-only\tStop after checking orchestra and score syntax"),
-  Str_noop("--control-rate=N\tOrchestra krate override"),
-  Str_noop("--sample-rate=N\t\tOrchestra srate override"),
-  Str_noop("--score-in=FNAME\tRead Line-oriented realtime score events"
-           " from device"),
-  Str_noop("--messagelevel=N\ttty message level, sum of:"),
-  Str_noop("--messageolevel=O\ttty message level in octal, of:"),
-  Str_noop("\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"),
-  Str_noop("\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"),
-  Str_noop("\t\t\t\t128=print benchmark information"),
+  Str_noop("--nosound               no sound onto disk or device"),
+  Str_noop("--tempo=N               use uninterpreted beats of the score, "
+                                   "initially at tempo N"),
+  Str_noop("--i-only                I-time only orch run"),
+  Str_noop("--syntax-check-only     stop after checking orchestra and "
+                                    "score syntax"),
+  Str_noop("--control-rate=N        orchestra krate override"),
+  Str_noop("--sample-rate=N         orchestra srate override"),
+  Str_noop("--score-in=FNAME        read line-oriented realtime score events "
+                                    "from device"),
+  Str_noop("--messagelevel=N        tty message level, sum of:"),
+  Str_noop("--messageolevel=O       tty message level in octal, of:"),
+  Str_noop("                          1=note amps, 2=out-of-range msg, 4=warnings,"),
+  Str_noop("                          0/32/64/96=note amp format (raw,dB,colors),"),
+  Str_noop("                          128=print benchmark information"),
   " ",
-  Str_noop("--m-amps=[01]\tmessages on note amps"),
-  Str_noop("--m-range=[01]\tMessages on range errors"),
-  Str_noop("--m-warnings=[01]\tMesage on warnings"),
-  Str_noop("--m-raw=[01]\tRaw amp messages"),
-  Str_noop("--m-dB=[01]\tAmp messages in dB"),
-  Str_noop("--m-colours=[01]\tColour amp messages"),
-  Str_noop("--m-benchmarks=[01]\tPrint benchmark information"),
-  Str_noop("--csd-line-nums=[01]\tControls how error line numbers are printed:"),
-  Str_noop("\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"),
-  Str_noop("--extract-score=FNAME\tExtract from score.srt using extract file"),
+  Str_noop("--m-amps=[01]           messages on note amps"),
+  Str_noop("--m-range=[01]          messages on range errors"),
+  Str_noop("--m-warnings=[01]       mesage on warnings"),
+  Str_noop("--m-raw=[01]            raw amp messages"),
+  Str_noop("--m-dB=[01]             amp messages in dB"),
+  Str_noop("--m-colours=[01]        colour amp messages"),
+  Str_noop("--m-benchmarks=[01]     print benchmark information"),
+  Str_noop("--csd-line-nums=[01]    controls how error line numbers are printed:"),
+  Str_noop("                          1=use CSD line #s (default), 0=use "
+                                   "ORC/SCO-relative line #s"),
+  Str_noop("--extract-score=FNAME   extract from score.srt using extract file"),
   Str_noop("--keep-sorted-score"),
-  Str_noop("--env:NAME=VALUE\tSet environment variable NAME to VALUE"),
-  Str_noop("--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"),
-  Str_noop("--strsetN=VALUE\t\tSet strset table at index N to VALUE"),
-  Str_noop("--utility=NAME\t\tRun utility program"),
-  Str_noop("--verbose\t\tVerbose orch translation"),
-  Str_noop("--list-opcodes\t\tList opcodes in this version"),
-  Str_noop("--list-opcodesN\t\tList opcodes in style N in this version"),
-  Str_noop("--dither\t\tDither output"),
-  Str_noop("--dither-triangular\t\tDither output with triangular distribution"),
-  Str_noop("--dither-uniform\t\tDither output with rectanular distribution"),
-  Str_noop("--sched\t\t\tSet real-time scheduling priority and lock memory"),
-  Str_noop("--sched=N\t\tSet priority to N and lock memory"),
-  Str_noop("--opcode-lib=NAMES\tDynamic libraries to load"),
-  Str_noop("--opcode-omit=NAMES\tDynamic libraries not to load"),
-  Str_noop("--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"),
-  Str_noop("--smacro:XXX=YYY\tSet score macro XXX to value YYY"),
-  Str_noop("--midi-key=N\t\tRoute MIDI note on message"),
-  Str_noop("\t\t\tkey number to pfield N as MIDI value [0-127]"),
-  Str_noop("--midi-key-cps=N\tRoute MIDI note on message"),
-  Str_noop("\t\t\tkey number to pfield N as cycles per second"),
-  Str_noop("--midi-key-oct=N\tRoute MIDI note on message"),
-  Str_noop("\t\t\tkey number to pfield N as linear octave"),
-  Str_noop("--midi-key-pch=N\tRoute MIDI note on message"),
-  Str_noop("\t\t\tkey number to pfield N as oct.pch"),
-  Str_noop("--midi-velocity=N\tRoute MIDI note on message"),
-  Str_noop("\t\t\tvelocity number to pfield N as MIDI value [0-127]"),
-  Str_noop("--midi-velocity-amp=N\tRoute MIDI note on message"),
-  Str_noop("\t\t\tvelocity number to pfield N as amplitude"),
-  Str_noop("--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"),
-  Str_noop("--sample-accurate\t\tUse sample-accurate timing of score events"),
-  Str_noop("--realtime\t\trealtime priority mode"),
-  Str_noop("--nchnls=N\t\t override number of audio channels"),
-  Str_noop("--nchnls_i=N\t\t override number of input audio channels"),
-  Str_noop("--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"),
-  Str_noop("--sinesize\t\tlength of internal sine table"),
-  Str_noop("--daemon\t\t daemon mode: do not exit if CSD/orchestra is "
-           "not given, is empty or does not compile"),
-  Str_noop("--port=N\t\t listen to UDP port N for instruments/orchestra "
-           "code (implies --daemon)"),
-  Str_noop("--vbr-quality=Ft\t set quality of variable bit0rate compression"),
-    Str_noop("--devices[=in|out] \t\t list available MIDI devices and exit"),
-  Str_noop("--midi-devices[=in|out] \t\t list available audio devices and exit"),
-  Str_noop("--get-system-sr \t\t print system sr and exit"),
-  Str_noop("--ksmps=N \t\t override ksmps"),
-  Str_noop("--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"),
+  Str_noop("--env:NAME=VALUE        set environment variable NAME to VALUE"),
+  Str_noop("--env:NAME+=VALUE       append VALUE to environment variable NAME"),
+  Str_noop("--strsetN=VALUE         set strset table at index N to VALUE"),
+  Str_noop("--utility=NAME          run utility program"),
+  Str_noop("--verbose               verbose orch translation"),
+  Str_noop("--list-opcodes          list opcodes in this version"),
+   Str_noop("--list-opcodesN         list opcodes in style N in this version"),
+  Str_noop("--dither                dither output"),
+  Str_noop("--dither-triangular     dither output with triangular distribution"),
+  Str_noop("--dither-uniform        dither output with rectanular distribution"),
+  Str_noop("--sched                 set real-time scheduling priority and "
+                                   "lock memory"),
+  Str_noop("--sched=N               set priority to N and lock memory"),
+  Str_noop("--opcode-lib=NAMES      dynamic libraries to load"),
+  Str_noop("--opcode-omit=NAMES     dynamic libraries not to load"),
+  Str_noop("--omacro:XXX=YYY        set orchestra macro XXX to value YYY"),
+  Str_noop("--smacro:XXX=YYY        set score macro XXX to value YYY"),
+  Str_noop("--midi-key=N            route MIDI note on message"),
+  Str_noop("                          key number to pfield N as "
+                                   "MIDI value [0-127]"),
+  Str_noop("--midi-key-cps=N        route MIDI note on message"),
+  Str_noop("                          key number to pfield N as cycles per second"),
+  Str_noop("--midi-key-oct=N        route MIDI note on message"),
+  Str_noop("                          key number to pfield N as linear octave"),
+  Str_noop("--midi-key-pch=N        route MIDI note on message"),
+  Str_noop("                          key number to pfield N as oct.pch"),
+  Str_noop("--midi-velocity=N       route MIDI note on message"),
+  Str_noop("                          velocity number to pfield N as MIDI "
+                                   "value [0-127]"),
+  Str_noop("--midi-velocity-amp=N   route MIDI note on message"),
+  Str_noop("                          velocity number to pfield N as amplitude"),
+  Str_noop("--no-default-paths      turn off relative paths from CSD/ORC/SCO"),
+  Str_noop("--sample-accurate       use sample-accurate timing of score events"),
+  Str_noop("--realtime              realtime priority mode"),
+  Str_noop("--nchnls=N              override number of audio channels"),
+  Str_noop("--nchnls_i=N            override number of input audio channels"),
+  Str_noop("--0dbfs=N               override 0dbfs (max positive signal amplitude)"),
+  Str_noop("--sinesize              length of internal sine table"),
+  Str_noop("--daemon                daemon mode: do not exit if CSD/orchestra is "
+                                    "not given, is empty or does not compile"),
+  Str_noop("--port=N                listen to UDP port N for instruments/orchestra "
+                                    "code (implies --daemon)"),
+  Str_noop("--vbr-quality=Ft        set quality of variable bit-rate compression"),
+  Str_noop("--devices[=in|out]      list available MIDI devices and exit"),
+  Str_noop("--midi-devices[=in|out] list available audio devices and exit"),
+  Str_noop("--get-system-sr         print system sr and exit"),
+  Str_noop("--ksmps=N               override ksmps"),
+  Str_noop("--fftlib=N              actual FFT lib to use (FFTLIB=0, "
+                                   "PFFFT = 1, vDSP =2)"),
+  Str_noop("--udp-echo              echo UDP commands on terminal"),
+  Str_noop("--aft-zero              set aftertouch to zero, not 127 (default)"),
   " ",
-  Str_noop("--help\t\t\tLong help"),
-
+  Str_noop("--help                  long help"),
   NULL
 };
 
@@ -309,39 +322,40 @@ void print_short_usage(CSOUND *csound)
       csound->Message(csound, "%s", Str(buf));
     }
     csound->Message(csound,
-                    Str("flag defaults: csound -s -otest -b%d -B%d -m%d\n"),
+                    Str("flag defaults: csound -s -otest -b%d -B%d -m%d\n\n"),
                     IOBUFSAMPS, IODACSAMPS, csound->oparms->msglevel);
 }
 
 static void longusage(CSOUND *p)
 {
     const char **sp;
-    p->Message(p, Str("Usage:\tcsound [-flags] orchfile scorefile\n"));
+    p->Message(p, Str("Usage:     csound [-flags] orchfile scorefile\n"));
     p->Message(p, Str("Legal flags are:\n"));
     p->Message(p, Str("Long format:\n\n"));
     for (sp = &(longUsageList[0]); *sp != NULL; sp++)
       p->Message(p, "%s\n", Str(*sp));
-    /* IV - Feb 19 2005 */
     dump_cfg_variables(p);
-    p->Message(p, Str("\nShort form:\n"));
+    p->Message(p, Str("\nShort format:\n\n"));
     print_short_usage(p);
-    // p->LongJmp(p, 0);
 }
 
-void dieu(CSOUND *csound, char *s, ...)
+CS_NORETURN void dieu(CSOUND *csound, char *s, ...)
 {
     va_list args;
 
-    csound->Message(csound,Str("Usage:\tcsound [-flags] orchfile scorefile\n"));
+    csound->Message(csound,Str("Usage:      csound [-flags] orchfile scorefile\n"));
     csound->Message(csound,Str("Legal flags are:\n"));
     print_short_usage(csound);
     va_start(args, s);
-    csound->ErrMsgV(csound, Str("Csound Command ERROR:\t"), s, args);
+    csound->ErrMsgV(csound, Str("Csound Command ERROR:    "), s, args);
     va_end(args);
-    if (csound->info_message_request == 0){
+    //***FIXME This code makes no sense
+    if (csound->info_message_request == 0) {
       csound->info_message_request = 0;
-    csound->LongJmp(csound, 1);
+      csound->LongJmp(csound, 1);
     }
+    //Added longjump -- JPff
+    csound->LongJmp(csound, 1);
 }
 
 void set_output_format(OPARMS *O, char c)
@@ -854,7 +868,7 @@ static int decode_long(CSOUND *csound, char *s, int argc, char **argv)
      */
     else if (UNLIKELY(!(strncmp (s, "tempo=", 6)))) {
       s += 6;
-      O->cmdTempo = atoi(s);
+      O->cmdTempo = atof(s);
       O->Beatmode = 1;                  /* on uninterpreted Beats */
       return 1;
     }
@@ -1074,6 +1088,33 @@ static int decode_long(CSOUND *csound, char *s, int argc, char **argv)
       O->daemon = atoi(s);
       return 1;
     }
+    else if (!(strncmp(s, "udp-echo",8))) {
+      s += 8;
+      O->echo = 1;
+      return 1;
+    }
+    else if (!(strncmp(s, "udp-console=",12))) {
+      char *ports;
+      s += 12;
+      ports = strchr(s, ':');
+      if(*s != '\0' && ports != NULL) {
+        *ports = '\0';
+        csoundUDPConsole(csound, s, atoi(ports+1),0);
+      } else
+        csound->Warning(csound, "UDP console: needs address and port\n");
+      return 1;
+    }
+    else if (!(strncmp(s, "udp-mirror-console=",19))) {
+      char *ports;
+      s += 19;
+      ports = strchr(s, ':');
+      if(*s != '\0' && ports != NULL) {
+        *ports = '\0';
+        csoundUDPConsole(csound, s, atoi(ports+1),1);
+      } else
+        csound->Warning(csound, "UDP console: needs address and port\n");
+      return 1;
+    }
     else if (!(strncmp(s, "fftlib=",7))) {
       s += 7;
       O->fft_lib = atoi(s);
@@ -1139,6 +1180,10 @@ static int decode_long(CSOUND *csound, char *s, int argc, char **argv)
       csound->info_message_request = 1;
       return 1;
     }
+    else if (!(strcmp(s, "aft-zero"))){
+      csound->aftouch = 0;
+      return 1;
+    }
 
     csoundErrorMsg(csound, Str("unknown long option: '--%s'"), s);
     return 0;
@@ -1298,7 +1343,7 @@ PUBLIC int argdecode(CSOUND *csound, int argc, const char **argv_)
             FIND(Str("no tempo value"));
             {
               double val;
-              sscanf(s, "%g%n", &val, &n); /* use this tempo .. */
+              sscanf(s, "%lg%n", &val, &n); /* use this tempo .. */
               s += n;
               if (UNLIKELY(val < 0.0)) dieu(csound, Str("illegal tempo"));
               else if (val == 0.0) {
@@ -1411,7 +1456,7 @@ PUBLIC int argdecode(CSOUND *csound, int argc, const char **argv_)
               else {
                 CORFIL *cf = copy_to_corefile(csound, s, NULL, 0);
                 readOptions(csound, cf, 0);
-                corfile_rm(&cf);
+                corfile_rm(csound, &cf);
                 csound->FileClose(csound, fd);
               }
               while (*s++) {};
diff --git a/Top/cscorfns.c b/Top/cscorfns.c
index 21f266f..3dd426f 100644
--- a/Top/cscorfns.c
+++ b/Top/cscorfns.c
@@ -172,7 +172,7 @@ PUBLIC EVLIST * cscoreListCreate(CSOUND *csound, int nslots)
     int   needsiz = sizeof(EVLIST) + nslots * sizeof(EVENT *);
     int   minfreesiz = needsiz + sizeof(CSHDR);
 
-    if (minfreesiz > MAXALLOC) {
+    if (UNLIKELY(minfreesiz > MAXALLOC)) {
       csound->Message(csound, Str("Not enough memory\n"));
       exit(1);
     }
@@ -203,7 +203,7 @@ PUBLIC EVENT * cscoreCreateEvent(CSOUND *csound, int pcnt)
     int   needsiz = sizeof(EVENT) + pcnt * sizeof(MYFLT);
     int   minfreesiz = needsiz + sizeof(CSHDR);
 
-    if (minfreesiz > MAXALLOC) {
+    if (UNLIKELY(minfreesiz > MAXALLOC)) {
       csound->Message(csound, Str("Not enough memory\n"));
       exit(1);
     }
@@ -279,7 +279,7 @@ PUBLIC EVENT * cscoreDefineEvent(CSOUND *csound, char *s)
         s++;
       while (*s == ' ')
         s++;
-      if (p > q && *s != '\0')  {           /* too many ? */
+      if (UNLIKELY(p > q && *s != '\0'))  {           /* too many ? */
         p++;
         csound->Message(csound,
                         Str("PMAX exceeded, string event truncated.\n"));
@@ -398,7 +398,7 @@ PUBLIC EVLIST * cscoreListGetSection(CSOUND *csound)
 
     a = cscoreListCreate(csound, NSLOTS);
     p = &a->e[1];
-    if (csound->scstr == NULL || csound->scstr->body[0] == '\0')
+    if (UNLIKELY(csound->scstr == NULL || csound->scstr->body[0] == '\0'))
       return a;
     while ((e = cscoreGetEvent(csound)) != NULL) {
       if (e->op == 's' || e->op == 'e')
@@ -827,9 +827,9 @@ PUBLIC int csoundInitializeCscore(CSOUND *csound, FILE* insco, FILE* outsco)
     EVENT  *next;
 
     if (insco != NULL) {
-      CORFIL *inf = corfile_create_w();
+      CORFIL *inf = corfile_create_w(csound);
       int c;
-      while ((c=getc(insco))!=EOF) corfile_putc(c, inf);
+      while ((c=getc(insco))!=EOF) corfile_putc(csound, c, inf);
       corfile_rewind(inf);
       csound->scstr = inf;
     }
@@ -914,12 +914,12 @@ PUBLIC FILE *cscoreFileGetCurrent(CSOUND *csound)
 PUBLIC void cscoreFileSetCurrent(CSOUND *csound, FILE *fp)
 {
     if (fp != NULL) {
-      CORFIL *inf = corfile_create_w();
+      CORFIL *inf = corfile_create_w(csound);
       int c;
       fseek(fp, 0, SEEK_SET);
-      while ((c=getc(fp))!=EOF) corfile_putc(c, inf);
+      while ((c=getc(fp))!=EOF) corfile_putc(csound, c, inf);
       corfile_rewind(inf);
-      corfile_rm(&csound->scstr);
+      corfile_rm(csound, &csound->scstr);
       csound->scstr = inf;
       nxtevt->op = '\0';
       atEOF = 0;
diff --git a/Top/csmodule.c b/Top/csmodule.c
index 7d70092..0f5e673 100644
--- a/Top/csmodule.c
+++ b/Top/csmodule.c
@@ -266,7 +266,7 @@ static CS_NOINLINE int csoundLoadExternal(CSOUND *csound,
         char *new =
           csound->ReAlloc(csound, csound->delayederrormessages,
                           strlen(csound->delayederrormessages)+strlen(ERRSTR)+11);
-        if (new==NULL) {
+        if (UNLIKELY(new==NULL)) {
           csound->Free(csound, csound->delayederrormessages);
           return CSOUND_ERROR;
         }
@@ -315,7 +315,7 @@ static CS_NOINLINE int csoundLoadExternal(CSOUND *csound,
       if (UNLIKELY(m.fn.o.opcode_init == NULL && m.fn.o.fgen_init == NULL)) {
         /* must have csound_opcode_init() or csound_fgen_init() */
         csoundCloseLibrary(h);
-        if (csound->oparms->msglevel & 0x400)
+        if (UNLIKELY(csound->oparms->msglevel & 0x400))
           csound->Warning(csound, Str("'%s' is not a Csound plugin library"),
                           libraryPath);
         return CSOUND_ERROR;
@@ -459,7 +459,7 @@ int csoundLoadModules(CSOUND *csound)
         continue;
       i = 0;
       do {
-        if ((fname[++n] | (char) 0x20) != buf[i])
+        if (UNLIKELY((fname[++n] | (char) 0x20) != buf[i]))
           break;
       } while (buf[++i] != '\0');
       if (buf[i] != '\0')
@@ -471,16 +471,16 @@ int csoundLoadModules(CSOUND *csound)
         continue;
       }
       /* printf("DEBUG %s(%d): possibly deny %s\n", __FILE__, __LINE__,fname); */
-      if (csoundCheckOpcodeDeny(csound, fname)) {
+      if (UNLIKELY(csoundCheckOpcodeDeny(csound, fname))) {
         csoundWarning(csound, Str("Library %s omitted\n"), fname);
         continue;
       }
       snprintf(buf, 1024, "%s%c%s", dname, DIRSEP, fname);
-      if (csound->oparms->odebug) {
+      if (UNLIKELY(csound->oparms->odebug)) {
         csoundMessage(csound, Str("Loading '%s'\n"), buf);
       }
       n = csoundLoadExternal(csound, buf);
-      if (UNLIKELY(n == CSOUND_ERROR))
+      if (UNLIKELY(UNLIKELY(n == CSOUND_ERROR)))
         continue;               /* ignore non-plugin files */
       if (UNLIKELY(n < err))
         err = n;                /* record serious errors */
@@ -503,7 +503,7 @@ int csoundLoadExternals(CSOUND *csound)
     int     i, cnt, err;
 
     s = csound->dl_opcodes_oplibs;
-    if (s == NULL || s[0] == '\0')
+    if (UNLIKELY(s == NULL || s[0] == '\0'))
       return 0;
     /* IV - Feb 19 2005 */
     csound->dl_opcodes_oplibs = NULL;
@@ -607,7 +607,7 @@ int csoundInitModules(CSOUND *csound)
     /* call init functions */
     for (m = (csoundModule_t*) csound->csmodule_db; m != NULL; m = m->nxt) {
       i = csoundInitModule(csound, m);
-      if (i != CSOUND_SUCCESS && i < retval)
+      if (UNLIKELY(i != CSOUND_SUCCESS && i < retval))
         retval = i;
     }
     /* return with error code */
@@ -626,7 +626,7 @@ int csoundLoadAndInitModule(CSOUND *csound, const char *fname)
     if (UNLIKELY(err != 0))
       return err;
     memcpy((void*) &tmpExitJmp, (void*) &csound->exitjmp, sizeof(jmp_buf));
-    if ((err = setjmp(csound->exitjmp)) != 0) {
+    if (UNLIKELY((err = setjmp(csound->exitjmp)) != 0)) {
       memcpy((void*) &csound->exitjmp, (void*) &tmpExitJmp, sizeof(jmp_buf));
       return (err == (CSOUND_EXITJMP_SUCCESS + CSOUND_MEMORY) ?
               CSOUND_MEMORY : CSOUND_INITIALIZATION);
@@ -805,6 +805,7 @@ extern long vaops_localops_init(CSOUND *, void*);
 extern long ugakbari_localops_init(CSOUND *, void *);
 extern long harmon_localops_init(CSOUND *, void *);
 extern long pitchtrack_localops_init(CSOUND *, void *);
+extern long squinewave_localops_init(CSOUND *, void *);
 
 extern long partikkel_localops_init(CSOUND *, void *);
 extern long shape_localops_init(CSOUND *, void *);
@@ -849,7 +850,7 @@ const INITFN staticmodules[] = { hrtfopcodes_localops_init, babo_localops_init,
                                  fareyseq_localops_init, hrtfearly_localops_init,
                                  hrtfreverb_localops_init, minmax_localops_init,
                                  vaops_localops_init, pvsgendy_localops_init,
-                                 paulstretch_localops_init,
+                                 paulstretch_localops_init, squinewave_localops_init,
 #ifdef LINUX
                                  cpumeter_localops_init,
 #endif
@@ -888,17 +889,17 @@ CS_NOINLINE int csoundInitStaticModules(CSOUND *csound)
       }
     }
     /* stdopc module */
-    if (stdopc_ModuleInit(csound)) return CSOUND_ERROR;
+    if (UNLIKELY(stdopc_ModuleInit(csound))) return CSOUND_ERROR;
 
     /* pvs module */
-    if (pvsopc_ModuleInit(csound)) return CSOUND_ERROR;
+    if (UNLIKELY(pvsopc_ModuleInit(csound))) return CSOUND_ERROR;
 
     /* sfont module */
     sfont_ModuleCreate(csound);
-    if (sfont_ModuleInit(csound)) return CSOUND_ERROR;
+    if (UNLIKELY(sfont_ModuleInit(csound))) return CSOUND_ERROR;
 
     /* newgabopc */
-    if (newgabopc_ModuleInit(csound)) return CSOUND_ERROR;
+    if (UNLIKELY(newgabopc_ModuleInit(csound))) return CSOUND_ERROR;
 
     /* modules were initialised successfully */
     /* Now fgens */
diff --git a/Top/csound.c b/Top/csound.c
index 00bc5bc..6266dfa 100644
--- a/Top/csound.c
+++ b/Top/csound.c
@@ -57,10 +57,10 @@
 #include "fftlib.h"
 #include "cs_par_base.h"
 #include "cs_par_orc_semantics.h"
-#include "cs_par_dispatch.h"
+//#include "cs_par_dispatch.h"
 #include "find_opcode.h"
 
-#if defined(linux) || defined(__HAIKU__) || defined(__EMSCRIPTEN__) || defined(__CYGWIN__)
+#if defined(linux)||defined(__HAIKU__)|| defined(__EMSCRIPTEN__)||defined(__CYGWIN__)
 #define PTHREAD_SPINLOCK_INITIALIZER 0
 #endif
 
@@ -69,6 +69,7 @@
 #include "csdebug.h"
 #include <time.h>
 
+extern void allocate_message_queue(CSOUND *csound);
 static void SetInternalYieldCallback(CSOUND *, int (*yieldCallback)(CSOUND *));
 int  playopen_dummy(CSOUND *, const csRtAudioParams *parm);
 void rtplay_dummy(CSOUND *, const MYFLT *outBuf, int nbytes);
@@ -82,7 +83,7 @@ static int  defaultCsoundYield(CSOUND *);
 static int  csoundDoCallback_(CSOUND *, void *, unsigned int);
 static void reset(CSOUND *);
 static int  csoundPerformKsmpsInternal(CSOUND *csound);
-static void csoundTableSetInternal(CSOUND *csound, int table, int index,
+void csoundTableSetInternal(CSOUND *csound, int table, int index,
                                    MYFLT value);
 static INSTRTXT **csoundGetInstrumentList(CSOUND *csound);
 uint64_t csoundGetKcounter(CSOUND *csound);
@@ -101,6 +102,7 @@ extern int fterror(const FGDATA *ff, const char *s, ...);
 void (*msgcallback_)(CSOUND *, int, const char *, va_list) = NULL;
 
 void csoundDebuggerBreakpointReached(CSOUND *csound);
+void message_dequeue(CSOUND *csound);
 
 extern OENTRY opcodlst_1[];
 
@@ -167,7 +169,7 @@ static void create_opcode_table(CSOUND *csound)
     /* Basic Entry1 stuff */
     err = csoundAppendOpcodes(csound, &(opcodlst_1[0]), -1);
 
-    if (err)
+    if (UNLIKELY(err))
       csoundDie(csound, Str("Error allocating opcode list"));
 }
 
@@ -517,7 +519,7 @@ static const CSOUND cenviron_ = {
     NULL, NULL,     /*  orchstr, *scorestr  */
     (OPDS*) NULL,   /*  ids                 */
     { (CS_VAR_POOL*)NULL,
-      (MYFLT_POOL *) NULL,
+      (CS_HASH_TABLE *) NULL,
       (CS_HASH_TABLE *) NULL,
       -1,
       (INSTRTXT**)NULL,
@@ -545,6 +547,7 @@ static const CSOUND cenviron_ = {
         NULL,
         NULL,
         0,
+        0,
         0
       },
       NULL,
@@ -638,7 +641,55 @@ static const CSOUND cenviron_ = {
     0,              /*  sectcnt             */
     0, 0, 0,        /*  inerrcnt, synterrcnt, perferrcnt */
     /* {NULL}, */   /*  instxtanchor  in engineState */
-    {NULL},         /*  actanchor           */
+    {   /*  actanchor           */
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    0,
+    NULL,
+    NULL,
+    0,
+    NULL,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0.0,
+    0.0,
+    NULL,
+    NULL,
+    0,
+    0,
+    FL(0.0),
+    FL(0.0), FL(0.0), FL(0.0),
+    NULL,
+    {FL(0.0), FL(0.0), FL(0.0), FL(0.0)},
+   NULL,
+   NULL,NULL,
+   NULL,
+    0,
+    0,
+    0,
+    NULL,
+    NULL,
+   0,
+   0,
+   0,
+    FL(0.0),
+    NULL,
+    NULL,
+    {NULL, FL(0.0)},
+   {NULL, FL(0.0)},
+   {NULL, FL(0.0)},
+   {NULL, FL(0.0)}
+    },
     {0L },          /*  rngcnt              */
     0, 0,           /*  rngflg, multichan   */
     NULL,           /*  evtFuncChain        */
@@ -714,6 +765,7 @@ static const CSOUND cenviron_ = {
       "",          /*  repeat_name[NAMELEN] */
       0,0,1,        /*  repeat_cnt, repeat_point, repeat_inc */
       NULL,         /*  repeat_mm */
+      0
     },
     {
       NULL,
@@ -728,7 +780,9 @@ static const CSOUND cenviron_ = {
         {NULL},
       },            /* EVTBLK  prve         */
       NULL,        /* Linebuf              */
-      0            /* linebufsiz */
+      0,            /* linebufsiz */
+      NULL, NULL,
+      0
     },
     {
       {0,0}, {0,0},  /* srngcnt, orngcnt    */
@@ -846,7 +900,8 @@ static const CSOUND cenviron_ = {
       0,            /*    no exit on compile error */
       0.4,          /*    vbr quality  */
       0,            /*    ksmps_override */
-      0             /*    fft_lib */
+      0,             /*    fft_lib */
+      0
     },
 
     {0, 0, {0}}, /* REMOT_BUF */
@@ -897,7 +952,17 @@ static const CSOUND cenviron_ = {
     -1,             /* audio system sr */
     0,              /* csdebug_data */
     kperf_nodebug,  /* current kperf function - nodebug by default */
-    0               /* which score parser */
+    0,              /* which score parser */
+    NULL,           /* symbtab */
+    0,              /* tseglen */
+    1,              /* inZero */
+    NULL,           /* msg_queue */
+    0,              /* msg_queue_wget */
+    0,              /* msg_queue_wput */
+    0,              /* msg_queue_rstart */
+    0,              /* msg_queue_items */
+    NULL,           /* directory for corfiles */
+    127,            /* aftouch */
     /*, NULL */           /* self-reference */
 };
 
@@ -1095,7 +1160,7 @@ static void signal_handler(int sig)
     {
       int j, nptrs;
 #define SIZE 100
-      void *buffer[100];
+      void *buffer[SIZE];
       char **strings;
 
       nptrs = backtrace(buffer, SIZE);
@@ -1105,7 +1170,7 @@ static void signal_handler(int sig)
          would produce similar output to the following: */
 
       strings = backtrace_symbols(buffer, nptrs);
-      if (strings == NULL) {
+      if (UNLIKELY(strings == NULL)) {
         perror("backtrace_symbols");
         exit(EXIT_FAILURE);
       }
@@ -1228,6 +1293,7 @@ PUBLIC CSOUND *csoundCreate(void *hostdata)
     csoundUnLock();
     csoundReset(csound);
     csound->API_lock = csoundCreateMutex(1);
+    allocate_message_queue(csound);
     /* NB: as suggested by F Pinot, keep the
        address of the pointer to CSOUND inside
        the struct, so it can be cleared later */
@@ -1353,6 +1419,9 @@ static int getThreadIndex(CSOUND *csound, void *threadId)
     while (current != NULL) {
 #ifdef HAVE_PTHREAD
       if (pthread_equal(*(pthread_t *)threadId, *(pthread_t *)current->threadId))
+#elif defined(WIN32)
+      DWORD* d = (DWORD*)threadId;
+      if (*d == GetThreadId((HANDLE)current->threadId))
 #else
       // FIXME - need to verify this works...
       if (threadId == current->threadId)
@@ -1431,55 +1500,55 @@ inline static int nodePerf(CSOUND *csound, int index, int numThreads)
         done = insds->init_done;
 #endif
         if (done) {
-        opstart = (OPDS*)task_map[which_task];
-        if (insds->ksmps == csound->ksmps) {
-        insds->spin = csound->spin;
-        insds->spout = csound->spraw;
-        insds->kcounter =  csound->kcounter;
-        while ((opstart = opstart->nxtp) != NULL) {
-          /* In case of jumping need this repeat of opstart */
-          opstart->insdshead->pds = opstart;
-          (*opstart->opadr)(csound, opstart); /* run each opcode */
-          opstart = opstart->insdshead->pds;
-        }
-        } else {
-          int i, n = csound->nspout, start = 0;
-          int lksmps = insds->ksmps;
-          int incr = csound->nchnls*lksmps;
-          int offset =  insds->ksmps_offset;
-          int early = insds->ksmps_no_end;
-          OPDS  *opstart;
-          insds->spin = csound->spin;
-          insds->spout = csound->spraw;
-          insds->kcounter =  csound->kcounter*csound->ksmps;
-
-          /* we have to deal with sample-accurate code
-             whole CS_KSMPS blocks are offset here, the
-             remainder is left to each opcode to deal with.
-          */
-          while (offset >= lksmps) {
-            offset -= lksmps;
-            start += csound->nchnls;
-          }
-          insds->ksmps_offset = offset;
-          if (early){
-            n -= (early*csound->nchnls);
-            insds->ksmps_no_end = early % lksmps;
-          }
-
-          for (i=start; i < n; i+=incr, insds->spin+=incr, insds->spout+=incr) {
-            opstart = (OPDS*) insds;
+          opstart = (OPDS*)task_map[which_task];
+          if (insds->ksmps == csound->ksmps) {
+            insds->spin = csound->spin;
+            insds->spout = csound->spraw;
+            insds->kcounter =  csound->kcounter;
             while ((opstart = opstart->nxtp) != NULL) {
+              /* In case of jumping need this repeat of opstart */
               opstart->insdshead->pds = opstart;
               (*opstart->opadr)(csound, opstart); /* run each opcode */
               opstart = opstart->insdshead->pds;
             }
-            insds->kcounter++;
+          } else {
+            int i, n = csound->nspout, start = 0;
+            int lksmps = insds->ksmps;
+            int incr = csound->nchnls*lksmps;
+            int offset =  insds->ksmps_offset;
+            int early = insds->ksmps_no_end;
+            OPDS  *opstart;
+            insds->spin = csound->spin;
+            insds->spout = csound->spraw;
+            insds->kcounter =  csound->kcounter*csound->ksmps;
+
+            /* we have to deal with sample-accurate code
+               whole CS_KSMPS blocks are offset here, the
+               remainder is left to each opcode to deal with.
+            */
+            while (offset >= lksmps) {
+              offset -= lksmps;
+              start += csound->nchnls;
+            }
+            insds->ksmps_offset = offset;
+            if (UNLIKELY(early)) {
+              n -= (early*csound->nchnls);
+              insds->ksmps_no_end = early % lksmps;
+            }
+
+            for (i=start; i < n; i+=incr, insds->spin+=incr, insds->spout+=incr) {
+              opstart = (OPDS*) insds;
+              while ((opstart = opstart->nxtp) != NULL) {
+                opstart->insdshead->pds = opstart;
+                (*opstart->opadr)(csound, opstart); /* run each opcode */
+                opstart = opstart->insdshead->pds;
+              }
+              insds->kcounter++;
+            }
           }
-        }
-        insds->ksmps_offset = 0; /* reset sample-accuracy offset */
-        insds->ksmps_no_end = 0;  /* reset end of loop samples */
-        played_count++;
+          insds->ksmps_offset = 0; /* reset sample-accuracy offset */
+          insds->ksmps_no_end = 0;  /* reset end of loop samples */
+          played_count++;
         }
         //printf("******** finished task %d\n", which_task);
         next_task = dag_end_task(csound, which_task);
@@ -1528,7 +1597,7 @@ unsigned long kperfThread(void * cs)
                     /* start ? start->insno : */
                     index+1,
                     numThreads);
-    if (index < 0) {
+    if (UNLIKELY(index < 0)) {
       csound->Die(csound, Str("Bad ThreadId"));
       return ULONG_MAX;
     }
@@ -1563,9 +1632,12 @@ int kperf_nodebug(CSOUND *csound)
     csound->icurTime += csound->ksmps;
     csound->curBeat += csound->curBeat_inc;
 
+   /* call message_dequeue to run API calls */
+    message_dequeue(csound);
+
 
     /* if skipping time on request by 'a' score statement: */
-    if (UNLIKELY(csound->advanceCnt)) {
+    if (UNLIKELY(UNLIKELY(csound->advanceCnt))) {
       csound->advanceCnt--;
       return 1;
     }
@@ -1631,7 +1703,7 @@ int kperf_nodebug(CSOUND *csound)
             ip->spout = csound->spraw;
             ip->kcounter =  csound->kcounter;
             if (ip->ksmps == csound->ksmps) {
-              while ((opstart = opstart->nxtp) != NULL) {
+              while ((opstart = opstart->nxtp) != NULL  && ip->actflg) {
                 opstart->insdshead->pds = opstart;
                 (*opstart->opadr)(csound, opstart); /* run each opcode */
                 opstart = opstart->insdshead->pds;
@@ -1656,12 +1728,12 @@ int kperf_nodebug(CSOUND *csound)
                   start += csound->nchnls;
                 }
                 ip->ksmps_offset = offset;
-                if (early){
+                if (UNLIKELY(early)) {
                   n -= (early*csound->nchnls);
                   ip->ksmps_no_end = early % lksmps;
-                  }
+                }
 
-               for (i=start; i < n; i+=incr, ip->spin+=incr, ip->spout+=incr) {
+                for (i=start; i < n; i+=incr, ip->spin+=incr, ip->spout+=incr) {
                   opstart = (OPDS*) ip;
                   while ((opstart = opstart->nxtp) != NULL && ip->actflg) {
                     opstart->insdshead->pds = opstart;
@@ -1778,6 +1850,10 @@ int kperf_debug(CSOUND *csound)
 {
     INSDS *ip;
     csdebug_data_t *data = (csdebug_data_t *) csound->csdebug_data;
+
+    /* call message_dequeue to run API calls */
+    message_dequeue(csound);
+
     if (!data || data->status != CSDEBUG_STATUS_STOPPED) {
       /* update orchestra time */
       csound->kcounter = ++(csound->global_kcounter);
@@ -1934,7 +2010,7 @@ int kperf_debug(CSOUND *csound)
                 start += csound->nchnls;
               }
               ip->ksmps_offset = offset;
-              if (early){
+              if (UNLIKELY(early)) {
                 n -= (early*csound->nchnls);
                 ip->ksmps_no_end = early % lksmps;
               }
@@ -1976,33 +2052,33 @@ int kperf_debug(CSOUND *csound)
 }
 
 
-PUBLIC int csoundReadScore(CSOUND *csound, const char *str)
+int csoundReadScoreInternal(CSOUND *csound, const char *str)
 {
     OPARMS  *O = csound->oparms;
-    csoundLockMutex(csound->API_lock);
      /* protect resource */
     if (csound->scorestr != NULL &&
        csound->scorestr->body != NULL)
       corfile_rewind(csound->scorestr);
-
-    csound->scorestr = corfile_create_w();
-    corfile_puts((char *)str, csound->scorestr);
+    csound->scorestr = corfile_create_w(csound);
+    corfile_puts(csound, (char *)str, csound->scorestr);
     //#ifdef SCORE_PARSER
-    corfile_puts("\n#exit\n", csound->scorestr);
+    corfile_puts(csound, "\n#exit\n", csound->scorestr);
     //#endif
-    corfile_flush(csound->scorestr);
+    corfile_flush(csound, csound->scorestr);
     /* copy sorted score name */
     if (csound->scstr == NULL && (csound->engineStatus & CS_STATE_COMP) == 0) {
       scsortstr(csound, csound->scorestr);
       O->playscore = csound->scstr;
+      //corfile_rm(csound, &(csound->scorestr));
+      //printf("%s\n", O->playscore->body);
     }
     else {
       char *sc = scsortstr(csound, csound->scorestr);
+      //printf("%s \n", sc);
       csoundInputMessageInternal(csound, (const char *) sc);
       csound->Free(csound, sc);
-      corfile_rm(&(csound->scorestr));
+      corfile_rm(csound, &(csound->scorestr));
     }
-    csoundUnlockMutex(csound->API_lock);
     return CSOUND_SUCCESS;
 }
 
@@ -2059,7 +2135,7 @@ static int csoundPerformKsmpsInternal(CSOUND *csound)
       return ((returnValue - CSOUND_EXITJMP_SUCCESS) | CSOUND_EXITJMP_SUCCESS);
     }
    do {
-     if ((done = sensevents(csound))) {
+     if (UNLIKELY((done = sensevents(csound)))) {
        csoundMessage(csound,
                      Str("Score finished in csoundPerformKsmpsInternal().\n"));
         return done;
@@ -2128,12 +2204,12 @@ PUBLIC int csoundPerform(CSOUND *csound)
     do {
            csoundLockMutex(csound->API_lock);
       do {
-        if ((done = sensevents(csound))) {
+        if (UNLIKELY((done = sensevents(csound)))) {
           csoundMessage(csound, Str("Score finished in csoundPerform().\n"));
           csoundUnlockMutex(csound->API_lock);
           if (csound->oparms->numThreads > 1) {
-           csound->multiThreadedComplete = 1;
-           csound->WaitBarrier(csound->barrier1);
+            csound->multiThreadedComplete = 1;
+            csound->WaitBarrier(csound->barrier1);
           }
           return done;
         }
@@ -2529,7 +2605,7 @@ csoundSetOutputChannelCallback(CSOUND *csound,
     csound->OutputChannelCallback_ = outputChannelCalback;
 }
 
-PUBLIC int csoundScoreEvent(CSOUND *csound, char type,
+int csoundScoreEventInternal(CSOUND *csound, char type,
                             const MYFLT *pfields, long numFields)
 {
     EVTBLK  evt;
@@ -2542,13 +2618,11 @@ PUBLIC int csoundScoreEvent(CSOUND *csound, char type,
     evt.pcnt = (int16) numFields;
     for (i = 0; i < (int) numFields; i++)
       evt.p[i + 1] = pfields[i];
-    csoundLockMutex(csound->API_lock);
     ret = insert_score_event_at_sample(csound, &evt, csound->icurTime);
-    csoundUnlockMutex(csound->API_lock);
     return ret;
 }
 
-PUBLIC int csoundScoreEventAbsolute(CSOUND *csound, char type,
+int csoundScoreEventAbsoluteInternal(CSOUND *csound, char type,
                                     const MYFLT *pfields, long numFields,
                                     double time_ofs)
 {
@@ -2562,9 +2636,7 @@ PUBLIC int csoundScoreEventAbsolute(CSOUND *csound, char type,
     evt.pcnt = (int16) numFields;
     for (i = 0; i < (int) numFields; i++)
       evt.p[i + 1] = pfields[i];
-   csoundLockMutex(csound->API_lock);
     ret = insert_score_event(csound, &evt, time_ofs);
-   csoundUnlockMutex(csound->API_lock);
     return ret;
 }
 
@@ -2767,9 +2839,9 @@ int DummyMidiInOpen(CSOUND *csound, void **userData,
     (void) devName;
     *userData = NULL;
     s = (char*) csoundQueryGlobalVariable(csound, "_RTMIDI");
-    if (s == NULL ||
+    if (UNLIKELY(s == NULL ||
         (strcmp(s, "null") == 0 || strcmp(s, "Null") == 0 ||
-         strcmp(s, "NULL") == 0)) {
+         strcmp(s, "NULL") == 0))) {
       csoundMessage(csound, Str("WARNING: real time midi input disabled, "
                                 "using dummy functions\n"));
       return 0;
@@ -2943,7 +3015,7 @@ static CS_NOINLINE int opcode_list_new_oentry(CSOUND *csound,
     OENTRY *entryCopy;
     char *shortName;
 
-    if (ep->opname == NULL || csound->opcodes == NULL)
+    if (UNLIKELY(ep->opname == NULL || csound->opcodes == NULL))
       return CSOUND_ERROR;
 
     shortName = get_opcode_short_name(csound, ep->opname);
@@ -3150,7 +3222,7 @@ PUBLIC void csoundSetRTAudioModule(CSOUND *csound, const char *module){
     char *s;
     if ((s = csoundQueryGlobalVariable(csound, "_RTAUDIO")) != NULL)
       strncpy(s, module, 20);
-    if (s==NULL) return;        /* Should not happen */
+    if (UNLIKELY(s==NULL)) return;        /* Should not happen */
     if (strcmp(s, "null") == 0 || strcmp(s, "Null") == 0 ||
         strcmp(s, "NULL") == 0) {
       csound->Message(csound, Str("setting dummy interface\n"));
@@ -3172,7 +3244,7 @@ PUBLIC void csoundSetMIDIModule(CSOUND *csound, const char *module){
 
     if ((s = csoundQueryGlobalVariable(csound, "_RTMIDI")) != NULL)
       strncpy(s, module, 20);
-    if (s==NULL) return;        /* Should not happen */
+    if (UNLIKELY(s==NULL)) return;        /* Should not happen */
     if (strcmp(s, "null") == 0 || strcmp(s, "Null") == 0 ||
        strcmp(s, "NULL") == 0) {
       csound->SetMIDIDeviceListCallback(csound, midi_dev_list_dummy);
@@ -3193,7 +3265,7 @@ PUBLIC void csoundSetMIDIModule(CSOUND *csound, const char *module){
 PUBLIC int csoundGetModule(CSOUND *csound, int no, char **module, char **type){
     MODULE_INFO **modules =
       (MODULE_INFO **) csoundQueryGlobalVariable(csound, "_MODULES");
-    if (modules[no] == NULL || no >= MAX_MODULES) return CSOUND_ERROR;
+    if (UNLIKELY(modules[no] == NULL || no >= MAX_MODULES)) return CSOUND_ERROR;
     *module = modules[no]->module;
     *type = modules[no]->type;
     return CSOUND_SUCCESS;
@@ -3223,7 +3295,7 @@ PUBLIC void csoundReset(CSOUND *csound)
      pthread_spin_init((pthread_spinlock_t*)&csound->spinlock1,
                        PTHREAD_PROCESS_PRIVATE);
     #endif
-     if (O->odebug)
+     if (UNLIKELY(O->odebug))
         csound->Message(csound,"init spinlocks\n");
     }
 
@@ -3242,7 +3314,7 @@ PUBLIC void csoundReset(CSOUND *csound)
 
 
     csound->engineState.stringPool = cs_hash_table_create(csound);
-    csound->engineState.constantsPool = myflt_pool_create(csound);
+    csound->engineState.constantsPool = cs_hash_table_create(csound);
     if (csound->symbtab != NULL)
       cs_hash_table_mfree_complete(csound, csound->symbtab);
     csound->symbtab = NULL;
@@ -3275,7 +3347,7 @@ PUBLIC void csoundReset(CSOUND *csound)
         csound->Free(csound, csound->delayederrormessages);
         csound->delayederrormessages = NULL;
       }
-      if (err != CSOUND_SUCCESS)
+      if (UNLIKELY(err != CSOUND_SUCCESS))
         csound->Die(csound, Str("Failed during csoundLoadModules"));
 
       /* VL: moved here from main.c */
@@ -3443,21 +3515,36 @@ PUBLIC MYFLT csoundTableGet(CSOUND *csound, int table, int index)
     return csound->flist[table]->ftable[index];
 }
 
-static void csoundTableSetInternal(CSOUND *csound,
+void csoundTableSetInternal(CSOUND *csound,
                                    int table, int index, MYFLT value)
 {
+    if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
     csound->flist[table]->ftable[index] = value;
+    if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
 }
 
-PUBLIC void csoundTableSet(CSOUND *csound, int table, int index, MYFLT value)
-{
+void csoundTableCopyOutInternal(CSOUND *csound, int table, MYFLT *ptable){
+    int len;
+    MYFLT *ftab;
     /* in realtime mode init pass is executed in a separate thread, so
-     we need to protect it */
-    csoundLockMutex(csound->API_lock);
-   if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
-    csound->flist[table]->ftable[index] = value;
-   if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
-    csoundUnlockMutex(csound->API_lock);
+       we need to protect it */
+    if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
+    len = csoundGetTable(csound, &ftab, table);
+    if (UNLIKELY(len>0x00ffffff)) len = 0x00ffffff; // As coverity is unhappy
+    memcpy(ptable, ftab, (size_t) (len*sizeof(MYFLT)));
+    if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
+}
+
+void csoundTableCopyInInternal(CSOUND *csound, int table, MYFLT *ptable){
+    int len;
+    MYFLT *ftab;
+    /* in realtime mode init pass is executed in a separate thread, so
+       we need to protect it */
+    if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
+    len = csoundGetTable(csound, &ftab, table);
+    if (UNLIKELY(len>0x00ffffff)) len = 0x00ffffff; // As coverity is unhappy
+    memcpy(ftab, ptable, (size_t) (len*sizeof(MYFLT)));
+    if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
 }
 
 static int csoundDoCallback_(CSOUND *csound, void *p, unsigned int type)
diff --git a/Top/main.c b/Top/main.c
index d4c07cb..19cf085 100644
--- a/Top/main.c
+++ b/Top/main.c
@@ -31,22 +31,23 @@
 
 #include "cs_par_base.h"
 #include "cs_par_orc_semantics.h"
-#include "cs_par_dispatch.h"
-
-extern int UDPServerStart(CSOUND *csound, int port);
-extern  void    dieu(CSOUND *, char *, ...);
-extern  int     argdecode(CSOUND *, int, const char **);
-extern  int     init_pvsys(CSOUND *);
-//extern  char    *get_sconame(CSOUND *);
-extern  void    print_benchmark_info(CSOUND *, const char *);
-extern  void    openMIDIout(CSOUND *);
-extern  int     read_unified_file(CSOUND *, char **, char **);
-extern  int     read_unified_file2(CSOUND *csound, char *csd);
-extern  int     read_unified_file4(CSOUND *csound, CORFIL *csd);
-extern  uintptr_t  kperfThread(void * cs);
-extern void cs_init_math_constants_macros(CSOUND *csound, PRE_PARM *yyscanner);
-extern void cs_init_omacros(CSOUND *csound, PRE_PARM*, NAMES *nn);
-extern void csoundInputMessageInternal(CSOUND *csound, const char *message);
+//#include "cs_par_dispatch.h"
+
+extern void allocate_message_queue(CSOUND *csound);
+CS_NORETURN void    dieu(CSOUND *, char *, ...);
+  int     argdecode(CSOUND *, int, const char **);
+  int     init_pvsys(CSOUND *);
+//  char    *get_sconame(CSOUND *);
+  void    print_benchmark_info(CSOUND *, const char *);
+  void    openMIDIout(CSOUND *);
+  int     read_unified_file(CSOUND *, char **, char **);
+  int     read_unified_file2(CSOUND *csound, char *csd);
+  int     read_unified_file4(CSOUND *csound, CORFIL *csd);
+  uintptr_t  kperfThread(void * cs);
+ void cs_init_math_constants_macros(CSOUND *csound, PRE_PARM *yyscanner);
+ void cs_init_omacros(CSOUND *csound, PRE_PARM*, NAMES *nn);
+ void csoundInputMessageInternal(CSOUND *csound, const char *message);
+ int csoundCompileOrcInternal(CSOUND *csound, const char *str, int async);
 
 static void checkOptions(CSOUND *csound)
 {
@@ -60,7 +61,7 @@ static void checkOptions(CSOUND *csound)
     if (csrcname != NULL && csrcname[0] != '\0') {
       fd = csound->FileOpen2(csound, &csrc, CSFILE_STD, csrcname, "r", NULL,
                              CSFTYPE_OPTIONS, 0);
-      if (fd == NULL)
+      if (UNLIKELY(fd == NULL))
         csoundMessage(csound, Str("WARNING: cannot open csound6rc file %s\n"),
                       csrcname);
       else
@@ -81,7 +82,7 @@ static void checkOptions(CSOUND *csound)
       CORFIL *cf = copy_to_corefile(csound, s, NULL, 0);
       corfile_rewind(cf);
       readOptions(csound, cf, 0);
-      corfile_rm(&cf);
+      corfile_rm(csound, &cf);
       csound->FileClose(csound, fd);
       csound->Free(csound, s);
     }
@@ -94,7 +95,7 @@ static void checkOptions(CSOUND *csound)
       readOptions(csound, cf, 0);
       csound->Message(csound,
                       Str("Reading options from local directory .csound6rc \n"));
-      corfile_rm(&cf);
+      corfile_rm(csound, &cf);
       csound->FileClose(csound, fd);
     }
 }
@@ -114,18 +115,18 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       return ((n - CSOUND_EXITJMP_SUCCESS) | CSOUND_EXITJMP_SUCCESS);
     }
 
-    if (csound->engineStatus & CS_STATE_COMP) {
+    if (UNLIKELY(csound->engineStatus & CS_STATE_COMP)) {
       csound->Message(csound, Str("Csound is already started, call csoundReset()\n"
-                                  "before starting again \n"));
+                                  "before starting again.\n"));
       return CSOUND_ERROR;
     }
 
-    if (--argc <= 0) {
+    if (UNLIKELY(--argc <= 0)) {
       dieu(csound, Str("insufficient arguments"));
     }
     /* command line: allow orc/sco/csd name */
     csound->orcname_mode = 0;   /* 0: normal, 1: ignore, 2: fail */
-    if (argdecode(csound, argc, argv) == 0)
+    if (UNLIKELY(argdecode(csound, argc, argv) == 0))
       csound->LongJmp(csound, 1);
     /* do not allow orc/sco/csd name in .csound6rc */
     csound->orcname_mode = 2;
@@ -143,7 +144,7 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
         csound->info_message_request = 0;
         csound->LongJmp(csound, 1);
       }
-      else if (csound->oparms->daemon == 0)
+      else if (UNLIKELY(csound->oparms->daemon == 0))
          dieu(csound, Str("no orchestra name"));
 
     }
@@ -166,14 +167,14 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       }
 
       if (csound->orchname != NULL) {
-      csound->csdname = csound->orchname; /* save original CSD name */
+        csound->csdname = csound->orchname; /* save original CSD name */
       {
         CORFIL *cf = copy_to_corefile(csound, csound->csdname, NULL, 0);
-        if (cf == NULL) {
+        if (UNLIKELY(cf == NULL)) {
           csound->Die(csound, Str("Reading CSD failed ... stopping"));
         }
         corfile_rewind(cf);
-        if (!read_unified_file4(csound, cf)) {
+        if (UNLIKELY(!read_unified_file4(csound, cf))) {
           csound->Die(csound, Str("Reading CSD failed ... stopping"));
         }
         /* cf is deleted in read_unified_file4 */
@@ -188,12 +189,12 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
     csound->orcname_mode = 1;           /* ignore orc/sco name */
     argdecode(csound, argc, argv);      /* should not fail this time */
     /* some error checking */
-    if (csound->stdin_assign_flg &&
-        (csound->stdin_assign_flg & (csound->stdin_assign_flg - 1)) != 0) {
+    if (UNLIKELY(csound->stdin_assign_flg &&
+         (csound->stdin_assign_flg & (csound->stdin_assign_flg - 1)) != 0)) {
       csound->Die(csound, Str("error: multiple uses of stdin"));
     }
-    if (csound->stdout_assign_flg &&
-        (csound->stdout_assign_flg & (csound->stdout_assign_flg - 1)) != 0) {
+    if (UNLIKELY(csound->stdout_assign_flg &&
+       (csound->stdout_assign_flg & (csound->stdout_assign_flg - 1)) != 0)) {
       csound->Die(csound, Str("error: multiple uses of stdout"));
     }
     /* done parsing csound6rc, CSD, and command line options */
@@ -204,8 +205,8 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       // csound->scorestr = corfile_create_r("f0 800000000000.0 \n");
       // VL 21-09-2016: it looks like #exit is needed for the
       // new score parser to work.
-      csound->scorestr = corfile_create_r("\n#exit\n");
-      corfile_flush(csound->scorestr);
+      csound->scorestr = corfile_create_r(csound, "\n#exit\n");
+      corfile_flush(csound, csound->scorestr);
       if (O->RTevents)
         csound->Message(csound, Str("realtime performance using dummy "
                                     "numeric scorefile\n"));
@@ -233,12 +234,12 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       csound->Message(csound, Str("orchname:  %s\n"), csound->orchname);
       csound->orcLineOffset = 1; /* Guess -- JPff */
       csound->orchstr = copy_to_corefile(csound, csound->orchname, NULL, 0);
-      if (csound->orchstr==NULL)
+      if (UNLIKELY(csound->orchstr==NULL))
         csound->Die(csound,
-                    Str("Failed to open input file - %s\n"), csound->orchname);
-      corfile_puts("\n#exit\n", csound->orchstr);
-      corfile_putc('\0', csound->orchstr);
-      corfile_putc('\0', csound->orchstr);
+                    Str("main: failed to open input file - %s\n"), csound->orchname);
+      corfile_puts(csound, "\n#exit\n", csound->orchstr);
+      corfile_putc(csound, '\0', csound->orchstr);
+      corfile_putc(csound, '\0', csound->orchstr);
       corfile_rewind(csound->orchstr);
       //csound->orchname = NULL;
     }
@@ -249,18 +250,19 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
      /* VL: added this also to csoundReset() in csound.c   */
     if (csoundInitModules(csound) != 0)
       csound->LongJmp(csound, 1);
-     if (csoundCompileOrc(csound, NULL) != 0){
-       if (csound->oparms->daemon == 0)
-         csoundDie(csound, Str("cannot compile orchestra"));
-       else {
-         /* VL -- 21-10-13 Csound does not need to die on
-          failure to compile. It can carry on, because new
-          instruments can be compiled again */
-       csound->Warning(csound, Str("cannot compile orchestra.\n"
-                                   "Csound will start with no instruments"));
+    if (UNLIKELY(csoundCompileOrcInternal(csound, NULL, 0) != 0)){
+      if (csound->oparms->daemon == 0)
+        csoundDie(csound, Str("cannot compile orchestra"));
+      else {
+        /* VL -- 21-10-13 Csound does not need to die on
+           failure to compile. It can carry on, because new
+           instruments can be compiled again */
+        if (csound->oparms->daemon == 0)
+          csound->Warning(csound, Str("cannot compile orchestra.\n"
+                                      "Csound will start with no instruments"));
        }
-     }
-     csound->modules_loaded = 1;
+    }
+    csound->modules_loaded = 1;
 
     s = csoundQueryGlobalVariable(csound, "_RTMIDI");
     if (csound->enableHostImplementedMIDIIO == 1) {
@@ -272,7 +274,7 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
 
     /* IV - Jan 28 2005 */
     print_benchmark_info(csound, Str("end of orchestra compile"));
-    if (!csoundYield(csound))
+    if (UNLIKELY(!csoundYield(csound)))
       return -1;
     /* IV - Oct 31 2002: now we can read and sort the score */
 
@@ -289,7 +291,7 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       //sortedscore = NULL;
       if (csound->scorestr==NULL) {
         csound->scorestr = copy_to_corefile(csound, csound->scorename, NULL, 1);
-        if (csound->scorestr==NULL)
+        if (UNLIKELY(csound->scorestr==NULL))
           csoundDie(csound, Str("cannot open scorefile %s"), csound->scorename);
       }
       csound->Message(csound, Str("sorting score ...\n"));
@@ -302,7 +304,7 @@ PUBLIC int csoundCompileArgs(CSOUND *csound, int argc, const char **argv)
       }
     }
     if (csound->xfilename != NULL) {            /* optionally extract */
-      if (!(xfile = fopen(csound->xfilename, "r")))
+      if (UNLIKELY(!(xfile = fopen(csound->xfilename, "r"))))
         csoundDie(csound, Str("cannot open extract file %s"),csound->xfilename);
       csoundNotifyFileOpened(csound, csound->xfilename,
                              CSFTYPE_EXTRACT_PARMS, 0, 0);
@@ -358,9 +360,9 @@ PUBLIC int csoundStart(CSOUND *csound) // DEBUG
     if (csound->csdname == NULL)
           checkOptions(csound);
 
-    if (csound->engineStatus & CS_STATE_COMP){
-      csound->Message(csound, "Csound is already started, call csoundReset()\n"
-                      "before starting again \n");
+    if (UNLIKELY(csound->engineStatus & CS_STATE_COMP)){
+      csound->Message(csound, Str("Csound is already started, call csoundReset()\n"
+                                  "before starting again.\n"));
       return CSOUND_ERROR;
     }
 
@@ -413,7 +415,7 @@ PUBLIC int csoundStart(CSOUND *csound) // DEBUG
     }
     if (csound->instr0 == NULL) { /* compile dummy instr0 to allow csound to
                                      start with no orchestra */
-      csoundCompileOrc(csound, "idummy = 0 \n");
+      csoundCompileOrcInternal(csound, "idummy = 0 \n", 0);
     }
 
     if ((n = setjmp(csound->exitjmp)) != 0) {
@@ -494,9 +496,9 @@ PUBLIC int csoundStart(CSOUND *csound) // DEBUG
     }
     csound->engineStatus |= CS_STATE_COMP;
     if (csound->oparms->daemon > 1)
-      UDPServerStart(csound,csound->oparms->daemon);
-
+      csoundUDPServerStart(csound,csound->oparms->daemon);
 
+    allocate_message_queue(csound); /* if de-alloc by reset */
     return musmon(csound);
 }
 
@@ -512,7 +514,7 @@ PUBLIC int csoundCompileCsd(CSOUND *csound, const char *str) {
     CORFIL *tt = copy_to_corefile(csound, str, NULL, 0);
     if (LIKELY(tt != NULL)) {
       int res = csoundCompileCsdText(csound, tt->body);
-      corfile_rm(&tt);
+      corfile_rm(csound, &tt);
       return res;
     }
     return CSOUND_ERROR;
@@ -521,29 +523,29 @@ PUBLIC int csoundCompileCsd(CSOUND *csound, const char *str) {
 PUBLIC int csoundCompileCsdText(CSOUND *csound, const char *csd_text)
 {
     //csound->oparms->odebug = 1; /* *** SWITCH ON EXTRA DEBUGGING *** */
-    int res = read_unified_file4(csound, corfile_create_r(csd_text));
-    if (res) {
+    int res = read_unified_file4(csound, corfile_create_r(csound, csd_text));
+    if (LIKELY(res)) {
       if (csound->csdname != NULL) csound->Free(csound, csound->csdname);
       csound->csdname = cs_strdup(csound, "*string*"); /* Mark as from text. */
-      res = csoundCompileOrc(csound, NULL);
+      res = csoundCompileOrcInternal(csound, NULL, 0);
       if (res == CSOUND_SUCCESS){
-        csoundLockMutex(csound->API_lock);
-        char *sc = scsortstr(csound, csound->scorestr);
-        if (sc) {
-          if ((csound->engineStatus & CS_STATE_COMP) != 0) {
-            csound->Message(csound,
-                            Str("\"Real-time\" performance (engineStatus: %d).\n"),
-                            csound->engineStatus);
-            csoundInputMessageInternal(csound, (const char *) sc);
-            csound->Free(csound, sc);
-          } else {
-            csound->Message(csound,
-                            Str("\"Non-real-time\" performance "
-                                "(engineStatus: %d).\n"), csound->engineStatus);
+        if ((csound->engineStatus & CS_STATE_COMP) != 0) {
+          char *sc = scsortstr(csound, csound->scorestr);
+          if (sc) {
+            if(csound->oparms->odebug)
+              csound->Message(csound,
+                              Str("Real-time score events (engineStatus: %d).\n"),
+                              csound->engineStatus);
+            csoundInputMessage(csound, (const char *) sc);
+          }
+        } else {
+            scsortstr(csound, csound->scorestr);
+            if(csound->oparms->odebug)
+              csound->Message(csound,
+                              Str("Compiled score "
+                                  "(engineStatus: %d).\n"), csound->engineStatus);
           }
         }
-        csoundUnlockMutex(csound->API_lock);
-      }
-    }
-    return res;
+       return res;
+    } else return CSOUND_ERROR;
 }
diff --git a/Top/one_file.c b/Top/one_file.c
index 08ec0b5..bcfd2e2 100644
--- a/Top/one_file.c
+++ b/Top/one_file.c
@@ -122,7 +122,7 @@ CS_NOINLINE char *csoundTmpFileName(CSOUND *csound, const char *ext)
       /* if the file already exists, try again */
     } while (stat(lbuf, &tmp) == 0);
 #endif
-    return strdup(lbuf);
+return cs_strdup(csound, lbuf);
 }
 
 static inline void alloc_globals(CSOUND *csound)
@@ -137,7 +137,7 @@ static char *my_fgets(CSOUND *csound, char *s, int n, FILE *stream)
     if (UNLIKELY(n <= 1)) return NULL;        /* best of a bad deal */
     do {
       int ch = getc(stream);
-      if (ch == EOF) {                       /* error or EOF       */
+      if (UNLIKELY(ch == EOF)) {             /* error or EOF       */
         if (s == a) return NULL;             /* no chars -> leave  */
         if (ferror(stream)) a = NULL;
         break; /* add NULL even if ferror(), spec says 'indeterminate' */
@@ -167,7 +167,7 @@ void remove_tmpfiles(CSOUND *csound)            /* IV - Feb 03 2005 */
       csoundMessage(csound, Str("Removing temporary file %s ...\n"),
                             STA(toremove)->name);
 #endif
-      if (remove(STA(toremove)->name))
+      if (UNLIKELY(remove(STA(toremove)->name)))
         csoundMessage(csound, Str("WARNING: could not remove %s\n"),
                               STA(toremove)->name);
       csound->Free(csound, STA(toremove)->name);
@@ -187,7 +187,7 @@ void add_tmpfile(CSOUND *csound, char *name)    /* IV - Feb 03 2005 */
     STA(toremove) = tmp;
 }
 
-static int blank_buffer(CSOUND *csound, char *buffer)
+static int blank_buffer(/*CSOUND *csound,*/ char *buffer)
 {
     const char *s;
     for (s = &(buffer[0]); *s != '\0' && *s != '\n'; s++) {
@@ -207,7 +207,7 @@ static char *my_fgets_cf(CSOUND *csound, char *s, int n, CORFIL *stream)
     if (UNLIKELY(n <= 1)) return NULL;        /* best of a bad deal */
     do {
       int ch = corfile_getc(stream);
-      if (ch == EOF) {                       /* error or EOF       */
+      if (UNLIKELY(ch == EOF)) {             /* error or EOF       */
         if (s == a) return NULL;             /* no chars -> leave  */
         break;
       }
@@ -274,7 +274,7 @@ int readOptions(CSOUND *csound, CORFIL *cf, int readingCsOptions)
           while (isblank(*p)) p++;
 
           if (*p== '"') {
-            if (argc == CSD_MAX_ARGS)
+            if (UNLIKELY(argc == CSD_MAX_ARGS))
               csoundDie(csound, Str("More than %d arguments in <CsOptions>"),
                         CSD_MAX_ARGS);
             argv[++argc] = ++p;
@@ -365,63 +365,243 @@ int readOptions(CSOUND *csound, CORFIL *cf, int readingCsOptions)
 
 
 
+#if 1
+static int all_blank(char* start, char* end)
+{
+    while (start != end) {
+      if (!isblank(*start)) return 0;
+      start++;
+    }
+    return 1;
+}
+
+static int createOrchestra(CSOUND *csound, CORFIL *cf)
+{
+    char  *p, *q;
+    CORFIL *incore = corfile_create_w(csound);
+    char  buffer[CSD_MAX_LINE_LEN];
+    int state = 0;
+
+    csound->orcLineOffset = STA(csdlinecount)+1;
+ nxt:
+    while (my_fgets_cf(csound, buffer, CSD_MAX_LINE_LEN, cf)!= NULL) {
+      int c;
+      p = buffer;
+
+      if (state == 0 &&
+          (q = strstr(p, "</CsInstruments>")) &&
+          all_blank(buffer,q)) {
+        csound->Message(csound, "closing tag\n");
+        //corfile_flush(incore);
+        corfile_puts(csound, "\n#exit\n", incore);
+        corfile_putc(csound, '\0', incore);
+        corfile_putc(csound, '\0', incore);
+        csound->orchstr = incore;
+        return TRUE;
+      }
+    top:
+      if (*p == '\0') continue;
+      if (state==0) {
+        while ((c = *p++)) {
+          if (c=='"') { corfile_putc(csound, c,incore); state = 1; goto top;}
+          else if (c=='/' && *p=='*') {
+            corfile_putc(csound, c,incore);
+            corfile_putc(csound, *p++,incore); state = 2; goto top;
+          }
+          else if (c == ';'|| (c=='/' && *p=='/')) {
+            corfile_puts(csound, p-1, incore); goto nxt;
+          }
+          else if (c=='{' && *p=='{') {
+            corfile_putc(csound, c,incore);
+            corfile_putc(csound, *p++,incore); state = 3; goto top;
+          }
+          corfile_putc(csound, c, incore);
+        }
+      }
+      else if (state == 1) {    /* string */
+        while (((c=*p++))) {
+          corfile_putc(csound, c, incore);
+          if (c=='\\') {
+            corfile_putc(csound, *p++, incore);
+            if (*p=='\0') goto top;
+          }
+          else if (c=='"') { state =  0; goto top;}
+        }
+        csoundErrorMsg(csound, Str("missing \" to terminate string"));
+        corfile_rm(csound, &incore);
+        return FALSE;
+      }
+      else if (state == 2) {    /* multiline comment */
+        while ( (c = *p++)) {
+          if (c=='*' && *p=='/') {
+            corfile_putc(csound, c,incore);
+            corfile_putc(csound, *p++,incore); state = 0; goto top;
+          }
+          corfile_putc(csound, c, incore);
+        }
+        goto nxt;
+      }
+      else if (state == 3) {    /* extended string */
+        while ( (c = *p++)) {
+          if (c=='}' && *p=='}') {
+            corfile_putc(csound, c,incore); corfile_putc(csound, *p++,incore);
+            state = 0; goto top;
+          }
+          corfile_putc(csound, c, incore);
+        }
+        goto nxt;
+      }
+    }
+    csoundErrorMsg(csound, Str("Missing end tag </CsInstruments>"));
+    corfile_rm(csound, &incore);
+    return FALSE;
+}
+#else
 static int createOrchestra(CSOUND *csound, CORFIL *cf)
 {
     char  *p;
-    CORFIL *incore = corfile_create_w();
+    CORFIL *incore = corfile_create_w(csound);
     char  buffer[CSD_MAX_LINE_LEN];
+    int comm = 0;
 
     csound->orcLineOffset = STA(csdlinecount)+1;
     while (my_fgets_cf(csound, buffer, CSD_MAX_LINE_LEN, cf)!= NULL) {
       p = buffer;
       while (isblank(*p)) p++;
-      if (strstr(p, "</CsInstruments>") == p) {
+      if(*p == '/' && *(p+1) == '*') {
+        //csound->Message(csound, "comment start\n");
+        comm = 1; p += 2;
+      }
+
+      if (comm == 0 &&
+          strstr(p, "</CsInstruments>") == p) {
+        //csound->Message(csound, "closing tag\n");
         //corfile_flush(incore);
-        corfile_puts("\n#exit\n", incore);
-        corfile_putc('\0', incore);
-        corfile_putc('\0', incore);
+        corfile_puts(csound, "\n#exit\n", incore);
+        corfile_putc(csound, '\0', incore);
+        corfile_putc(csound, '\0', incore);
         csound->orchstr = incore;
         return TRUE;
+      } else if (comm) {
+        while (p < buffer + CSD_MAX_LINE_LEN){
+          if(*p == '*' && *(p+1) == '/') {
+           comm = 0;
+           // csound->Message(csound, "comment end\n");
+           break;
+          } else p++;
+        }
+        corfile_puts(csound, buffer, incore);
       }
       else
-        corfile_puts(buffer, incore);
+        corfile_puts(csound, buffer, incore);
     }
     csoundErrorMsg(csound, Str("Missing end tag </CsInstruments>"));
-    corfile_rm(&incore);
+    corfile_rm(csound, &incore);
     return FALSE;
 }
+#endif
 
+#if 1
+static int createScore(CSOUND *csound, CORFIL *cf)
+{
+    char   *p, *q;
+    int    state = 0;
+    char   buffer[CSD_MAX_LINE_LEN];
 
-
+    if (csound->scorestr == NULL)
+      csound->scorestr = corfile_create_w(csound);
+    csound->scoLineOffset = STA(csdlinecount);
+ nxt:
+    while (my_fgets_cf(csound, buffer, CSD_MAX_LINE_LEN, cf)!= NULL) {
+      int c;
+      p = buffer;
+      if (state == 0 &&
+          (q = strstr(p, "</CsScore>")) &&
+          all_blank(buffer,q)) {
+        corfile_puts(csound, "\n#exit\n", csound->scorestr);
+        corfile_putc(csound, '\0', csound->scorestr); /* For use in bison/flex */
+        corfile_putc(csound, '\0', csound->scorestr); /* For use in bison/flex */
+        return TRUE;
+      }
+    top:
+      if (*p == '\0') continue;
+      if (state==0) {
+        while ((c = *p++)) {
+          if (c=='"') {
+            corfile_putc(csound, c,csound->scorestr); state = 1; goto top;}
+          else if (c=='/' && *p=='*') {
+            corfile_putc(csound, c,csound->scorestr);
+            corfile_putc(csound, *p++,csound->scorestr);
+            state = 2; goto top;
+          }
+          else if (c == ';'|| (c=='/' && *p=='/')) {
+            corfile_puts(csound, p-1, csound->scorestr); goto nxt;
+          }
+          corfile_putc(csound, c, csound->scorestr);
+        }
+      }
+      else if (state == 1) {    /* string */
+        while (((c=*p++))) {
+          corfile_putc(csound, c, csound->scorestr);
+          if (c=='\\') {
+            corfile_putc(csound, *p++, csound->scorestr);
+            if (*p=='\0') goto top;
+          }
+          else if (c=='"') { state =  0; goto top;}
+        }
+        csoundErrorMsg(csound, Str("missing \" to terminate string"));
+        corfile_rm(csound, &csound->scorestr);
+        return FALSE;
+      }
+      else if (state == 2) {    /* multiline comment */
+        while ( (c = *p++)) {
+          if (c=='*' && *p=='/') {
+            corfile_putc(csound, c,csound->scorestr);
+            corfile_putc(csound, *p++,csound->scorestr);
+            state = 0; goto top;
+          }
+          corfile_putc(csound, c, csound->scorestr);
+        }
+        goto nxt;
+      }
+    }
+    csoundErrorMsg(csound, Str("Missing end tag </CsScore>"));
+    return FALSE;
+}
+#else
 static int createScore(CSOUND *csound, CORFIL *cf)
 {
     char   *p;
     char   buffer[CSD_MAX_LINE_LEN];
 
     if (csound->scorestr == NULL)
-      csound->scorestr = corfile_create_w();
+      csound->scorestr = corfile_create_w(csound);
     csound->scoLineOffset = STA(csdlinecount);
     while (my_fgets_cf(csound, buffer, CSD_MAX_LINE_LEN, cf)!= NULL) {
       p = buffer;
       while (isblank(*p)) p++;
       if (strstr(p, "</CsScore>") == p) {
         //#ifdef SCORE_PARSER
-        corfile_puts("\n#exit\n", csound->scorestr);
-        corfile_putc('\0', csound->scorestr);     /* For use in bison/flex */
-        corfile_putc('\0', csound->scorestr);     /* For use in bison/flex */
+        corfile_puts(csound, "\n#exit\n", csound->scorestr);
+        corfile_putc(csound, '\0', csound->scorestr); /* For use in bison/flex */
+        corfile_putc(csound, '\0', csound->scorestr); /* For use in bison/flex */
         //#endif
         return TRUE;
       }
       else
-        corfile_puts(buffer, csound->scorestr);
+        corfile_puts(csound, buffer, csound->scorestr);
     }
     csoundErrorMsg(csound, Str("Missing end tag </CsScore>"));
     return FALSE;
 }
-
+#endif
 
 static int createExScore(CSOUND *csound, char *p, CORFIL *cf)
 {
+#ifdef IOS
+  csoundErrorMsg(csound, "External scores not supported on iOS");
+  return FALSE;
+#else
     char *extname;
     char *q;
     char prog[256];
@@ -452,7 +632,7 @@ static int createExScore(CSOUND *csound, char *p, CORFIL *cf)
     csoundMessage(csound, Str("Creating %s (%p)\n"), extname, scof);
 #endif
     if (UNLIKELY(fd == NULL)) {
-      free(extname);
+      csound->Free(csound, extname);
       return FALSE;
     }
 
@@ -467,13 +647,13 @@ static int createExScore(CSOUND *csound, char *p, CORFIL *cf)
           csoundErrorMsg(csound, Str("External generation failed"));
           if (UNLIKELY(remove(extname) || remove(STA(sconame))))
             csoundErrorMsg(csound, Str("and cannot remove"));
-          free(extname);
+          csound->Free(csound, extname);
           return FALSE;
         }
        if (UNLIKELY(remove(extname)))
          csoundErrorMsg(csound, Str("and cannot remove %s"), extname);
         if (csound->scorestr == NULL)
-          csound->scorestr = corfile_create_w();
+          csound->scorestr = corfile_create_w(csound);
 
         fd = csoundFileOpenWithType(csound, &scof, CSFILE_STD, STA(sconame),
                                     "r", NULL, CSFTYPE_SCORE, 0);
@@ -481,28 +661,29 @@ static int createExScore(CSOUND *csound, char *p, CORFIL *cf)
           csoundErrorMsg(csound, Str("cannot open %s"), STA(sconame));
           if (UNLIKELY(remove(STA(sconame))))
             csoundErrorMsg(csound, Str("and cannot remove %s"), STA(sconame));
-          free(extname);
+          csound->Free(csound, extname);
           return FALSE;
         }
         csoundMessage(csound, Str("opened %s\n"), STA(sconame));
         while (my_fgets(csound, buffer, CSD_MAX_LINE_LEN, scof)!= NULL)
-          corfile_puts(buffer, csound->scorestr);
+          corfile_puts(csound, buffer, csound->scorestr);
         csoundMessage(csound, Str("closing %s\n"), STA(sconame));
         csoundFileClose(csound, fd);
         if (UNLIKELY(remove(STA(sconame))))
           csoundErrorMsg(csound, Str("and cannot remove %s\n"), STA(sconame));
-        corfile_puts("\n#exit\n", csound->scorestr);
-        corfile_putc('\0', csound->scorestr);
-        corfile_putc('\0', csound->scorestr);
+        corfile_puts(csound, "\n#exit\n", csound->scorestr);
+        corfile_putc(csound, '\0', csound->scorestr);
+        corfile_putc(csound, '\0', csound->scorestr);
         //corfile_rewind(csound->scorestr); /* necessary? */
-        free(extname); //27363
+        csound->Free(csound, extname); //27363
         return TRUE;
       }
       else fputs(buffer, scof);
     }
     csoundErrorMsg(csound, Str("Missing end tag </CsScore>"));
-    free(extname);
+    csound->Free(csound, extname);
     return FALSE;
+#endif
 }
 
 static void read_base64(CSOUND *csound, CORFIL *in, FILE *out)
@@ -561,6 +742,64 @@ static void read_base64(CSOUND *csound, CORFIL *in, FILE *out)
       csoundDie(csound, Str("Truncated byte at end of base64 stream"));
     }
 }
+#ifdef JPFF
+static void read_base64_2cor(CSOUND *csound, CORFIL *in, CORFIL *out)
+{
+    int c;
+    int n, nbits;
+
+    n = nbits = 0;
+    while ((c = corfile_getc(in)) != '=' && c != '<') {
+      while (isspace(c)) {
+        if (c == '\n') {               /* count lines */
+          ++(STA(csdlinecount));
+          c = corfile_getc(in);
+        }
+        else if (c == '\r') {
+          ++(STA(csdlinecount));
+          c = corfile_getc(in);
+          if (c == '\n') c = corfile_getc(in); /* DOS format */
+        }
+        else c = corfile_getc(in);
+      }
+      if (c == '=' || c == '<' || c == EOF)
+        break;
+      n <<= 6;
+      nbits += 6;
+      if (isupper(c))
+        c -= 'A';
+      else if (islower(c))
+        c -= ((int) 'a' - 26);
+      else if (isdigit(c))
+        c -= ((int) '0' - 52);
+      else if (c == '+')
+        c = 62;
+      else if (c == '/')
+        c = 63;
+      else {
+        csoundDie(csound, Str("Non base64 character %c(%2x)"), c, c);
+      }
+      n |= (c & 0x3F);
+      if (nbits >= 8) {
+        nbits -= 8;
+        c = (n >> nbits) & 0xFF;
+        n &= ((1 << nbits) - 1);
+        corfile_putc(csound, c, out);
+      }
+    }
+    if (c == '<')
+      corfile_ungetc(in);
+    if (nbits >= 8) {
+      nbits -= 8;
+      c = (n >> nbits) & 0xFF;
+      n &= ((1 << nbits) - 1);
+      corfile_putc(csound, c, out);
+    }
+    if (UNLIKELY(nbits > 0 && n != 0)) {
+      csoundDie(csound, Str("Truncated byte at end of base64 stream"));
+    }
+}
+#endif
 
 static int createMIDI2(CSOUND *csound, CORFIL *cf)
 {
@@ -680,6 +919,48 @@ static int createFile(CSOUND *csound, char *buffer, CORFIL *cf)
     return FALSE;
 }
 
+#ifdef JPFF
+static int createCorfile(CSOUND *csound, char *buffer, CORFIL *cf)
+{
+    CORFIL  *smpf;
+    char  filename[256];
+    char *p = buffer, *q;
+
+    filename[0] = '\0';
+
+    p += 18;    /* 18== strlen("<CsFileC filename=  ") */
+    if (*p=='"') {
+      p++; q = strchr(p, '"');
+    }
+    else
+      q = strchr(p, '>');
+    if (q) *q='\0';
+    //  printf("p=>>%s<<\n", p);
+    strncpy(filename, p, 255); filename[255]='\0';
+//sscanf(buffer, "<CsFileB filename=\"%s\">", filename);
+//    if (filename[0] != '\0' &&
+//       filename[strlen(filename) - 1] == '>' &&
+//       filename[strlen(filename) - 2] == '"')
+//    filename[strlen(filename) - 2] = '\0';
+    smpf = corfile_create_w(csound);
+    read_base64_2cor(csound, cf, smpf);
+    corfile_rewind(smpf);
+    add_corfile(csound, smpf, filename);
+
+    while (TRUE) {
+      if (my_fgets_cf(csound, buffer, CSD_MAX_LINE_LEN, cf)!= NULL) {
+        char *p = buffer;
+        while (isblank(*p)) p++;
+        if (strstr(p, "</CsFileC>") == p) {
+          return TRUE;
+        }
+      }
+    }
+    csoundErrorMsg(csound, Str("Missing end tag </CsFileC>"));
+    return FALSE;
+}
+#endif
+
 static int createFilea(CSOUND *csound, char *buffer, CORFIL *cf)
 {
     FILE  *smpf;
@@ -753,10 +1034,18 @@ static int checkVersion(CSOUND *csound, CORFIL *cf)
           result = FALSE;
         }
       }
+      else if (strstr(p, "Later") != NULL) {
+        sscanf(p, "Later %d.%d", &major, &minor);
+        if (UNLIKELY(version < ((major * 1000) + (minor*10)))) {
+          csoundDie(csound, Str("This CSD file requires version "
+                                 "Csound %d.%02d or later"), major, minor);
+          result = FALSE;
+        }
+      }
       else if (sscanf(p, "%d.%d", &major, &minor) == 2) {
         if (UNLIKELY(version <= ((major * 1000) + (minor*10)))) {
-          csoundDie(csound, Str("This CSD file requires a version of "
-                                "Csound after %d.%02d"), major, minor);
+          csoundDie(csound, Str("This CSD file requires version "
+                                "%d.%02d of Csound"), major, minor);
           result = FALSE;
         }
       }
@@ -836,8 +1125,8 @@ int read_unified_file4(CSOUND *csound, CORFIL *cf)
       else if (strstr(p, "</CsoundSynthesizer>") == p ||
                strstr(p, "</CsoundSynthesiser>") == p) {
         if (csound->scorestr != NULL)
-          corfile_flush(csound->scorestr);
-        corfile_rm(&cf);
+          corfile_flush(csound, csound->scorestr);
+        corfile_rm(csound, &cf);
         if (notrunning && STA(midiSet)) {
           csound->oparms->FMidiname = STA(midname);
           csound->oparms->FMidiin = 1;
@@ -905,6 +1194,12 @@ int read_unified_file4(CSOUND *csound, CORFIL *cf)
         r = createFile(csound, buffer, cf);
         result = r && result;
       }
+#ifdef JPFF
+      else if (strstr(p, "<CsFileC filename=") == p) {
+        r = createCorfile(csound, buffer, cf);
+        result = r && result;
+      }
+#endif
       else if (strstr(p, "<CsFile filename=") == p) {
         csoundMessage(csound,
                       Str("CsFile is deprecated and may not work; use CsFileB\n"));
@@ -925,7 +1220,7 @@ int read_unified_file4(CSOUND *csound, CORFIL *cf)
         r = checkShortLicence(csound, cf);
         result = r && result;
       }
-      else if (blank_buffer(csound, buffer)) continue;
+      else if (blank_buffer(/*csound,*/ buffer)) continue;
       else if (started && strchr(p, '<') == buffer){
         csoundMessage(csound, Str("unknown CSD tag: %s\n"), buffer);
       }
@@ -935,6 +1230,6 @@ int read_unified_file4(CSOUND *csound, CORFIL *cf)
                     Str("Could not find <CsoundSynthesizer> tag in CSD file.\n"));
       result = FALSE;
     }
-    corfile_rm(&cf);
+    corfile_rm(csound, &cf);
     return result;
 }
diff --git a/Top/server.c b/Top/server.c
index fba7296..60cb61f 100644
--- a/Top/server.c
+++ b/Top/server.c
@@ -34,8 +34,6 @@ typedef unsigned int u_int32_t;
 #include <arpa/inet.h>
 #endif
 
-
-
 typedef struct {
   int port;
   int     sock;
@@ -43,100 +41,366 @@ typedef struct {
   void    *thrid;
   void  *cb;
   struct sockaddr_in server_addr;
+  unsigned char status;
 } UDPCOM;
 
 #define MAXSTR 1048576 /* 1MB */
 
-static uintptr_t udp_recv(void *pdata)
-{
-    struct sockaddr from;
-    socklen_t clilen = sizeof(from);
-    UDPCOM *p = (UDPCOM *) pdata;
-    CSOUND *csound = p->cs;
-    int port = p->port;
-    char   *orchestra = csound->Malloc(csound, MAXSTR);
-
-    csound->Message(csound, "UDP server started on port %d \n",port);
-    while (recvfrom(p->sock, (void *)orchestra, MAXSTR, 0, &from, &clilen) > 0) {
-      if (csound->oparms->odebug)
-        csound->Message(csound, "orchestra: \n%s\n", orchestra);
+static void udp_socksend(CSOUND *csound, int *sock, const char *addr,
+                         int port, const char *msg) {
+  struct sockaddr_in server_addr;
+  if(*sock <= 0) {
+#if defined(WIN32) && !defined(__CYGWIN__)
+    WSADATA wsaData = {0};
+    int err;
+    if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0))
+      csound->Warning(csound, Str("UDP: Winsock2 failed to start: %d"), err);
+    return;
+#endif
+    *sock = socket(AF_INET, SOCK_DGRAM, 0);
+    if (UNLIKELY(*sock < 0)) {
+      csound->Warning(csound, Str("UDP: error creating socket"));
+      return;
+    }
+#ifndef WIN32
+    if (UNLIKELY(fcntl(*sock, F_SETFL, O_NONBLOCK)<0)) {
+      csound->Warning(csound, Str("UDP Server: Cannot set nonblock"));
+      if (*sock>=0) close(*sock);
+      return;
+    }
+#else
+    {
+      u_long argp = 1;
+      err = ioctlsocket(*sock, FIONBIO, &argp);
+      if (UNLIKELY(err != NO_ERROR)) {
+        csound->Warning(csound, Str("UDP Server: Cannot set nonblock"));
+        closesocket(*sock);
+        return;
+      }
+    }
+#endif
+
+  }
+  server_addr.sin_family = AF_INET;    /* it is an INET address */
+#if defined(WIN32) && !defined(__CYGWIN__)
+  server_addr.sin_addr.S_un.S_addr = inet_addr(addr);
+#else
+  inet_aton(addr, &server_addr.sin_addr);    /* the server IP address */
+#endif
+  server_addr.sin_port = htons((int) port);    /* the port */
+
+  if (UNLIKELY(sendto(*sock, (void*) msg, strlen(msg)+1, 0,
+                      (const struct sockaddr *) &server_addr,
+                      sizeof(server_addr)) < 0)) {
+    csound->Warning(csound,  Str("UDP: sock end failed"));
+  }
+}
+
+
+static uintptr_t udp_recv(void *pdata){
+  struct sockaddr from;
+  socklen_t clilen = sizeof(from);
+  UDPCOM *p = (UDPCOM *) pdata;
+  CSOUND *csound = p->cs;
+  int port = p->port;
+  char *orchestra = csound->Calloc(csound, MAXSTR);
+  int sock = 0;
+  int received, cont = 0;
+  char *start = orchestra;
+  size_t timout = (size_t) lround(1000/csound->GetKr(csound));
+
+  csound->Message(csound, Str("UDP server started on port %d \n"),port);
+  while (p->status) {
+    if ((received =
+         recvfrom(p->sock, (void *)orchestra, MAXSTR, 0, &from, &clilen)) <= 0) {
+      csoundSleep(timout ? timout : 1);
+      continue;
+    }
+    else {
+      orchestra[received] = '\0'; // terminate string
+      if(strlen(orchestra) < 2) continue;
+      if (csound->oparms->echo)
+        csound->Message(csound, "%s", orchestra);
       if (strncmp("!!close!!",orchestra,9)==0 ||
-          strncmp("##close##",orchestra,9)==0) break;
-      csoundCompileOrc(csound, orchestra);
-      memset(orchestra,0, MAXSTR);
+          strncmp("##close##",orchestra,9)==0) {
+        csoundInputMessageAsync(csound, "e 0 0");
+        break;
+      }
+      if(*orchestra == '&') {
+        csoundInputMessageAsync(csound, orchestra+1);
+      }
+      else if(*orchestra == '$') {
+        csoundReadScoreAsync(csound, orchestra+1);
+      }
+      else if(*orchestra == '@') {
+        char chn[128];
+        MYFLT val;
+        sscanf(orchestra+1, "%s", chn);
+        val = atof(orchestra+1+strlen(chn));
+        csoundSetControlChannel(csound, chn, val);
+      }
+      else if(*orchestra == '%') {
+        char chn[128];
+        char *str;
+        sscanf(orchestra+1, "%s", chn);
+        str = cs_strdup(csound, orchestra+1+strlen(chn));
+        csoundSetStringChannel(csound, chn, str);
+        csound->Free(csound, str);
+      }
+      else if(*orchestra == ':') {
+        char addr[128], chn[128], *msg;
+        int sport, err = 0;
+        MYFLT val;
+        sscanf(orchestra+2, "%s", chn);
+        sscanf(orchestra+2+strlen(chn), "%s", addr);
+        sport = atoi(orchestra+3+strlen(addr)+strlen(chn));
+        if(*(orchestra+1) == '@') {
+          val = csoundGetControlChannel(csound, chn, &err);
+          msg = (char *) csound->Calloc(csound, strlen(chn) + 32);
+          sprintf(msg, "%s::%f", chn, val);
+        }
+        else if (*(orchestra+1) == '%') {
+          MYFLT  *pstring;
+          if (csoundGetChannelPtr(csound, &pstring, chn,
+                                  CSOUND_STRING_CHANNEL | CSOUND_OUTPUT_CHANNEL)
+              == CSOUND_SUCCESS) {
+            STRINGDAT* stringdat = (STRINGDAT*) pstring;
+            int size = stringdat->size;
+            int *lock = csoundGetChannelLock(csound, (char*) chn);
+            msg = (char *) csound->Calloc(csound, strlen(chn) + size);
+            if (lock != NULL)
+              csoundSpinLock(lock);
+            sprintf(msg, "%s::%s", chn, stringdat->data);
+            if (lock != NULL)
+              csoundSpinUnLock(lock);
+          } else err = -1;
+        }
+        else err = -1;
+        if(!err) {
+          udp_socksend(csound, &sock, addr, sport,msg);
+          csound->Free(csound, msg);
+        }
+        else
+          csound->Warning(csound, Str("could not retrieve channel %s"), chn);
+      }
+      else if(*orchestra == '{' || cont) {
+        char *cp;
+        if((cp = strrchr(orchestra, '}')) != NULL) {
+          if(*(cp-1) != '}') {
+            *cp = '\0';
+            cont = 0;
+          }  else {
+            orchestra += received;
+            cont = 1;
+          }
+        }
+        else {
+          orchestra += received;
+          cont = 1;
+        }
+        if(!cont) {
+          orchestra = start;
+          //csound->Message(csound, "%s \n", orchestra+1);
+          csoundCompileOrcAsync(csound, orchestra+1);
+        }
+      }
+      else {
+        //csound->Message(csound, "%s \n", orchestra);
+        csoundCompileOrcAsync(csound, orchestra);
+      }
     }
-    csound->Message(csound, "UDP server on port %d stopped\n",port);
-    csound->Free(csound, orchestra);
-    // csound->Message(csound, "orchestra dealloc\n");
-    return (uintptr_t) 0;
+  }
+  csound->Message(csound, Str("UDP server on port %d stopped\n"),port);
+  csound->Free(csound, start);
+  // csound->Message(csound, "orchestra dealloc\n");
+  if(sock > 0)
+#ifndef WIN32
+    close(sock);
+#else
+  closesocket(sock);
+#endif
+  return (uintptr_t) 0;
 
 }
 
 static int udp_start(CSOUND *csound, UDPCOM *p)
 {
 #if defined(WIN32) && !defined(__CYGWIN__)
-    WSADATA wsaData = {0};
-    int err;
-    if ((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)
-      csound->InitError(csound, Str("Winsock2 failed to start: %d"), err);
+  WSADATA wsaData = {0};
+  int err;
+  if (UNLIKELY((err=WSAStartup(MAKEWORD(2,2), &wsaData))!= 0)){
+    csound->Warning(csound, Str("Winsock2 failed to start: %d"), err);
+    return CSOUND_ERROR;
+  }
 #endif
-    p->cs = csound;
-    p->sock = socket(AF_INET, SOCK_DGRAM, 0);
-    if (UNLIKELY(p->sock < 0)) {
-      return csound->InitError
-        (csound, Str("creating socket"));
+  p->cs = csound;
+  p->sock = socket(AF_INET, SOCK_DGRAM, 0);
+#ifndef WIN32
+  if (UNLIKELY(fcntl(p->sock, F_SETFL, O_NONBLOCK)<0)) {
+    csound->Warning(csound, Str("UDP Server: Cannot set nonblock"));
+    if (p->sock>=0) close(p->sock);
+    return CSOUND_ERROR;
+  }
+#else
+  {
+    u_long argp = 1;
+    err = ioctlsocket(p->sock, FIONBIO, &argp);
+    if (UNLIKELY(err != NO_ERROR)) {
+      csound->Warning(csound, Str("UDP Server: Cannot set nonblock"));
+      closesocket(p->sock);
+      return CSOUND_ERROR;
     }
-    /* create server address: where we want to send to and clear it out */
-    memset(&p->server_addr, 0, sizeof(p->server_addr));
-    p->server_addr.sin_family = AF_INET;    /* it is an INET address */
-    p->server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
-
-    p->server_addr.sin_port = htons((int) p->port);    /* the port */
-    /* associate the socket with the address and port */
-    if (UNLIKELY(bind(p->sock, (struct sockaddr *) &p->server_addr,
-                      sizeof(p->server_addr)) < 0)) {
-      csound->Warning(csound, Str("bind failed"));
-      p->thrid = NULL;
-      return NOTOK;
+  }
+#endif
+  if (UNLIKELY(p->sock < 0)) {
+    csound->Warning(csound, Str("error creating socket"));
+    return CSOUND_ERROR;
+  }
+  /* create server address: where we want to send to and clear it out */
+  memset(&p->server_addr, 0, sizeof(p->server_addr));
+  p->server_addr.sin_family = AF_INET;    /* it is an INET address */
+  p->server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+  p->server_addr.sin_port = htons((int) p->port);    /* the port */
+  /* associate the socket with the address and port */
+  if (UNLIKELY(bind(p->sock, (struct sockaddr *) &p->server_addr,
+                    sizeof(p->server_addr)) < 0)) {
+    csound->Warning(csound, Str("bind failed"));
+    p->thrid = NULL;
+#ifndef WIN32
+    close(p->sock);
+#else
+    closesocket(p->sock);
+#endif
+    return CSOUND_ERROR;
+  }
+  /* set status flag */
+  p->status = 1;
+  /* create thread */
+  p->thrid = csoundCreateThread(udp_recv, (void *) p);
+  return CSOUND_SUCCESS;
+}
+
+int csoundUDPServerClose(CSOUND *csound)
+{
+  UDPCOM *p = (UDPCOM *) csound->QueryGlobalVariable(csound,"::UDPCOM");
+  if (p != NULL) {
+    /* unset status flag */
+    p->status = 0;
+    /* wait for server thread to close */
+    csoundJoinThread(p->thrid);
+    /* close socket */
+#ifndef WIN32
+    close(p->sock);
+#else
+    closesocket(p->sock);
+#endif
+    csound->DestroyGlobalVariable(csound,"::UDPCOM");
+    return CSOUND_SUCCESS;
+  }
+  else return CSOUND_ERROR;
+}
+
+int csoundUDPServerStart(CSOUND *csound, unsigned int port){
+  UDPCOM *connection;
+  csound->CreateGlobalVariable(csound, "::UDPCOM", sizeof(UDPCOM));
+  connection = (UDPCOM *) csound->QueryGlobalVariable(csound, "::UDPCOM");
+  if (connection != NULL){
+    connection->port = port;
+    if(connection->status) {
+      csound->Warning(csound,  Str("UDP Server: already running"));
+      return CSOUND_ERROR;
     }
-    /* create thread */
-    p->thrid = csoundCreateThread(udp_recv, (void *) p);
+    else {
+      int res = udp_start(csound, connection);
+      if (res  != CSOUND_SUCCESS) {
+        csound->Warning(csound,  Str("UDP Server: could not start"));
+        csound->DestroyGlobalVariable(csound,"::UDPCOM");
+        return CSOUND_ERROR;
+      }
+      else return CSOUND_SUCCESS;
+    }
+  }
+  else {
+    csound->Warning(csound,  Str("UDP Server: failed to allocate memory"));
+    return CSOUND_ERROR;
+  }
+}
 
-    return OK;
+int csoundUDPServerStatus(CSOUND *csound) {
+  UDPCOM *p = (UDPCOM *) csound->QueryGlobalVariable(csound,"::UDPCOM");
+  if (p != NULL) {
+    return p->port;
+  }
+  else return CSOUND_ERROR;
 }
 
-int UDPServerClose(CSOUND *csound)
-{
-    UDPCOM *p = (UDPCOM *) csound->QueryGlobalVariable(csound,"::UDPCOM");
+#define UDPMSG 1024
+
+typedef struct {
+  int port;
+  const char *addr;
+  int sock;
+  void (*cb)(CSOUND *csound,int attr, const char *format, va_list args);
+} UDPCONS;
+
 
-    if (p != NULL) {
+static void udp_msg_callback(CSOUND *csound, int attr, const char *format,
+                             va_list args) {
+  UDPCONS *p;
+  p = (UDPCONS *) csound->QueryGlobalVariable(csound, "::UDPCONS");
+  if(p) {
+    char string[UDPMSG];
+    va_list nargs;
+    va_copy(nargs, args);
+    vsnprintf(string, UDPMSG, format, args);
+    udp_socksend(csound, &(p->sock), p->addr, p->port, string);
+    if(p->cb)
+      p->cb(csound, attr, format, nargs);
+     va_end(nargs);
+  }
+}
+
+static int udp_console_stop(CSOUND *csound, void *pp) {
+  UDPCONS *p = (UDPCONS *) pp;
+  if(p) {
+    csoundSetMessageCallback(csound, p->cb);
 #ifndef WIN32
-      close(p->sock);
+    close(p->sock);
 #else
-      closesocket(p->sock);
+    closesocket(p->sock);
 #endif
-      //ssize_t ret;
-      //const char *mess = "!!close!!";
-      //const struct sockaddr *to = (const struct sockaddr *) (&p->server_addr);
-      //do{
-      /* ret = */
-        //(void)sendto(p->sock,mess,
-        //                    sizeof(mess)+1,0,to,sizeof(p->server_addr));
-      //} while(ret != -1);
-
-      //csoundJoinThread(p->thrid);
-      csound->DestroyGlobalVariable(csound,"::UDPCOM");
-    }
-    return OK;
+    csound->DestroyGlobalVariable(csound,"::UDPCONS");
+  }
+  return CSOUND_SUCCESS;
 }
 
-int UDPServerStart(CSOUND *csound, int port){
-    UDPCOM *connection;
-    csound->CreateGlobalVariable(csound, "::UDPCOM", sizeof(UDPCOM));
-    connection = (UDPCOM *) csound->QueryGlobalVariable(csound, "::UDPCOM");
-    if (connection != NULL){
-      connection->port = port;
-      return udp_start(csound, connection);
+
+int csoundUDPConsole(CSOUND *csound, const char *addr, int port, int
+                     mirror) {
+  UDPCONS *p = (UDPCONS *) csound->QueryGlobalVariable(csound, "::UDPCONS");
+  if(p == NULL) {
+    csound->CreateGlobalVariable(csound, "::UDPCONS", sizeof(UDPCONS));
+    p = (UDPCONS *) csound->QueryGlobalVariable(csound, "::UDPCONS");
+    if(p) {
+      p->port = port;
+      p->addr = cs_strdup(csound, (char *) addr);
+      p->sock = 0;
+      if(mirror)
+        p->cb = csound->csoundMessageCallback_;
+      csound->SetMessageCallback(csound, udp_msg_callback);
+      csound->RegisterResetCallback(csound, p, udp_console_stop);
+    } else {
+      csound->Warning(csound, "Could not set UDP console \n");
+      return CSOUND_ERROR;
     }
-    else return NOTOK;
+    return CSOUND_SUCCESS;
+  }
+  return CSOUND_ERROR;
+}
+
+void csoundStopUDPConsole(CSOUND *csound) {
+  UDPCONS *p;
+  csound->CreateGlobalVariable(csound, "::UDPCONS", sizeof(UDPCONS));
+  p = (UDPCONS *) csound->QueryGlobalVariable(csound, "::UDPCONS");
+  udp_console_stop(csound, p);
 }
diff --git a/Top/threads.c b/Top/threads.c
index fe65524..3e97ccf 100644
--- a/Top/threads.c
+++ b/Top/threads.c
@@ -33,6 +33,15 @@
 
 #include "csoundCore.h"
 
+#if 0
+static CS_NOINLINE void notImplementedWarning_(const char *name)
+{
+#ifndef __EMSCRIPTEN__
+  fprintf(stderr, Str("%s() is not implemented on this platform.\n"), name);
+#endif
+}
+#endif
+
 #if defined(HAVE_PTHREAD)
 
 #if defined(WIN32)
@@ -155,7 +164,8 @@ PUBLIC void csoundSleep(size_t milliseconds)
 #define BARRIER_SERIAL_THREAD (-1)
 
 #if !defined(HAVE_PTHREAD_BARRIER_INIT)
-#if !defined(__MACH__) && !defined(__HAIKU__) && !defined(ANDROID) && !defined(NACL) && !defined(__CYGWIN__)
+#if !defined( __MACH__)&&!defined(__HAIKU__)&&!defined(ANDROID)&& \
+    !defined(NACL)&&!defined(__CYGWIN__)
 
 typedef struct barrier {
     pthread_mutex_t mut;
@@ -416,7 +426,8 @@ PUBLIC int csoundDestroyBarrier(void *barrier)
 PUBLIC int csoundWaitBarrier(void *barrier)
 {
 #if !defined(HAVE_PTHREAD_BARRIER_INIT)
-    int ret, it;
+  int ret;
+  unsigned int it;
     barrier_t *b = (barrier_t *)barrier;
     pthread_mutex_lock(&b->mut);
     b->count++;
@@ -547,7 +558,9 @@ PUBLIC void csoundCondSignal(void* condVar) {
 
 #elif defined(WIN32)
 #include <windows.h>
+#if !defined(_USING_V110_SDK71_)
 #include <synchapi.h>
+#endif
 #include <process.h>
 
 /* #undef NO_WIN9X_COMPATIBILITY */
@@ -591,7 +604,9 @@ PUBLIC void *csoundCreateThread(uintptr_t (*threadRoutine)(void *),
 
 PUBLIC void *csoundGetCurrentThreadId(void)
 {
-  return (void*) GetCurrentThreadId();
+    DWORD* d = malloc(sizeof(DWORD));
+    *d = GetCurrentThreadId();
+    return (void*) d;
 }
 
 PUBLIC uintptr_t csoundJoinThread(void *thread)
@@ -743,168 +758,213 @@ PUBLIC long csoundRunCommand(const char * const *argv, int noWait)
   return retval;
 }
 
-PUBLIC void *csoundCreateBarrier(unsigned int max)
+PUBLIC void* csoundCreateCondVar()
 {
-  SYNCHRONIZATION_BARRIER *barrier = (SYNCHRONIZATION_BARRIER*)malloc(sizeof(SYNCHRONIZATION_BARRIER));
+    CONDITION_VARIABLE* condVar =
+      (CONDITION_VARIABLE*)malloc(sizeof(CONDITION_VARIABLE));
 
-  if (barrier != NULL)
-    InitializeSynchronizationBarrier(barrier, max, -1);
-  return (void*) barrier;
+    if (condVar != NULL)
+      InitializeConditionVariable(condVar);
+    return (void*) condVar;
 }
 
-PUBLIC int csoundDestroyBarrier(void *barrier)
-{
-  DeleteSynchronizationBarrier(barrier);
-  return 0;
+PUBLIC void csoundCondWait(void* condVar, void* mutex) {
+    CONDITION_VARIABLE* cv = (CONDITION_VARIABLE*)condVar;
+    CRITICAL_SECTION* cs = (CRITICAL_SECTION*)mutex;
+    SleepConditionVariableCS(cv, cs, INFINITE);
 }
 
-PUBLIC int csoundWaitBarrier(void *barrier)
-{
-  EnterSynchronizationBarrier(barrier, 0);
-  return 0;
+PUBLIC void csoundCondSignal(void* condVar) {
+    CONDITION_VARIABLE* cv = (CONDITION_VARIABLE*)condVar;
+    WakeConditionVariable(cv);
 }
 
-PUBLIC void* csoundCreateCondVar()
+// REMOVE FOLLOWING BARRIER DEFINITION WINDOWS SUPPORT LIMITED to WIN 8.1+
+typedef struct barrier {
+    CRITICAL_SECTION* mut;
+    CONDITION_VARIABLE* cond;
+    unsigned int count, max, iteration;
+} win_barrier_t;
+
+PUBLIC void *csoundCreateBarrier(unsigned int max)
 {
-  CONDITION_VARIABLE* condVar =
-    (CONDITION_VARIABLE*)malloc(sizeof(CONDITION_VARIABLE));
+  win_barrier_t *barrier =
+    (win_barrier_t*)malloc(sizeof(win_barrier_t));
 
-  if (condVar != NULL)
-    InitializeConditionVariable(condVar);
-  return (void*) condVar;
+  barrier->cond = (CONDITION_VARIABLE*)csoundCreateCondVar();
+  barrier->mut = (CRITICAL_SECTION*)csoundCreateMutex(0);
+  barrier->count = 0;
+  barrier->iteration = 0;
+  barrier->max = max;
+
+  return (void*) barrier;
+
+  // REPLACE ABOVE WITH FOLLOWING ONCE WINDOWS SUPPORT LIMITED to WIN 8.1+
+  //SYNCHRONIZATION_BARRIER *barrier =
+  //  (SYNCHRONIZATION_BARRIER*)malloc(sizeof(SYNCHRONIZATION_BARRIER));
+
+  //if (barrier != NULL)
+  //  InitializeSynchronizationBarrier(barrier, max, -1);
+  //return (void*) barrier;
 }
 
-PUBLIC void csoundCondWait(void* condVar, void* mutex) {
-        SleepConditionVariableCS(&condVar, &mutex, INFINITE);
+PUBLIC int csoundDestroyBarrier(void *barrier)
+{
+    win_barrier_t *winb = (win_barrier_t*)barrier;
+    free(winb->cond);
+    csoundDestroyMutex(winb->mut);
+    free(winb);
+    return 0;
+    // REPLACE ABOVE WITH FOLLOWING ONCE WINDOWS SUPPORT LIMITED to WIN 8.1+
+    //DeleteSynchronizationBarrier(barrier);
+    //return 0;
 }
 
-PUBLIC void csoundCondSignal(void* condVar) {
-        WakeConditionVariable(&condVar);
+PUBLIC int csoundWaitBarrier(void *barrier)
+{
+    int ret;
+    unsigned int it;
+  win_barrier_t *winb = (win_barrier_t*)barrier;
+  csoundLockMutex(winb->mut);
+  winb->count++;
+  it = winb->iteration;
+  if (winb->count >= winb->max) {
+      winb->count = 0;
+      winb->iteration++;
+      WakeAllConditionVariable(winb->cond);
+      ret = 1;
+  }
+  else {
+      while(it == winb->iteration) {
+        csoundCondWait(winb->cond, winb->mut);
+      }
+      ret = 0;
+  }
+  csoundUnlockMutex(winb->mut);
+  return ret;
+    // REPLACE ABOVE WITH FOLLOWING ONCE WINDOWS SUPPORT LIMITED to WIN 8.1+
+    //EnterSynchronizationBarrier(barrier, 0);
+    //return 0;
 }
 
+
 /* ------------------------------------------------------------------------ */
 
 #else
 
-static CS_NOINLINE void notImplementedWarning_(const char *name)
-{
-#ifndef __EMSCRIPTEN__
-  fprintf(stderr, Str("%s() is not implemented on this platform.\n"), name);
-#endif
-}
-
 PUBLIC void *csoundCreateThread(uintptr_t (*threadRoutine)(void *),
                                 void *userdata)
 {
-    notImplementedWarning_("csoundCreateThread");
+    //notImplementedWarning_("csoundCreateThread");
     return NULL;
 }
 
 PUBLIC void *csoundGetCurrentThreadId(void)
 {
-    notImplementedWarning_("csoundGetCurrentThreadId");
+    //notImplementedWarning_("csoundGetCurrentThreadId");
     return NULL;
 }
 
 PUBLIC uintptr_t csoundJoinThread(void *thread)
 {
-    notImplementedWarning_("csoundJoinThread");
+    //notImplementedWarning_("csoundJoinThread");
     return (uintptr_t) 0;
 }
 
 PUBLIC void *csoundCreateThreadLock(void)
 {
-    notImplementedWarning_("csoundCreateThreadLock");
+    //notImplementedWarning_("csoundCreateThreadLock");
     return NULL;
 }
 
 PUBLIC int csoundWaitThreadLock(void *lock, size_t milliseconds)
 {
-    notImplementedWarning_("csoundWaitThreadLock");
+    //notImplementedWarning_("csoundWaitThreadLock");
     return 0;
 }
 
 PUBLIC void csoundWaitThreadLockNoTimeout(void *lock)
 {
-    notImplementedWarning_("csoundWaitThreadLockNoTimeout");
+    //notImplementedWarning_("csoundWaitThreadLockNoTimeout");
 }
 
 PUBLIC void csoundNotifyThreadLock(void *lock)
 {
-    notImplementedWarning_("csoundNotifyThreadLock");
+    //notImplementedWarning_("csoundNotifyThreadLock");
 }
 
 PUBLIC void csoundDestroyThreadLock(void *lock)
 {
-    notImplementedWarning_("csoundDestroyThreadLock");
+    //notImplementedWarning_("csoundDestroyThreadLock");
 }
 
 PUBLIC void *csoundCreateMutex(int isRecursive)
 {
-    notImplementedWarning_("csoundCreateMutex");
+    //notImplementedWarning_("csoundCreateMutex");
     return NULL;
 }
 
 PUBLIC void csoundLockMutex(void *mutex_)
 {
-    notImplementedWarning_("csoundLockMutex");
+    //notImplementedWarning_("csoundLockMutex");
 }
 
 PUBLIC int csoundLockMutexNoWait(void *mutex_)
 {
-    notImplementedWarning_("csoundLockMutexNoWait");
+    //notImplementedWarning_("csoundLockMutexNoWait");
     return 0;
 }
 
 PUBLIC void csoundUnlockMutex(void *mutex_)
 {
-    notImplementedWarning_("csoundUnlockMutex");
+    //notImplementedWarning_("csoundUnlockMutex");
 }
 
 PUBLIC void csoundDestroyMutex(void *mutex_)
 {
-    notImplementedWarning_("csoundDestroyMutex");
+    //notImplementedWarning_("csoundDestroyMutex");
 }
 
 PUBLIC void *csoundCreateBarrier(unsigned int max)
 {
-    notImplementedWarning_("csoundDestroyBarrier");
+    //notImplementedWarning_("csoundDestroyBarrier");
     return NULL;
 }
 
 PUBLIC int csoundDestroyBarrier(void *barrier)
 {
-    notImplementedWarning_("csoundDestroyBarrier");
+    //notImplementedWarning_("csoundDestroyBarrier");
     return 0;
 }
 
 PUBLIC int csoundWaitBarrier(void *barrier)
 {
-    notImplementedWarning_("csoundWaitBarrier");
+    //notImplementedWarning_("csoundWaitBarrier");
     return 0;
 }
 
 
 PUBLIC void* csoundCreateCondVar()
 {
-  notImplementedWarning_("csoundCreateCondVar");
+  //notImplementedWarning_("csoundCreateCondVar");
   return NULL;
 }
 
 PUBLIC void csoundCondWait(void* condVar, void* mutex) {
-  notImplementedWarning_("csoundCreateCondWait");
+  //notImplementedWarning_("csoundCreateCondWait");
 }
 
 PUBLIC void csoundCondSignal(void* condVar) {
-  notImplementedWarning_("csoundCreateCondSignal");
+ // notImplementedWarning_("csoundCreateCondSignal");
 }
 
 PUBLIC long csoundRunCommand(const char * const *argv, int noWait) {
-  notImplementedWarning_("csoundRunCommand");
+  //notImplementedWarning_("csoundRunCommand");
+    return 0;
 }
 
 PUBLIC void csoundSleep(size_t milliseconds) {
-  notImplementedWarning_("csoundSleep");
+  //notImplementedWarning_("csoundSleep");
 }
 
 
diff --git a/Top/threadsafe.c b/Top/threadsafe.c
index 0138182..4c0b196 100644
--- a/Top/threadsafe.c
+++ b/Top/threadsafe.c
@@ -20,6 +20,7 @@
  */
 
 #include "csoundCore.h"
+#include "csound_orc.h"
 #include <stdlib.h>
 
 #ifdef USE_DOUBLE
@@ -28,224 +29,685 @@
 #  define MYFLT_INT_TYPE int32_t
 #endif
 
-extern void csoundInputMessageInternal(CSOUND *csound, const char *message);
-extern void set_channel_data_ptr(CSOUND *csound, const char *name,
-                                 void *ptr, int newSize);
+int csoundKillInstanceInternal(CSOUND *csound, MYFLT instr, char *instrName,
+                               int mode, int allow_release, int async);
+int csoundCompileTreeInternal(CSOUND *csound, TREE *root, int async);
+int csoundCompileOrcInternal(CSOUND *csound, const char *str, int async);
+void merge_state(CSOUND *csound, ENGINE_STATE *engineState,
+                 TYPE_TABLE* typetable, OPDS *ids);
+void killInstance(CSOUND *csound, MYFLT instr, int insno, INSDS *ip,
+                  int mode, int allow_release);
+void csoundInputMessageInternal(CSOUND *csound, const char *message);
+int csoundReadScoreInternal(CSOUND *csound, const char *message);
+void csoundTableCopyOutInternal(CSOUND *csound, int table, MYFLT *ptable);
+void csoundTableCopyInInternal(CSOUND *csound, int table, MYFLT *ptable);
+void csoundTableSetInternal(CSOUND *csound, int table, int index, MYFLT value);
+int csoundScoreEventInternal(CSOUND *csound, char type,
+                             const MYFLT *pfields, long numFields);
+int csoundScoreEventAbsoluteInternal(CSOUND *csound, char type,
+                                     const MYFLT *pfields, long numFields,
+                                     double time_ofs);
+void set_channel_data_ptr(CSOUND *csound, const char *name,
+                          void *ptr, int newSize);
 
+enum {INPUT_MESSAGE=1, READ_SCORE, SCORE_EVENT, SCORE_EVENT_ABS,
+      TABLE_COPY_OUT, TABLE_COPY_IN, TABLE_SET, MERGE_STATE, KILL_INSTANCE};
+
+/* MAX QUEUE SIZE */
+#define API_MAX_QUEUE 1024
+/* ARG LIST ALIGNMENT */
+#define ARG_ALIGN 8
+
+/* Message queue structure */
+typedef struct _message_queue {
+  int64_t message;  /* message id */
+  char *args;   /* args, arg pointers */
+  int64_t rtn;  /* return value */
+} message_queue_t;
+
+
+/* atomicGetAndIncrementWithModulus */
+static long atomicGet_Incr_Mod(volatile long* val, long mod) {
+  volatile long oldVal, newVal;
+  do {
+    oldVal = *val;
+    newVal = (oldVal + 1) % mod;
+
+#if defined(MSVC)
+  } while (InterlockedCompareExchange(val, newVal, oldVal) != oldVal);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+  } while (!__atomic_compare_exchange(val, (long *) &oldVal, &newVal, 0,
+                                      __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST));
+#else /* FIXME: no atomics, what to do? */
+} while ((*val = newVal) != newVal);
+#endif
+
+return oldVal;
+}
+
+/* called by csoundCreate() at the start
+   and also by csoundStart() to cover de-allocation
+   by reset
+*/
+void allocate_message_queue(CSOUND *csound) {
+  if (csound->msg_queue == NULL) {
+    int i;
+    csound->msg_queue = (message_queue_t **)
+      csound->Calloc(csound, sizeof(message_queue_t*)*API_MAX_QUEUE);
+    for (i = 0; i < API_MAX_QUEUE; i++) {
+      csound->msg_queue[i] =
+        (message_queue_t*)
+        csound->Calloc(csound, sizeof(message_queue_t));
+    }
+  }
+}
+
+
+/* enqueue should be called by the relevant API function */
+void *message_enqueue(CSOUND *csound, int32_t message, char *args,
+                      int argsiz) {
+  if(csound->msg_queue != NULL) {
+    int64_t *rtn;
+    volatile long items;
+
+    /* block if queue is full */
+    do {
+#if defined(MSVC)
+      items = InterlockedExchangeAdd(&csound->msg_queue_items, 0);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+      items = __atomic_load_n (&csound->msg_queue_items, __ATOMIC_SEQ_CST);
+#else
+      items = csound->msg_queue_items;
+#endif
+    } while(items >= API_MAX_QUEUE);
+
+    message_queue_t* msg =
+      csound->msg_queue[atomicGet_Incr_Mod(&csound->msg_queue_wget,
+                                           API_MAX_QUEUE)];
+    msg->message = message;
+    if(msg->args != NULL)
+      csound->Free(csound, msg->args);
+    msg->args = (char *)csound->Calloc(csound, argsiz);
+    memcpy(msg->args, args, argsiz);
+    rtn = &msg->rtn;
+    csound->msg_queue[atomicGet_Incr_Mod(&csound->msg_queue_wput,
+                                         API_MAX_QUEUE)] = msg;
+#ifdef MSVC
+    InterlockedIncrement(&csound->msg_queue_items);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+    __atomic_add_fetch(&csound->msg_queue_items, 1, __ATOMIC_SEQ_CST);
+#else
+    csound->msg_queue_items++;
+#endif
+    return (void *) rtn;
+  }
+  else return NULL;
+}
+
+/* dequeue should be called by kperf_*()
+   NB: these calls are already in place
+*/
+void message_dequeue(CSOUND *csound) {
+  if(csound->msg_queue != NULL) {
+    long rp = csound->msg_queue_rstart;
+    long items = csound->msg_queue_items;
+    long rend = rp + items;
+
+    int64_t rtn = 0;            /* This value is not used */
+
+    while(rp < rend) {
+      message_queue_t* msg = csound->msg_queue[rp % API_MAX_QUEUE];
+      switch(msg->message) {
+      case INPUT_MESSAGE:
+        {
+          const char *str = msg->args;
+          csoundInputMessageInternal(csound, str);
+        }
+
+        break;
+      case READ_SCORE:
+        {
+          const char *str = msg->args;
+          rtn = csoundReadScoreInternal(csound, str);
+        }
+        break;
+      case SCORE_EVENT:
+        {
+          char type;
+          const MYFLT *pfields;
+          long numFields;
+          type = msg->args[0];
+          memcpy(&pfields, msg->args + ARG_ALIGN,
+                 sizeof(MYFLT *));
+          memcpy(&numFields, msg->args + ARG_ALIGN*2,
+                 sizeof(long));
+          rtn =
+            csoundScoreEventInternal(csound, type, pfields, numFields);
+        }
+        break;
+      case SCORE_EVENT_ABS:
+        {
+          char type;
+          const MYFLT *pfields;
+          long numFields;
+          double ofs;
+          type = msg->args[0];
+          memcpy(&pfields, msg->args + ARG_ALIGN,
+                 sizeof(MYFLT *));
+          memcpy(&numFields, msg->args + ARG_ALIGN*2,
+                 sizeof(long));
+          memcpy(&ofs, msg->args + ARG_ALIGN*3,
+                 sizeof(double));
+          rtn =
+            csoundScoreEventAbsoluteInternal(csound, type, pfields, numFields,
+                                             ofs);
+        }
+        break;
+      case TABLE_COPY_OUT:
+        {
+          int table;
+          MYFLT *ptable;
+          memcpy(&table, msg->args, sizeof(int));
+          memcpy(&ptable, msg->args + ARG_ALIGN,
+                 sizeof(MYFLT *));
+          csoundTableCopyOutInternal(csound, table, ptable);
+        }
+        break;
+      case TABLE_COPY_IN:
+        {
+          int table;
+          MYFLT *ptable;
+          memcpy(&table, msg->args, sizeof(int));
+          memcpy(&ptable, msg->args + ARG_ALIGN,
+                 sizeof(MYFLT *));
+          csoundTableCopyInInternal(csound, table, ptable);
+        }
+        break;
+      case TABLE_SET:
+        {
+          int table, index;
+          MYFLT value;
+          memcpy(&table, msg->args, sizeof(int));
+          memcpy(&index, msg->args + ARG_ALIGN,
+                 sizeof(int));
+          memcpy(&value, msg->args + 2*ARG_ALIGN,
+                 sizeof(MYFLT));
+          csoundTableSetInternal(csound, table, index, value);
+        }
+        break;
+      case MERGE_STATE:
+        {
+          ENGINE_STATE *e;
+          TYPE_TABLE *t;
+          OPDS *ids;
+          memcpy(&e, msg->args, sizeof(ENGINE_STATE *));
+          memcpy(&t, msg->args + ARG_ALIGN,
+                 sizeof(TYPE_TABLE *));
+          memcpy(&ids, msg->args + 2*ARG_ALIGN,
+                 sizeof(OPDS *));
+          merge_state(csound, e, t, ids);
+        }
+        break;
+      case KILL_INSTANCE:
+        {
+          MYFLT instr;
+          int mode, insno, rls;
+          INSDS *ip;
+          memcpy(&instr, msg->args, sizeof(MYFLT));
+          memcpy(&insno, msg->args + ARG_ALIGN,
+                 sizeof(int));
+          memcpy(&ip, msg->args + ARG_ALIGN*2,
+                 sizeof(INSDS *));
+          memcpy(&mode, msg->args + ARG_ALIGN*3,
+                 sizeof(int));
+          memcpy(&rls, msg->args  + ARG_ALIGN*4,
+                 sizeof(int));
+          killInstance(csound, instr, insno, ip, mode, rls);
+        }
+        break;
+      }
+      msg->message = 0;
+      rp += 1;
+    }
+#ifdef MSVC
+    InterlockedExchangeAdd(&csound->msg_queue_items, -items);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+    __atomic_sub_fetch(&csound->msg_queue_items, items, __ATOMIC_SEQ_CST);
+#else
+    csound->msg_queue_items -= items;
+#endif
+    csound->msg_queue_rstart = rp % API_MAX_QUEUE;
+  }
+}
+
+/* these are the message enqueueing functions for each relevant API function */
+static inline void csoundInputMessage_enqueue(CSOUND *csound,
+                                              const char *str){
+  message_enqueue(csound,INPUT_MESSAGE, (char *) str, strlen(str)+1);
+}
+
+static inline int64_t *csoundReadScore_enqueue(CSOUND *csound, const char *str){
+  return message_enqueue(csound, READ_SCORE, (char *) str, strlen(str)+1);
+}
+
+static inline void csoundTableCopyOut_enqueue(CSOUND *csound, int table,
+                                              MYFLT *ptable){
+  const int argsize = ARG_ALIGN*2;
+  char args[ARG_ALIGN*2];
+  memcpy(args, &table, sizeof(int));
+  memcpy(args+ARG_ALIGN, &ptable, sizeof(MYFLT *));
+  message_enqueue(csound,TABLE_COPY_OUT, args, argsize);
+}
+
+static inline void csoundTableCopyIn_enqueue(CSOUND *csound, int table,
+                                             MYFLT *ptable){
+  const int argsize = ARG_ALIGN*2;
+  char args[ARG_ALIGN*2];
+  memcpy(args, &table, sizeof(int));
+  memcpy(args+ARG_ALIGN, &ptable, sizeof(MYFLT *));
+  message_enqueue(csound,TABLE_COPY_IN, args, argsize);
+}
+
+static inline void csoundTableSet_enqueue(CSOUND *csound, int table, int index,
+                                          MYFLT value)
+{
+  const int argsize = ARG_ALIGN*3;
+  char args[ARG_ALIGN*3];
+  memcpy(args, &table, sizeof(int));
+  memcpy(args+ARG_ALIGN, &index, sizeof(int));
+  memcpy(args+2*ARG_ALIGN, &value, sizeof(MYFLT));
+  message_enqueue(csound,TABLE_SET, args, argsize);
+}
+
+
+static inline int64_t *csoundScoreEvent_enqueue(CSOUND *csound, char type,
+                                                const MYFLT *pfields,
+                                                long numFields)
+{
+  const int argsize = ARG_ALIGN*3;
+  char args[ARG_ALIGN*3];
+  args[0] = type;
+  memcpy(args+ARG_ALIGN, &pfields, sizeof(MYFLT *));
+  memcpy(args+2*ARG_ALIGN, &numFields, sizeof(long));
+  return message_enqueue(csound,SCORE_EVENT, args, argsize);
+}
+
+
+static inline int64_t *csoundScoreEventAbsolute_enqueue(CSOUND *csound, char type,
+                                                        const MYFLT *pfields,
+                                                        long numFields,
+                                                        double time_ofs)
+{
+  const int argsize = ARG_ALIGN*4;
+  char args[ARG_ALIGN*4];
+  args[0] = type;
+  memcpy(args+ARG_ALIGN, &pfields, sizeof(MYFLT *));
+  memcpy(args+2*ARG_ALIGN, &numFields, sizeof(long));
+  memcpy(args+3*ARG_ALIGN, &time_ofs, sizeof(double));
+  return message_enqueue(csound,SCORE_EVENT_ABS, args, argsize);
+}
+
+/* this is to be called from
+   csoundKillInstanceInternal() in insert.c
+*/
+void killInstance_enqueue(CSOUND *csound, MYFLT instr, int insno,
+                          INSDS *ip, int mode,
+                          int allow_release) {
+  const int argsize = ARG_ALIGN*5;
+  char args[ARG_ALIGN*5];
+  memcpy(args, &instr, sizeof(int));
+  memcpy(args+ARG_ALIGN, &insno, sizeof(int));
+  memcpy(args+ARG_ALIGN*2, &ip, sizeof(INSDS *));
+  memcpy(args+ARG_ALIGN*3, &mode, sizeof(int));
+  memcpy(args+ARG_ALIGN*4, &allow_release, sizeof(int));
+  message_enqueue(csound,KILL_INSTANCE,args,argsize);
+}
+
+/* this is to be called from
+   csoundCompileTreeInternal() in csound_orc_compile.c
+*/
+void mergeState_enqueue(CSOUND *csound, ENGINE_STATE *e, TYPE_TABLE* t, OPDS *ids) {
+  const int argsize = ARG_ALIGN*3;
+  char args[ARG_ALIGN*3];
+  memcpy(args, &e, sizeof(ENGINE_STATE *));
+  memcpy(args+ARG_ALIGN, &t, sizeof(TYPE_TABLE *));
+  memcpy(args+2*ARG_ALIGN, &ids, sizeof(OPDS *));
+  message_enqueue(csound,MERGE_STATE, args, argsize);
+}
+
+/*  VL: These functions are slated to
+    be converted to message enqueueing
+    in the next API revision.
+*/
 void csoundInputMessage(CSOUND *csound, const char *message){
-    csoundLockMutex(csound->API_lock);
-    csoundInputMessageInternal(csound, message);
-    csoundUnlockMutex(csound->API_lock);
+  csoundLockMutex(csound->API_lock);
+  csoundInputMessageInternal(csound, message);
+  csoundUnlockMutex(csound->API_lock);
+}
+
+int csoundReadScore(CSOUND *csound, const char *message){
+  int res;
+  csoundLockMutex(csound->API_lock);
+  res = csoundReadScoreInternal(csound, message);
+  csoundUnlockMutex(csound->API_lock);
+  return res;
 }
 
 void csoundTableCopyOut(CSOUND *csound, int table, MYFLT *ptable){
-    int len;
-    MYFLT *ftab;
 
-    csoundLockMutex(csound->API_lock);
-    /* in realtime mode init pass is executed in a separate thread, so
-       we need to protect it */
-    if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
-    len = csoundGetTable(csound, &ftab, table);
-    if (len>0x08ffffff) len = 0x08ffffff; // As coverity is unhappy
-    memcpy(ptable, ftab, (size_t) (len*sizeof(MYFLT)));
-    if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
-    csoundUnlockMutex(csound->API_lock);
+  csoundLockMutex(csound->API_lock);
+  csoundTableCopyOutInternal(csound, table, ptable);
+  csoundUnlockMutex(csound->API_lock);
 }
 
 void csoundTableCopyIn(CSOUND *csound, int table, MYFLT *ptable){
-    int len;
-    MYFLT *ftab;
-    csoundLockMutex(csound->API_lock);
-    /* in realtime mode init pass is executed in a separate thread, so
-       we need to protect it */
-    if (csound->oparms->realtime) csoundLockMutex(csound->init_pass_threadlock);
-    len = csoundGetTable(csound, &ftab, table);
-    if (len>0x08ffffff) len = 0x08ffffff; // As coverity is unhappy
-    memcpy(ftab, ptable, (size_t) (len*sizeof(MYFLT)));
-    if (csound->oparms->realtime) csoundUnlockMutex(csound->init_pass_threadlock);
-    csoundUnlockMutex(csound->API_lock);
+  csoundLockMutex(csound->API_lock);
+  csoundTableCopyInInternal(csound, table, ptable);
+  csoundUnlockMutex(csound->API_lock);
+}
+
+void csoundTableSet(CSOUND *csound, int table, int index, MYFLT value)
+{
+  csoundLockMutex(csound->API_lock);
+  csoundTableSetInternal(csound, table, index, value);
+  csoundUnlockMutex(csound->API_lock);
+}
+
+int csoundScoreEvent(CSOUND *csound, char type,
+                     const MYFLT *pfields, long numFields)
+{
+
+  csoundLockMutex(csound->API_lock);
+  csoundScoreEventInternal(csound, type, pfields, numFields);
+  csoundUnlockMutex(csound->API_lock);
+  return OK;
+
 }
 
+int csoundScoreEventAbsolute(CSOUND *csound, char type,
+                             const MYFLT *pfields, long numFields,
+                             double time_ofs)
+{
+  csoundLockMutex(csound->API_lock);
+  csoundScoreEventAbsoluteInternal(csound, type, pfields, numFields, time_ofs);
+  csoundUnlockMutex(csound->API_lock);
+  return OK;
+}
+
+int csoundKillInstance(CSOUND *csound, MYFLT instr, char *instrName,
+                       int mode, int allow_release){
+  int async = 0;
+  return csoundKillInstanceInternal(csound, instr, instrName, mode,
+                                    allow_release, async);
+}
+
+int csoundCompileTree(CSOUND *csound, TREE *root) {
+  int async = 0;
+  return csoundCompileTreeInternal(csound, root, async);
+}
+
+int csoundCompileOrc(CSOUND *csound, const char *str) {
+  int async = 0;
+  return csoundCompileOrcInternal(csound, str, async);
+}
+
+MYFLT csoundEvalCode(CSOUND *csound, const char *str)
+{
+  int async = 0;
+  if (str && csoundCompileOrcInternal(csound,str,async) == CSOUND_SUCCESS)
+    return csound->instr0->instance[0].retval;
+#ifdef NAN
+  else return NAN;
+#else
+  else return 0;
+#endif
+}
+
+/** Async versions of the functions above
+    To be removed once everything is made async
+*/
+void csoundInputMessageAsync(CSOUND *csound, const char *message){
+  csoundInputMessage_enqueue(csound, message);
+}
+
+void csoundReadScoreAsync(CSOUND *csound, const char *message){
+  csoundReadScore_enqueue(csound, message);
+}
+
+void csoundTableCopyOutAsync(CSOUND *csound, int table, MYFLT *ptable){
+  csoundTableCopyOut_enqueue(csound, table, ptable);
+}
+
+void csoundTableCopyInAsync(CSOUND *csound, int table, MYFLT *ptable){
+  csoundTableCopyIn_enqueue(csound, table, ptable);
+}
+
+void csoundTableSetAsync(CSOUND *csound, int table, int index, MYFLT value)
+{
+  csoundTableSet_enqueue(csound, table, index, value);
+}
+
+void csoundScoreEventAsync(CSOUND *csound, char type,
+                           const MYFLT *pfields, long numFields)
+{
+  csoundScoreEvent_enqueue(csound, type, pfields, numFields);
+}
+
+void csoundScoreEventAbsoluteAsync(CSOUND *csound, char type,
+                                   const MYFLT *pfields, long numFields,
+                                   double time_ofs)
+{
+
+  csoundScoreEventAbsolute_enqueue(csound, type, pfields, numFields, time_ofs);
+}
+
+int csoundCompileTreeAsync(CSOUND *csound, TREE *root) {
+  int async = 1;
+  return csoundCompileTreeInternal(csound, root, async);
+}
+
+int csoundCompileOrcAsync(CSOUND *csound, const char *str) {
+  int async = 1;
+  return csoundCompileOrcInternal(csound, str, async);
+}
+
+int csoundKillInstanceAsync(CSOUND *csound, MYFLT instr, char *instrName,
+                            int mode, int allow_release){
+  int async = 1;
+  return csoundKillInstanceInternal(csound, instr, instrName, mode,
+                                    allow_release, async);
+}
+
+
+
+/* VL: the following do not depend on API_lock
+   therefore do not need to be in the message queue
+*/
+
 MYFLT csoundGetControlChannel(CSOUND *csound, const char *name, int *err)
 {
-    MYFLT *pval;
-    int err_;
-    union {
-      MYFLT d;
-      MYFLT_INT_TYPE i;
-    } x;
-    x.d = FL(0.0);
-    if(strlen(name) == 0) return FL(.0);
-    if ((err_ = csoundGetChannelPtr(csound, &pval, name,
-                            CSOUND_CONTROL_CHANNEL | CSOUND_OUTPUT_CHANNEL))
-         == CSOUND_SUCCESS) {
-#ifdef HAVE_ATOMIC_BUILTIN
-      x.i = __sync_fetch_and_add((MYFLT_INT_TYPE *)pval, 0);
+  MYFLT *pval;
+  int err_;
+  union {
+    MYFLT d;
+    MYFLT_INT_TYPE i;
+  } x;
+  x.d = FL(0.0);
+  if (UNLIKELY(strlen(name) == 0)) return FL(.0);
+  if ((err_ = csoundGetChannelPtr(csound, &pval, name,
+                                  CSOUND_CONTROL_CHANNEL | CSOUND_OUTPUT_CHANNEL))
+      == CSOUND_SUCCESS) {
+#if defined(MSVC)
+    x.i = InterlockedExchangeAdd64((MYFLT_INT_TYPE *)pval, 0);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+    x.i = __sync_fetch_and_add((MYFLT_INT_TYPE *)pval, 0);
 #else
-      x.d = *pval;
+    x.d = *pval;
 #endif
-    }
-    if (err) {
-        *err = err_;
-    }
-    return x.d;
+  }
+  if (err) {
+    *err = err_;
+  }
+  return x.d;
 }
 
 void csoundSetControlChannel(CSOUND *csound, const char *name, MYFLT val){
-    MYFLT *pval;
-    union {
-      MYFLT d;
-      MYFLT_INT_TYPE i;
-    } x;
-    x.d = val;
-    if(csoundGetChannelPtr(csound, &pval, name,
-                           CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL)
-            == CSOUND_SUCCESS)
-#ifdef HAVE_ATOMIC_BUILTIN
-      __sync_lock_test_and_set((MYFLT_INT_TYPE *)pval,x.i);
+  MYFLT *pval;
+  union {
+    MYFLT d;
+    MYFLT_INT_TYPE i;
+  } x;
+  x.d = val;
+  if (csoundGetChannelPtr(csound, &pval, name,
+                          CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL)
+      == CSOUND_SUCCESS)
+
+#if defined(MSVC)
+    InterlockedExchange64((MYFLT_INT_TYPE *)pval, x.i);
+#elif defined(HAVE_ATOMIC_BUILTIN)
+    __sync_lock_test_and_set((MYFLT_INT_TYPE *)pval,x.i);
 #else
-    {
-      int    *lock =
-        csoundGetChannelLock(csound, (char*) name);
-      csoundSpinLock(lock);
-      *pval  = val;
-      csoundSpinUnLock(lock);
-    }
+  {
+    int    *lock =
+      csoundGetChannelLock(csound, (char*) name);
+    csoundSpinLock(lock);
+    *pval  = val;
+    csoundSpinUnLock(lock);
+  }
 #endif
 }
 
 void csoundGetAudioChannel(CSOUND *csound, const char *name, MYFLT *samples)
 {
 
-    MYFLT  *psamples;
-    if(strlen(name) == 0) return;
-    if (csoundGetChannelPtr(csound, &psamples, name,
-                           CSOUND_AUDIO_CHANNEL | CSOUND_OUTPUT_CHANNEL)
-            == CSOUND_SUCCESS) {
-      int *lock = csoundGetChannelLock(csound, (char*) name);
-      csoundSpinLock(lock);
-      memcpy(samples, psamples, csoundGetKsmps(csound)*sizeof(MYFLT));
-      csoundSpinUnLock(lock);
-    }
+  MYFLT  *psamples;
+  if (strlen(name) == 0) return;
+  if (csoundGetChannelPtr(csound, &psamples, name,
+                          CSOUND_AUDIO_CHANNEL | CSOUND_OUTPUT_CHANNEL)
+      == CSOUND_SUCCESS) {
+    int *lock = csoundGetChannelLock(csound, (char*) name);
+    csoundSpinLock(lock);
+    memcpy(samples, psamples, csoundGetKsmps(csound)*sizeof(MYFLT));
+    csoundSpinUnLock(lock);
+  }
 }
 
 void csoundSetAudioChannel(CSOUND *csound, const char *name, MYFLT *samples)
 {
-    MYFLT  *psamples;
-    if (csoundGetChannelPtr(csound, &psamples, name,
-                           CSOUND_AUDIO_CHANNEL | CSOUND_INPUT_CHANNEL)
-            == CSOUND_SUCCESS){
-      int *lock = csoundGetChannelLock(csound, (char*) name);
-      csoundSpinLock(lock);
-      memcpy(psamples, samples, csoundGetKsmps(csound)*sizeof(MYFLT));
-      csoundSpinUnLock(lock);
-    }
+  MYFLT  *psamples;
+  if (csoundGetChannelPtr(csound, &psamples, name,
+                          CSOUND_AUDIO_CHANNEL | CSOUND_INPUT_CHANNEL)
+      == CSOUND_SUCCESS){
+    int *lock = csoundGetChannelLock(csound, (char*) name);
+    csoundSpinLock(lock);
+    memcpy(psamples, samples, csoundGetKsmps(csound)*sizeof(MYFLT));
+    csoundSpinUnLock(lock);
+  }
 }
 
 void csoundSetStringChannel(CSOUND *csound, const char *name, char *string)
 {
-    MYFLT  *pstring;
+  MYFLT  *pstring;
 
-    if (csoundGetChannelPtr(csound, &pstring, name,
-                           CSOUND_STRING_CHANNEL | CSOUND_INPUT_CHANNEL)
-            == CSOUND_SUCCESS){
+  if (csoundGetChannelPtr(csound, &pstring, name,
+                          CSOUND_STRING_CHANNEL | CSOUND_INPUT_CHANNEL)
+      == CSOUND_SUCCESS){
 
-      STRINGDAT* stringdat = (STRINGDAT*) pstring;
-      int    size = stringdat->size; //csoundGetChannelDatasize(csound, name);
-      int    *lock = csoundGetChannelLock(csound, (char*) name);
+    STRINGDAT* stringdat = (STRINGDAT*) pstring;
+    int    size = stringdat->size; //csoundGetChannelDatasize(csound, name);
+    int    *lock = csoundGetChannelLock(csound, (char*) name);
 
-      if(lock != NULL) {
-        csoundSpinLock(lock);
-      }
+    if (lock != NULL) {
+      csoundSpinLock(lock);
+    }
 
-      if(strlen(string) + 1 > (unsigned int) size) {
-        if(stringdat->data!=NULL) csound->Free(csound,stringdat->data);
-        stringdat->data = cs_strdup(csound, string);
-        stringdat->size = strlen(string) + 1;
-        //set_channel_data_ptr(csound,name,(void*)pstring, strlen(string)+1);
-      } else {
-        strcpy((char *) stringdat->data, string);
-      }
+    if (strlen(string) + 1 > (unsigned int) size) {
+      if (stringdat->data!=NULL) csound->Free(csound,stringdat->data);
+      stringdat->data = cs_strdup(csound, string);
+      stringdat->size = strlen(string) + 1;
+      //set_channel_data_ptr(csound,name,(void*)pstring, strlen(string)+1);
+    } else {
+      strcpy((char *) stringdat->data, string);
+    }
 
-      if(lock != NULL) {
-        csoundSpinUnLock(lock);
-      }
+    if (lock != NULL) {
+      csoundSpinUnLock(lock);
     }
+  }
 }
 
 void csoundGetStringChannel(CSOUND *csound, const char *name, char *string)
 {
-    MYFLT  *pstring;
-    char *chstring;
-    int n2;
-    if(strlen(name) == 0) return;
-    if (csoundGetChannelPtr(csound, &pstring, name,
-                           CSOUND_STRING_CHANNEL | CSOUND_OUTPUT_CHANNEL)
-            == CSOUND_SUCCESS){
-      int *lock = csoundGetChannelLock(csound, (char*) name);
-      chstring = ((STRINGDAT *) pstring)->data;
-      if (lock != NULL)
-        csoundSpinLock(lock);
-       if(string != NULL && chstring != NULL) {
-         n2 = strlen(chstring);
-         strncpy(string,chstring, n2);
-         string[n2] = 0;
-       }
-      if(lock != NULL)
-        csoundSpinUnLock(lock);
+  MYFLT  *pstring;
+  char *chstring;
+  int n2;
+  if (strlen(name) == 0) return;
+  if (csoundGetChannelPtr(csound, &pstring, name,
+                          CSOUND_STRING_CHANNEL | CSOUND_OUTPUT_CHANNEL)
+      == CSOUND_SUCCESS){
+    int *lock = csoundGetChannelLock(csound, (char*) name);
+    chstring = ((STRINGDAT *) pstring)->data;
+    if (lock != NULL)
+      csoundSpinLock(lock);
+    if (string != NULL && chstring != NULL) {
+      n2 = strlen(chstring);
+      strncpy(string,chstring, n2);
+      string[n2] = 0;
     }
+    if (lock != NULL)
+      csoundSpinUnLock(lock);
+  }
 }
 
 PUBLIC int csoundSetPvsChannel(CSOUND *csound, const PVSDATEXT *fin,
                                const char *name)
 {
-    MYFLT *pp;
-    PVSDATEXT *f;
-    if (csoundGetChannelPtr(csound, &pp, name,
-                           CSOUND_PVS_CHANNEL | CSOUND_INPUT_CHANNEL)
-            == CSOUND_SUCCESS){
-        int    *lock =
-                csoundGetChannelLock(csound, name);
-        f = (PVSDATEXT *) pp;
-        csoundSpinLock(lock);
-
-
-        if(f->frame == NULL) {
-          f->frame = csound->Calloc(csound, sizeof(float)*(fin->N+2));
-        } else if(f->N < fin->N) {
-          f->frame = csound->ReAlloc(csound, f->frame, sizeof(float)*(fin->N+2));
-        }
+  MYFLT *pp;
+  PVSDATEXT *f;
+  if (LIKELY(csoundGetChannelPtr(csound, &pp, name,
+                                 CSOUND_PVS_CHANNEL | CSOUND_INPUT_CHANNEL)
+             == CSOUND_SUCCESS)){
+    int    *lock =
+      csoundGetChannelLock(csound, name);
+    f = (PVSDATEXT *) pp;
+    csoundSpinLock(lock);
 
-        memcpy(f, fin, sizeof(PVSDATEXT)-sizeof(float *));
-        if(fin->frame != NULL)
-          memcpy(f->frame, fin->frame, (f->N+2)*sizeof(float));
-        csoundSpinUnLock(lock);
-    } else {
-        return CSOUND_ERROR;
+
+    if (f->frame == NULL) {
+      f->frame = csound->Calloc(csound, sizeof(float)*(fin->N+2));
+    } else if (f->N < fin->N) {
+      f->frame = csound->ReAlloc(csound, f->frame, sizeof(float)*(fin->N+2));
     }
-    return CSOUND_SUCCESS;
+
+    memcpy(f, fin, sizeof(PVSDATEXT)-sizeof(float *));
+    if (fin->frame != NULL)
+      memcpy(f->frame, fin->frame, (f->N+2)*sizeof(float));
+    csoundSpinUnLock(lock);
+  } else {
+    return CSOUND_ERROR;
+  }
+  return CSOUND_SUCCESS;
 }
 
 PUBLIC int csoundGetPvsChannel(CSOUND *csound, PVSDATEXT *fout,
                                const char *name)
 {
-    MYFLT *pp;
-    PVSDATEXT *f;
-    if (csoundGetChannelPtr(csound, &pp, name,
-                           CSOUND_PVS_CHANNEL | CSOUND_OUTPUT_CHANNEL)
-            == CSOUND_SUCCESS){
-      int    *lock =
+  MYFLT *pp;
+  PVSDATEXT *f;
+  if (UNLIKELY(csoundGetChannelPtr(csound, &pp, name,
+                                   CSOUND_PVS_CHANNEL | CSOUND_OUTPUT_CHANNEL)
+               == CSOUND_SUCCESS)){
+    int    *lock =
       csoundGetChannelLock(csound, name);
-      f = (PVSDATEXT *) pp;
-      if(pp == NULL) return CSOUND_ERROR;
-      csoundSpinLock(lock);
-      memcpy(fout, f, sizeof(PVSDATEXT)-sizeof(float *));
-      if(fout->frame != NULL && f->frame != NULL)
-        memcpy(fout->frame, f->frame, sizeof(float)*(fout->N));
-      csoundSpinUnLock(lock);
-    } else {
-        return CSOUND_ERROR;
-    }
-    return CSOUND_SUCCESS;
+    f = (PVSDATEXT *) pp;
+    if (UNLIKELY(pp == NULL)) return CSOUND_ERROR;
+    csoundSpinLock(lock);
+    memcpy(fout, f, sizeof(PVSDATEXT)-sizeof(float *));
+    if (fout->frame != NULL && f->frame != NULL)
+      memcpy(fout->frame, f->frame, sizeof(float)*(fout->N));
+    csoundSpinUnLock(lock);
+  } else {
+    return CSOUND_ERROR;
+  }
+  return CSOUND_SUCCESS;
 }
diff --git a/Top/utility.c b/Top/utility.c
index d1f37dd..1c9333d 100644
--- a/Top/utility.c
+++ b/Top/utility.c
@@ -38,7 +38,8 @@ int csoundAddUtility(CSOUND *csound, const char *name,
     csUtility_t *p;
     /* csound->Message(csound, "csoundAddUtility: name: %s  function: 0x%p\n",
                        name, UtilFunc); */
-    if (csound == NULL || name == NULL || name[0] == '\0' || UtilFunc == NULL)
+    if (UNLIKELY(csound == NULL || name == NULL ||
+                 name[0] == '\0' || UtilFunc == NULL))
       return -1;
     p = (csUtility_t*) csound->utility_db;
     if (LIKELY(p != NULL)) {
@@ -244,19 +245,19 @@ PUBLIC const char *csoundGetUtilityDescription(CSOUND *csound,
 PUBLIC int csoundScoreSort(CSOUND *csound, FILE *inFile, FILE *outFile)
 {
     int   err;
-    CORFIL *inf = corfile_create_w();
+    CORFIL *inf = corfile_create_w(csound);
     int c;
     if ((err = setjmp(csound->exitjmp)) != 0) {
       return ((err - CSOUND_EXITJMP_SUCCESS) | CSOUND_EXITJMP_SUCCESS);
     }
-    while ((c=getc(inFile))!=EOF) corfile_putc(c, inf);
+    while ((c=getc(inFile))!=EOF) corfile_putc(csound, c, inf);
     corfile_rewind(inf);
     /* scsortstr() ignores the second arg - Jan 5 2012 */
     csound->scorestr = inf;
     scsortstr(csound, inf);
     while ((c=corfile_getc(csound->scstr))!=EOF)
       putc(c, outFile);
-    corfile_rm(&csound->scstr);
+    corfile_rm(csound, &csound->scstr);
     return 0;
 }
 
@@ -271,16 +272,16 @@ PUBLIC int csoundScoreExtract(CSOUND *csound,
                               FILE *inFile, FILE *outFile, FILE *extractFile)
 {
     int   err;
-    CORFIL *inf = corfile_create_w();
+    CORFIL *inf = corfile_create_w(csound);
     int c;
     if ((err = setjmp(csound->exitjmp)) != 0) {
       return ((err - CSOUND_EXITJMP_SUCCESS) | CSOUND_EXITJMP_SUCCESS);
     }
-    while ((c=getc(inFile))!=EOF) corfile_putc(c, inf);
+    while ((c=getc(inFile))!=EOF) corfile_putc(csound, c, inf);
     corfile_rewind(inf);
     scxtract(csound, inf, extractFile);
     while ((c=corfile_getc(csound->scstr))!=EOF)
       putc(c, outFile);
-    corfile_rm(&csound->scstr);
+    corfile_rm(csound, &csound->scstr);
     return 0;
 }
diff --git a/all_string_files b/all_string_files
index a527e88..b4e42c0 100644
--- a/all_string_files
+++ b/all_string_files
@@ -97,7 +97,6 @@
 ./H/ugens6.h
 ./H/ugens7.h
 ./H/ugrw1.h
-./H/ugrw2.h
 ./H/ugtabs.h
 ./H/vdelay.h
 ./H/windin.h
@@ -178,13 +177,11 @@
 ./OOps/str_ops.c
 ./OOps/ugens1.c
 ./OOps/ugens2.c
-./OOps/ugens2a.c
 ./OOps/ugens3.c
 ./OOps/ugens4.c
 ./OOps/ugens5.c
 ./OOps/ugens6.c
 ./OOps/ugrw1.c
-./OOps/ugrw2.c
 ./OOps/ugtabs.c
 ./OOps/vdelay.c
 ./Opcodes/3Dug.h
@@ -274,7 +271,6 @@
 ./Opcodes/gab/gab.h
 ./Opcodes/gab/hvs.c
 ./Opcodes/gab/newgabopc.c
-./Opcodes/gab/radiobaton.c
 ./Opcodes/gab/sliderTable.c
 ./Opcodes/gab/stdopcod.h
 ./Opcodes/gab/tabmorph.c
@@ -416,6 +412,7 @@
 ./Opcodes/spat3d.h
 ./Opcodes/spectra.c
 ./Opcodes/spectra.h
+./Opcodes/squinewave.c
 ./Opcodes/stackops.c
 ./Opcodes/stdopcod.c
 ./Opcodes/stdopcod.h
diff --git a/appveyor.yml b/appveyor.yml
index a516355..8a108cc 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,49 +1,118 @@
-image: Visual Studio 2015
+image: Visual Studio 2017
 
-install:
-  - cd msvc
-  - powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1
-  - powershell -ExecutionPolicy ByPass -File generateProject.ps1
-  - cd ..
+environment:
+  ABLETON_LINK_HOME: C:\projects\csound\msvc\deps\link
+  APPVEYOR_SAVE_CACHE_ON_ERROR: "true"
+  APPVEYOR_RDP_PASSWORD: Vercoe123
+  CsoundDepsDir: C:\projects\csound\msvc\deps\bin
+  CSOUND_VERSION: 6.10.0-rc2
+  HDF5_HOME: C:\Program Files\HDF_Group\HDF5\1.8.19
+  QTDIR: C:\Qt\5.9.2\msvc2017_64
+  VCPKGDir: C:\Tools\vcpkg
+  VSGENERATOR: Visual Studio 15 2017 Win64
+  VSTOOLSET: v141
+  VST_SDK2_HOME:  C:\projects\csound\msvc\deps\VST_SDK\VST2_SDK
 
 platform: x64
+configuration: RelWithDebInfo
 
-configuration: Release
+init:
+  - set CSOUND_HOME=%APPVEYOR_BUILD_FOLDER%
+  - set PYTHON=C:\Python27-x64\python.exe
+  - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
+  - if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat"
+  - if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2015" call "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\vcvars64.bat"
+  # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.CRT
+  # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.CXXAMP
+  # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.MFC
+  # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.MFCLOC
+  # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.OpenMP
+  - set VCREDIST_CRT_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.CRT
+  - set VCREDIST_CXXAMP_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.CXXAMP
+  - set VCREDIST_OPENMP_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.12.25810\x64\Microsoft.VC141.OpenMP
+  - set
+  - echo "Qt SDK configuration files:"
+  - dir "%QTDIR%\\mkspecs"
+  - echo "Redistributable runtime libraries:"
+  - dir /B /S "%VCToolsRedistDir%"
+  - dir /B /S "%VCREDIST_CRT_DIR%"
+  - dir /B /S "%VCREDIST_CXXAMP_DIR%"
+  - dir /B /S "%VCREDIST_OPENMP_DIR%"
+  - set PATH=%PATH%;%CsoundDepsDir%
+
+install:
+  - cd msvc
+  # This is so nw-gyp can build csound.node.
+  - ps: Install-Product node 6.2.1 x64
+  - npm install -g nw-gyp
+  - nodevars.bat
+  - powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 -vsGenerator "%VSGENERATOR%" -vsToolset "%VSTOOLSET%"
+  - powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "%VSGENERATOR%" -vsToolset "%VSTOOLSET%" -vstSdkHome "%VST_SDK2_HOME%
+  - cd ..
 
 build:
   parallel: true
   project: msvc\csound-vs\Csound.sln
 
 after_build:
-  - 7z a csound.zip %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\Release\*.exe %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\Release\*.dll
+  - dir "%VCPKGDir%\installed\x64-windows-static\include"
+  - cd frontends\nwjs
+  - npm config set msvs_version 2017 --global
+  #- set PYTHON=C:\Python27-x64\python.exe
+  - set npm_config_target=0.23.5
+  - set npm_config_arch=x64
+  - set npm_config_runtime=node-webkit
+  - set npm_config_build_from_source=true
+  - set npm_config_node_gyp=C:\Users\appveyor\AppData\Roaming\npm\node_modules\nw-gyp\bin\nw-gyp.js
+  - npm configure --version=0.23.5
+  - nw-gyp rebuild --target=0.23.5 --arch=x64 && exit=0
+  - cd ..\..
+  - set PATH=%QTDIR%\bin;%PATH%
+  - cd msvc
+  # Report qmake version to make sure we are using the Qt libraries we need.
+  - qmake -v
+  - build-csoundqt.bat
+  - cd ..
+  - set PATH=%PATH%;"C:\\Program Files (x86)\\Inno Setup 5"
+  - iscc /dVcpkgInstalledBinDir=%VCPKGDir%\\installed\\x64-windows\\bin\\ /dQtSdkBinDir=%QTDIR%\\bin\\  /dInstallCsoundVst /omsvc installer\\windows\\csound6_x64_appveyor.iss
+  - 7z a csound-windows-x64-%CSOUND_VERSION%-%APPVEYOR_BUILD_NUMBER%.zip %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\RelWithDebInfo\*.exe %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\RelWithDebInfo\csound64.lib %APPVEYOR_BUILD_FOLDER%\include\ %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\RelWithDebInfo\*.dll %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\RelWithDebInfo\*.pyd %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\*.jar %APPVEYOR_BUILD_FOLDER%\msvc\csound-vs\*.py %APPVEYOR_BUILD_FOLDER%\msvc\staging\CsoundQt\bin\*.exe
+  - 7z l csound-windows-x64-%CSOUND_VERSION%-%APPVEYOR_BUILD_NUMBER%.zip
+
+# Tests
+
+test_script:
+  - cmake --build msvc\csound-vs --config RelWithDebInfo --target csdtests
 
 artifacts:
-  - path: csound.zip
-    name: Csound
+  - path: csound-windows-x64-*.zip
+    name: Csound Binaries
     type: zip
+  - path: msvc/csound-windows-x64-*.exe
+    name: Csound Installer
+    type: exe
 
-cache: 
- - C:\projects\vcpkg\ -> C:\projects\csound\msvc\downloadDependencies.ps1
+cache:
+ - C:\Tools\vcpkg\ -> C:\projects\csound\msvc\downloadDependencies.ps1
  - C:\projects\csound\msvc\cache
 
-#deploy:
-#  release: myproduct-v$(appveyor_build_version)
-#  description: 'Release description'
-#  provider: GitHub
-#  auth_token:
-#    secure: <your encrypted token> # your encrypted token from GitHub
-#  artifact: /.*\.nupkg/            # upload all NuGet packages to release assets
-#  draft: false
-#  prerelease: false
-#  on:
-#    branch: master                 # release from master branch only
-#    appveyor_repo_tag: true        # deploy on tag push only
+deploy:
+  release: csound-$(csound_version)
+  description: 'Csound Windows installer.'
+  provider: GitHub
+  auth_token:
+    secure: puEAPJVkwT2mZwhobSNpk5LhUEP+61K9j6T66qIXKFk=
+  artifact: msvc/csound-windows-x64*.exe
+  draft: true
+  prerelease: true
+  on:
+    branch: develop
+    appveyor_repo_tag: true        # deploy on tag push only
 
 notifications:
   - provider: Email
     to:
       - CSOUND-DEV at listserv.heanet.ie
-    subject: 'Build {{status}}'     # optional    
+    subject: 'Build {{status}}'     # optional
     on_build_success: false
     on_build_failure: true
     on_build_status_changed: false
diff --git a/cmake/Modules/FindGMM.cmake b/cmake/Modules/FindGMM.cmake
new file mode 100644
index 0000000..5bd70f6
--- /dev/null
+++ b/cmake/Modules/FindGMM.cmake
@@ -0,0 +1,17 @@
+# Try to find the GMM library.
+# Once done this will define:
+#  GMM_FOUND - System has the GMM library.
+#  GMM_INCLUDE_DIRS - The GMM include directories.
+#  GMM_HAS_VECTOR_OSTREAM - Wether GMM defines operator<< for std::vector
+
+find_path(GMM_INCLUDE_DIR gmm/gmm.h)
+
+set(GMM_INCLUDE_DIRS ${GMM_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set GMM_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(GMM DEFAULT_MSG
+    GMM_INCLUDE_DIR)
+
+mark_as_advanced(GMM_INCLUDE_DIR GMM_HAS_VECTOR_OSTREAM)
diff --git a/cmake/Modules/FindVSTSDK2X.cmake b/cmake/Modules/FindVSTSDK2X.cmake
index 254bdce..529c0bd 100644
--- a/cmake/Modules/FindVSTSDK2X.cmake
+++ b/cmake/Modules/FindVSTSDK2X.cmake
@@ -4,7 +4,7 @@
 #  VSTSDK2X_DIR - The VST SDK root directory.
 #  VSTSDK2X_INCLUDE_DIRS - The VST SDK include directories.
 
-find_path(VSTSDK2X_INCLUDE_DIR pluginterfaces/vst2.x/aeffect.h PATH_SUFFIXES vstsdk2.4)
+find_path(VSTSDK2X_INCLUDE_DIR pluginterfaces/vst2.x/aeffect.h HINTS ${VST_SDK2_HOME} PATH_SUFFIXES vstsdk2.4)
 
 set(VSTSDK2X_DIR ${VSTSDK2X_INCLUDE_DIR})
 set(VSTSDK2X_INCLUDE_DIRS ${VSTSDK2X_INCLUDE_DIR} )
diff --git a/examples/opcode_demos/chuap.csd b/examples/opcode_demos/chuap.csd
index e142f9b..de20654 100644
--- a/examples/opcode_demos/chuap.csd
+++ b/examples/opcode_demos/chuap.csd
@@ -8,7 +8,7 @@ ksmps           =           100
 nchnls          =           2
 0dbfs           =           10000
 
-gibuzztable     ftgen       1, 0, 16384, 10, 1
+gibuzztable     ftgen       1, 0, 65536, 10, 1
 
                 instr 1
                 ; sys_variables = system_vars(5:12); % L,R0,C2,G,Ga,Gb,E,C1 or p8:p15
diff --git a/examples/plugin/opcodes.cpp b/examples/plugin/opcodes.cpp
index be16c21..35d94c4 100644
--- a/examples/plugin/opcodes.cpp
+++ b/examples/plugin/opcodes.cpp
@@ -222,6 +222,71 @@ struct PVGain : csnd::FPlugin<1, 2> {
   }
 };
 
+
+
+class PrintThread : public csnd::Thread {
+  std::atomic_bool spinlock;
+  std::atomic_bool on;
+  std::string message;
+  
+public:
+  MyThread(csnd::Csound *csound)
+    : Thread(csound), spinlock(false), on(true), message("") {};
+  uintptr_t run() {
+    std::string old;
+    while(on) {
+      lock();
+      if(old.compare(message)) {
+       csound->message("%s", message.cstr());
+       old = message;
+      } 
+      unlock(); 
+    }
+    return 0;
+  }
+  void lock() {
+    while(spinlock == true) csound->sleep();
+    spinlock = true;
+  }
+  void unlock() {
+    spinlock = false;
+  }
+
+  void set_message(const char *m) {
+    message = m;
+  }
+  void stop() { on = false; }
+};
+
+struct AsyncPrint : csnd::Plugin<0, 1> {
+  static constexpr char const *otypes = "";
+  static constexpr char const *itypes = "S";
+  MyThread t;
+
+  int init() {
+    csound->plugin_deinit(this);
+    csnd::constr(&t, csound);
+    return OK;
+  }
+
+  int deinit() {
+    t.stop();
+    t.join();
+    csnd::destr(&t);
+    return OK;
+  }
+
+  int kperf() {
+    t.lock();
+    t.set_message(inargs.str_data(0).data);
+    t.unlock();
+    return OK;
+  }
+};
+
+
+
+
 /** Thread to compute Gaussian distr.
  */
 class MyThread : public csnd::Thread {
diff --git a/examples/xanadu-high-resolution.csd b/examples/xanadu-high-resolution.csd
index 6d26985..8cf4738 100644
--- a/examples/xanadu-high-resolution.csd
+++ b/examples/xanadu-high-resolution.csd
@@ -1,6 +1,6 @@
 <CsoundSynthesizer>
 <CsOptions>
-csound -d -R -W -Z -f -o xanadu-high-resolution.wav
+-d -R -W -Z -f -o xanadu-high.wav
 </CsOptions>
 <CsInstruments>
 sr          =           88200
diff --git a/frontends/CMakeLists.txt b/frontends/CMakeLists.txt
index 85642e8..1810f94 100644
--- a/frontends/CMakeLists.txt
+++ b/frontends/CMakeLists.txt
@@ -3,8 +3,10 @@ option(BUILD_CSBEATS "Build the beats score frontend" ON)
 option(BUILD_WINSOUND "Build the Winsound frontend. Requires FLTK headers and libs." OFF)
 option(BUILD_CSOUND_VST "Build the CsoundVST frontend. Requires the Steinberg VST SDK 2.3." OFF)
 
-find_package(FLEX)
-find_package(BISON)
+if (NOT MSVC)
+    find_package(FLEX)
+    find_package(BISON)
+endif()
 
 find_path(PD_HEADER_PATH m_pd.h)
 find_library(PD_LIBRARY pd.dll)
@@ -67,20 +69,16 @@ set_target_properties(csladspa PROPERTIES PREFIX "")
 check_deps(BUILD_CSBEATS FLEX_EXECUTABLE BISON_EXECUTABLE)
 
 if(BUILD_CSBEATS)
-
     BISON_TARGET(csbeats_PARSER beats/beats.y ${CMAKE_CURRENT_BINARY_DIR}/beats.tab.c)
     FLEX_TARGET(csbeats_SCANNER beats/beats.l ${CMAKE_CURRENT_BINARY_DIR}/beatslex.yy.c)
 
     ADD_FLEX_BISON_DEPENDENCY(csbeats_SCANNER csbeats_PARSER)
 
-    include_directories(${CMAKE_CURRENT_BINARY_DIR})
-    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/beats)
-
     set(csbeats_SRCS
     	${CMAKE_CURRENT_SOURCE_DIR}/beats/main.c
         ${FLEX_csbeats_SCANNER_OUTPUTS}
         ${BISON_csbeats_PARSER_OUTPUTS})
-    
+
 
     if(MSVC)
         set_source_files_properties(${FLEX_csbeats_SCANNER_OUTPUTS} PROPERTIES
@@ -90,16 +88,17 @@ if(BUILD_CSBEATS)
       make_executable(csbeats "${csbeats_SRCS}" "m")
     endif()
 
+    target_include_directories(csbeats PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+    target_include_directories(csbeats PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/beats)
 endif()
 
 #PD Interface
-if(WIN_32)
+if(WIN32)
     check_deps(BUILD_PD_CLASS PD_HEADER_PATH PD_LIBRARY)
 else()
     check_deps(BUILD_PD_CLASS PD_HEADER_PATH)
 endif()
 if(BUILD_PD_CLASS)
-    include_directories(${PD_HEADER_PATH})
     if(LINUX)
         set(pdname "csound6~.pd_linux")
     elseif(APPLE)
@@ -108,6 +107,7 @@ if(BUILD_PD_CLASS)
         set(pdname "csound6~.dll")
     endif()
     add_library(pdcsound MODULE csoundapi_tilde/csoundapi_tilde.c)
+    target_include_directories(pdcsound PRIVATE ${PD_HEADER_PATH})
     if(WIN32)
         target_link_libraries (pdcsound ${CSOUNDLIB} ${PD_LIBRARY})
         set_target_properties(pdcsound  PROPERTIES "LINK_FLAGS"
@@ -139,18 +139,22 @@ if(BUILD_WINSOUND)
     set(WINSOUND_H ${CMAKE_CURRENT_BINARY_DIR}/winsound.h)
     set_source_files_properties(${WINSOUND_CXX} GENERATED)
     set_source_files_properties(${WINSOUND_H} GENERATED)
-    add_custom_target(winsound_fl COMMAND fluid -c -o ${WINSOUND_CXX} -h  ${WINSOUND_H} ${WINSOUND_FL})
+
+	find_program(FLUID_BIN NAMES fluid)
+	if(FLUID_BIN)
+		add_custom_target(winsound_fl COMMAND ${FLUID_BIN} -c -o ${WINSOUND_CXX} -h  ${WINSOUND_H} ${WINSOUND_FL})
+	else()
+		message(WARNING "Could not find fluid executable")
+	endif()
 
     set(WINSOUND_SRCS ${WINSOUND_CXX} winsound/main.cxx)
 
     make_executable(winsound "${WINSOUND_SRCS}" "${FLTK_LIBRARIES}")
     target_link_libraries (winsound ${CSOUNDLIB})
     add_dependencies(winsound winsound_fl)
-    include_directories(${FLTK_INCLUDE_DIR})
-    include_directories(${CMAKE_CURRENT_BINARY_DIR})
-    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/winsound)
-
-
+    target_include_directories(winsound PRIVATE ${FLTK_INCLUDE_DIR})
+    target_include_directories(winsound PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+    target_include_directories(winsound PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/winsound)
 endif()
 
 # debugger command line app
diff --git a/frontends/CsoundAC/CMakeLists.txt b/frontends/CsoundAC/CMakeLists.txt
index 27af591..7413cf3 100644
--- a/frontends/CsoundAC/CMakeLists.txt
+++ b/frontends/CsoundAC/CMakeLists.txt
@@ -2,8 +2,7 @@
 
 include(CheckIncludeFiles)
 
-set (CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+set(CMAKE_CXX_STANDARD 11)
 
 option(BUILD_CSOUND_AC "Build CsoundAC extension module for Csound with algorithmic composition (needs C++ interface)" ON)
 option(BUILD_CSOUND_AC_PYTHON_INTERFACE "Build the Csound AC Python interface" ON)
@@ -11,9 +10,16 @@ option(BUILD_CSOUND_AC_LUA_INTERFACE "Build the Csound AC Lua interface" ON)
 option(USE_SYSTEM_PORTSMF ON)
 
 find_library(MUSICXML_LIBRARY musicxml2)
+find_package(FLTK)
+find_package(Eigen3 NO_MODULE)
 find_package(SWIG)
 find_package(PythonLibs)
+find_library(PORTSMF_LIBRARY portSMF)
 find_library(LUAJIT_LIBRARY luajit)
+find_library(JPEG_LIBRARY jpeg)
+find_library(PNG_LIBRARY NAMES png png16 libpng16)
+find_library(Z_LIBRARY NAMES z zlib)
+
 if(NOT LUAJIT_LIBRARY)
     find_library(LUAJIT_LIBRARY luajit-5.1)
 endif()
@@ -22,87 +28,90 @@ if(NOT LUAJIT_LIBRARY AND WIN32)
 endif()
 find_path(LUA_H_PATH lua.h PATH_SUFFIXES luajit-2.0)
 
-find_library(PORTSMF_LIBRARY portSMF)
-
-check_deps(BUILD_CSOUND_AC BUILD_CXX_INTERFACE FLTK_FOUND LIBSNDFILE_LIBRARY EIGEN3_INCLUDE_PATH)
-check_deps(BUILD_CSOUND_AC_PYTHON_INTERFACE SWIG_FOUND PYTHONLIBS_FOUND EIGEN3_INCLUDE_PATH)
-check_deps(BUILD_CSOUND_AC_LUA_INTERFACE SWIG_FOUND LUAJIT_LIBRARY LUA_H_PATH EIGEN3_INCLUDE_PATH)
+check_deps(BUILD_CSOUND_AC BUILD_CXX_INTERFACE FLTK_FOUND LIBSNDFILE_LIBRARY Eigen3_FOUND EIGEN3_INCLUDE_PATH)
+check_deps(BUILD_CSOUND_AC_PYTHON_INTERFACE SWIG_FOUND PYTHONLIBS_FOUND BUILD_CSOUND_AC)
+check_deps(BUILD_CSOUND_AC_LUA_INTERFACE SWIG_FOUND LUAJIT_LIBRARY BUILD_CSOUND_AC)
 
 if(BUILD_CSOUND_AC)
-    include_directories(${CMAKE_HOME_DIRECTORY}/interfaces)
-    include_directories(${EIGEN3_INCLUDE_PATH})
-    include_directories(${FLTK_INCLUDE_DIR})
     set(libcsoundac_SRCS
-	Cell.cpp
-	ChordLindenmayer.cpp
-	Composition.cpp
-	Conversions.cpp
-	Counterpoint.cpp
-	CounterpointMain.cpp
-	CounterpointNode.cpp
-	Event.cpp
-	Hocket.cpp
-	ImageToScore.cpp
-	Lindenmayer.cpp
-	MCRM.cpp
-	Midifile.cpp
-	MusicModel.cpp
-	Node.cpp
-	Random.cpp
-	Rescale.cpp
-	Score.cpp
-	ScoreModel.cpp
-	ScoreNode.cpp
-	Sequence.cpp
-	Shell.cpp
-	Soundfile.cpp
-	StrangeAttractor.cpp
-	System.cpp
-	Voicelead.cpp
-	VoiceleadingNode.cpp)
+	    Cell.cpp
+	    ChordLindenmayer.cpp
+	    Composition.cpp
+	    Conversions.cpp
+	    Counterpoint.cpp
+	    CounterpointMain.cpp
+	    CounterpointNode.cpp
+	    Event.cpp
+	    Hocket.cpp
+	    ImageToScore.cpp
+	    Lindenmayer.cpp
+	    MCRM.cpp
+	    Midifile.cpp
+	    MusicModel.cpp
+	    Node.cpp
+	    Random.cpp
+	    Rescale.cpp
+	    Score.cpp
+	    ScoreModel.cpp
+	    ScoreNode.cpp
+	    Sequence.cpp
+	    Shell.cpp
+	    Soundfile.cpp
+	    StrangeAttractor.cpp
+	    System.cpp
+	    Voicelead.cpp
+	    VoiceleadingNode.cpp)
 
     check_deps(USE_SYSTEM_PORTSMF PORTSMF_LIBRARY)
     if(NOT USE_SYSTEM_PORTSMF)
         list(APPEND libcsoundac_SRCS
-        allegro.cpp
-        allegrord.cpp
-        allegroserial.cpp
-        allegrosmfrd.cpp
-        allegrosmfwr.cpp
-        allegrowr.cpp
-        mfmidi.cpp
-        strparse.cpp
-        trace.cpp
-        )
+            allegro.cpp
+            allegrord.cpp
+            allegroserial.cpp
+            allegrosmfrd.cpp
+            allegrosmfwr.cpp
+            allegrowr.cpp
+            mfmidi.cpp
+            strparse.cpp
+            trace.cpp)
     endif()
 
-    add_library(libCsoundAC SHARED ${libcsoundac_SRCS})
+    if (MSVC)
+        add_library(libCsoundAC STATIC ${libcsoundac_SRCS})
+    else()
+        add_library(libCsoundAC SHARED ${libcsoundac_SRCS})
+    endif()
+
+    target_include_directories(libCsoundAC PRIVATE ${EIGEN3_INCLUDE_PATH})
+    target_include_directories(libCsoundAC PRIVATE ${FLTK_INCLUDE_DIR})
+
     set_target_properties(libCsoundAC PROPERTIES
-        LINK_INTERFACE_LIBRARIES ""
         SOVERSION ${APIVERSION}
         OUTPUT_NAME CsoundAC
         RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
         LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
-        ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
-        )
-    target_link_libraries(libCsoundAC libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
+        ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR})
+
+    target_link_libraries(libCsoundAC PRIVATE libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
     if(USE_SYSTEM_PORTSMF)
-        target_link_libraries(libCsoundAC ${PORTSMF_LIBRARY})
+        target_link_libraries(libCsoundAC PRIVATE ${PORTSMF_LIBRARY})
     endif()
-    if(WIN32 AND NOT MSVC) # for MSYS2/mingw64
+
+    if(WIN32) # for MSYS2/mingw64
         #  mingw64 needs this to create a valid .pyd.
-        if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-          add_definitions(-DMS_WIN64)
+        if(NOT MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
+            target_compile_definitions(libCsoundAC PRIVATE -DMS_WIN64)
         endif()
-        target_link_libraries(libCsoundAC jpeg png z)
+        target_link_libraries(libCsoundAC PRIVATE ${JPEG_LIBRARY} ${PNG_LIBRARY} ${Z_LIBRARY})
     endif()
+
     if(HAVE_UNISTD_H)
       set_target_properties(libCsoundAC PROPERTIES
         COMPILE_FLAGS "-DHAVE_UNISTD_H")
     endif()
 
     if(MUSICXML_LIBRARY)
-        target_link_libraries(libCsoundAC libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
+        target_link_libraries(libCsoundAC PRIVATE libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
     endif()
 
     install(TARGETS libCsoundAC
@@ -110,10 +119,11 @@ if(BUILD_CSOUND_AC)
         ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
 
     if(SWIG_FOUND)
+        message(STATUS "SWIG_USE_FILE: " ${SWIG_USE_FILE})
         include(${SWIG_USE_FILE})
         set(CMAKE_SWIG_OUTDIR ${BUILD_LIB_DIR})
         include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-	list(APPEND CMAKE_SWIG_FLAGS "-includeall" "-verbose")
+	    list(APPEND CMAKE_SWIG_FLAGS "-includeall" "-verbose")
     endif()
 
     if(BUILD_CSOUND_AC_PYTHON_INTERFACE)
@@ -124,6 +134,7 @@ if(BUILD_CSOUND_AC)
         set_source_files_properties(CsoundAC.i
             PROPERTIES CPLUSPLUS ON
             SWIG_MODULE_NAME CsoundAC)
+
         swig_add_module(CsoundAC python CsoundAC.i)
         swig_link_libraries(CsoundAC libCsoundAC libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${PYTHON_LIBRARIES})
 
@@ -131,7 +142,6 @@ if(BUILD_CSOUND_AC)
             swig_link_libraries(CsoundAC libCsoundAC libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY} ${PYTHON_LIBRARIES})
         endif()
 
-
   	    if(APPLE)
             set_target_properties(${SWIG_MODULE_CsoundAC_REAL_NAME} PROPERTIES
                 LINK_FLAGS "-undefined dynamic_lookup")
@@ -151,7 +161,6 @@ if(BUILD_CSOUND_AC)
 
     if(BUILD_CSOUND_AC_LUA_INTERFACE)
         message(STATUS "Building CsoundAC Lua interface.")
-        include_directories(${LUA_H_PATH})
 
         SET_SOURCE_FILES_PROPERTIES(luaCsoundAC.i
             PROPERTIES CPLUSPLUS ON
@@ -163,11 +172,11 @@ if(BUILD_CSOUND_AC)
           SWIG_LINK_LIBRARIES(luaCsoundAC libCsoundAC libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY} ${LUAJIT_LIBRARY})
         endif()
 
-
   	    if(APPLE)
             set_target_properties(${SWIG_MODULE_luaCsoundAC_REAL_NAME} PROPERTIES
                 LINK_FLAGS "-undefined dynamic_lookup")
        	endif()
+        target_include_directories(${SWIG_MODULE_luaCsoundAC_REAL_NAME} PRIVATE ${LUA_H_PATH})
 
         set_target_properties(${SWIG_MODULE_luaCsoundAC_REAL_NAME} PROPERTIES
             RUNTIME_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
@@ -181,3 +190,4 @@ if(BUILD_CSOUND_AC)
     endif()
 
 endif()
+
diff --git a/frontends/CsoundAC/CsoundAC.i b/frontends/CsoundAC/CsoundAC.i
index 3396d79..3af8b7c 100644
--- a/frontends/CsoundAC/CsoundAC.i
+++ b/frontends/CsoundAC/CsoundAC.i
@@ -33,6 +33,12 @@
 */
 #if defined(SWIGPYTHON)
 
+%begin %{
+#ifdef _MSC_VER
+#define SWIG_PYTHON_INTERPRETER_NO_DEBUG
+#endif
+%}
+
 /* This function already gets exported in other form */
 /* Don't export this to avoid build failures on amd64 */
 %ignore Counterpoint::message(const char*, va_list);
diff --git a/frontends/CsoundAC/Event.cpp b/frontends/CsoundAC/Event.cpp
index 6dbf0e5..91b00bc 100644
--- a/frontends/CsoundAC/Event.cpp
+++ b/frontends/CsoundAC/Event.cpp
@@ -297,14 +297,14 @@ namespace csound
 
   Event &Event::operator = (const Event &a)
   {
-	  Eigen::VectorXd::operator=(a);
+      Eigen::VectorXd::operator=(a);
     properties = a.properties;
     return *this;
   }
 
   Event &Event::operator = (const Eigen::VectorXd &a)
   {
-	  Eigen::VectorXd::operator=(a);
+      Eigen::VectorXd::operator=(a);
     return *this;
   }
 
diff --git a/frontends/CsoundAC/Event.hpp b/frontends/CsoundAC/Event.hpp
index 5714317..843b2ba 100644
--- a/frontends/CsoundAC/Event.hpp
+++ b/frontends/CsoundAC/Event.hpp
@@ -79,7 +79,7 @@ namespace csound
 //template class __declspec(dllexport) Eigen::Matrix< double, 13, 13 >;
 
 class SILENCE_PUBLIC Event :
-	public Eigen::VectorXd
+        public Eigen::VectorXd
   {
   public:
     typedef enum
diff --git a/frontends/CsoundVST/CMakeLists.txt b/frontends/CsoundVST/CMakeLists.txt
index e752996..45a3a4b 100644
--- a/frontends/CsoundVST/CMakeLists.txt
+++ b/frontends/CsoundVST/CMakeLists.txt
@@ -2,14 +2,14 @@
 
 include(CheckIncludeFiles)
 
-option(BUILD_CSOUNDVST "Build CsoundVST plugin (needs C++ interface, FLTK, VST SDK)" OFF)
+option(BUILD_CSOUND_VST "Build CsoundVST plugin (needs C++ interface, FLTK, VST SDK)" OFF)
 IF(APPLE)
 find_library(FLTK libfltk)
 ENDIF(APPLE)
 
-check_deps(BUILD_CSOUNDVST BUILD_CXX_INTERFACE FLTK_FOUND LIBSNDFILE_LIBRARY EIGEN3_INCLUDE_PATH VSTSDK2X_FOUND)
-message(STATUS "BUILD_CSOUNDVST: ${BUILD_CSOUNDVST}.")
-if(BUILD_CSOUNDVST)
+check_deps(BUILD_CSOUND_VST BUILD_CXX_INTERFACE FLTK_FOUND LIBSNDFILE_LIBRARY EIGEN3_INCLUDE_PATH VSTSDK2X_FOUND)
+message(STATUS "BUILD_CSOUND_VST: ${BUILD_CSOUND_VST}.")
+if(BUILD_CSOUND_VST)
     include_directories(${CMAKE_HOME_DIRECTORY}/interfaces)
     include_directories(${CMAKE_HOME_DIRECTORY}/frontends/CsoundVST)
     include_directories(${EIGEN3_INCLUDE_PATH})
@@ -17,26 +17,24 @@ if(BUILD_CSOUNDVST)
     include_directories(${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x)
     include_directories(${VSTSDK2X_INCLUDE_DIR}/pluginterfaces/source/vst2.x)
     include_directories(${FLTK_INCLUDE_DIR})
-    add_definitions(-DVST_FORCE_DEPRECATED=0)
     set(CSOUNDVST_SRCS
-        CsoundVst.cpp
+        CsoundVST.cpp
         CsoundVstFltk.cpp
         CsoundVstUi.cpp
         ${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x/audioeffect.cpp
         ${VSTSDK2X_INCLUDE_DIR}/public.sdk/source/vst2.x/audioeffectx.cpp)
-    add_compile_options("-O2")
     add_library(CsoundVST SHARED ${CSOUNDVST_SRCS})
+    target_compile_options(CsoundVST PRIVATE -DVST_FORCE_DEPRECATED=0 -O2)
     set_target_properties(CsoundVST PROPERTIES
-        LINK_INTERFACE_LIBRARIES ""
         OUTPUT_NAME CsoundVST
         RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
         LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         )
-    target_link_libraries(CsoundVST libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
+    target_link_libraries(CsoundVST PRIVATE libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
 
     if(MUSICXML_LIBRARY)
-        target_link_libraries(CsoundVST libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
+        target_link_libraries(CsoundVST PRIVATE libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
     endif()
 
     set(CSOUNDVST_MAIN_SRCS
@@ -45,19 +43,17 @@ if(BUILD_CSOUNDVST)
         ${VSTSDK2X_DIR}/public.sdk/source/vst2.x/audioeffectx.cpp)
     add_executable(csoundvstmain ${CSOUNDVST_MAIN_SRCS})
     set_target_properties(csoundvstmain PROPERTIES
-        LINK_INTERFACE_LIBRARIES ""
         OUTPUT_NAME csoundvstmain
         RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
         LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
         )
-    target_link_libraries(csoundvstmain ${CsoundVST} libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
+    target_link_libraries(csoundvstmain PRIVATE CsoundVST libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY})
 
     if(MUSICXML_LIBRARY)
-        target_link_libraries(csoundvstmain ${CsoundVST} libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
+        target_link_libraries(csoundvstmain PRIVATE CsoundVST libcsnd6 ${CSOUNDLIB} ${FLTK_LIBRARIES} ${LIBSNDFILE_LIBRARY} ${MUSICXML_LIBRARY})
     endif()
 
-
     install(TARGETS CsoundVST
         RUNTIME DESTINATION ${LIBRARY_INSTALL_DIR}
         LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
@@ -67,3 +63,5 @@ if(BUILD_CSOUNDVST)
         RUNTIME DESTINATION "${EXECUTABLE_INSTALL_DIR}")
 
 endif()
+
+
diff --git a/frontends/CsoundVST/CsoundVST.cpp b/frontends/CsoundVST/CsoundVST.cpp
index 3e5e6b4..668eccc 100644
--- a/frontends/CsoundVST/CsoundVST.cpp
+++ b/frontends/CsoundVST/CsoundVST.cpp
@@ -1,24 +1,48 @@
-/*
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound, with Python scripting.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #include "CsoundVST.hpp"
 #include "CsoundVstFltk.hpp"
 #include <cstring>
diff --git a/frontends/CsoundVST/CsoundVST.hpp b/frontends/CsoundVST/CsoundVST.hpp
index 323908a..17161d1 100644
--- a/frontends/CsoundVST/CsoundVST.hpp
+++ b/frontends/CsoundVST/CsoundVST.hpp
@@ -1,24 +1,48 @@
-/*
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #ifndef __CSOUNDVST_H
 #define __CSOUNDVST_H
 
@@ -150,4 +174,3 @@ extern "C"
 #endif
 
 #endif
-
diff --git a/frontends/CsoundVST/CsoundVSTMain.cpp b/frontends/CsoundVST/CsoundVSTMain.cpp
index d44b117..14f839d 100644
--- a/frontends/CsoundVST/CsoundVSTMain.cpp
+++ b/frontends/CsoundVST/CsoundVSTMain.cpp
@@ -1,24 +1,48 @@
-/**
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound, with Python scripting.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #if defined(HAVE_CONFIG_H)
 #include "config.h"
 #endif
@@ -48,4 +72,3 @@ AudioEffect *createEffectInstance(audioMasterCallback audioMaster)
 {
  return new CsoundVST (audioMaster);
 }
-
diff --git a/frontends/CsoundVST/CsoundVstFltk.cpp b/frontends/CsoundVST/CsoundVstFltk.cpp
index c16890a..cfbb562 100644
--- a/frontends/CsoundVST/CsoundVstFltk.cpp
+++ b/frontends/CsoundVST/CsoundVstFltk.cpp
@@ -1,24 +1,48 @@
-/**
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #if defined(HAVE_CONFIG_H)
 #include "config.h"
 #endif
@@ -594,4 +618,3 @@ void onSettingsApply(Fl_Button* fl_button, CsoundVstFltk* csoundVstFltk)
 {
   csoundVstFltk->onSettingsApply(fl_button, csoundVstFltk);
 }
-
diff --git a/frontends/CsoundVST/CsoundVstFltk.hpp b/frontends/CsoundVST/CsoundVstFltk.hpp
index 24e8741..9c2dce2 100644
--- a/frontends/CsoundVST/CsoundVstFltk.hpp
+++ b/frontends/CsoundVST/CsoundVstFltk.hpp
@@ -1,24 +1,48 @@
-/*
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound, with Python scripting.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #ifndef CSOUNDVSTFLTK_H
 #define CSOUNDVSTFLTK_H
 
@@ -54,7 +78,7 @@ class SILENCE_PUBLIC WaitCursor
   void *cursor;
 public:
   WaitCursor();
-  virtual ~WaitCursor();
+  ~WaitCursor();
 };
 
 class CsoundVstFltk :
@@ -120,4 +144,3 @@ public:
 };
 
 #endif
-
diff --git a/frontends/CsoundVST/CsoundVstUi.fl b/frontends/CsoundVST/CsoundVstUi.fl
index e4f9b55..8f568f7 100644
--- a/frontends/CsoundVST/CsoundVstUi.fl
+++ b/frontends/CsoundVST/CsoundVstUi.fl
@@ -1,3 +1,48 @@
+#   COUNDVST
+# 
+#   A VST plugin version of Csound.
+# 
+#   VST is a trademark of Steinberg Media Technologies GmbH.
+#   VST Plug-In Technology by Steinberg.
+# 
+#   Copyright (C) 2004 Michael Gogins
+# 
+#   The CsoundVST library is free software; you can redistribute it
+#   and/or modify it under the terms of the GNU Lesser General Public
+#   License as published by the Free Software Foundation; either
+#   version 2.1 of the License, or (at your option) any later version.
+# 
+#   The CsoundVST library is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU Lesser General Public License for more details.
+# 
+#   You should have received a copy of the GNU Lesser General Public
+#   License along with the CsoundVST library; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+#   02111-1307 USA
+# 
+#   Linking CsoundVST statically or dynamically with other modules is making a
+#   combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+#   Lesser General Public License cover the whole combination.
+# 
+#   In addition, as a special exception, the copyright holders of CsoundVST 
+#   give you permission to combine CsoundVST with free software programs 
+#   or libraries that are released under the GNU LGPL and with code included 
+#   in the standard release of the VST SDK version 2 under the terms of the 
+#   license stated in the VST SDK version 2 files. You may copy and distribute 
+#   such a system following the terms of the GNU LGPL for CsoundVST and the 
+#   licenses of the other code concerned. The source code for the VST SDK 
+#   version 2 is available in the VST SDK hosted at
+#   https://github.com/steinbergmedia/vst3sdk.
+# 
+#   Note that people who make modified versions of CsoundVST are not obligated to
+#   grant this special exception for their modified versions; it is their
+#   choice whether to do so. The GNU Lesser General Public License gives
+#   permission to release a modified version without this exception; this
+#   exception also makes it possible to release a modified version which
+#   carries forward this exception.
+
 # data file for the Fltk User Interface Designer (fluid)
 version 1.0303 
 header_name {.h} 
diff --git a/frontends/CsoundVST/Platform.hpp b/frontends/CsoundVST/Platform.hpp
index f7d09e3..04e0d82 100644
--- a/frontends/CsoundVST/Platform.hpp
+++ b/frontends/CsoundVST/Platform.hpp
@@ -1,24 +1,48 @@
-/*
-* C S O U N D   V S T
-*
-* A VST plugin version of Csound, with Python scripting.
-*
-* L I C E N S E
-*
-* This software is free software; you can redistribute it and/or
-* modify it under the terms of the GNU Lesser General Public
-* License as published by the Free Software Foundation; either
-* version 2.1 of the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+//  CSOUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Andres Cabrera, Michael Gogins
+//
+//  The vst4cs library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The vst4cs library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with The vst4cs library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking vst4cs statically or dynamically with other modules is making a
+//  combined work based on vst4cs. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of vst4cs,
+//  including the Csound developers and Hermann Seib, the original author of
+//  VSTHost, give you permission to combine vst4cs with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for vst4cs and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of vst4cs are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
 #ifndef SILENCE_PLATFORM_HPP
 #define SILENCE_PLATFORM_HPP
 
diff --git a/frontends/CsoundVST/ScoreGenerator.cpp b/frontends/CsoundVST/ScoreGenerator.cpp
index 684a24e..eb7f03d 100644
--- a/frontends/CsoundVST/ScoreGenerator.cpp
+++ b/frontends/CsoundVST/ScoreGenerator.cpp
@@ -73,4 +73,3 @@ void ScoreGenerator::score(csound::Score *score)
         }
     }
 }
-
diff --git a/frontends/CsoundVST/ScoreGeneratorVst.cpp b/frontends/CsoundVST/ScoreGeneratorVst.cpp
index fbdab3f..0b4fc79 100644
--- a/frontends/CsoundVST/ScoreGeneratorVst.cpp
+++ b/frontends/CsoundVST/ScoreGeneratorVst.cpp
@@ -640,4 +640,3 @@ void ScoreGeneratorVst::logv(char *format,...)
   log(buffer);
   va_end(marker);
 }
-
diff --git a/frontends/CsoundVST/ScoreGeneratorVst.hpp b/frontends/CsoundVST/ScoreGeneratorVst.hpp
index 38de878..71403b7 100644
--- a/frontends/CsoundVST/ScoreGeneratorVst.hpp
+++ b/frontends/CsoundVST/ScoreGeneratorVst.hpp
@@ -163,4 +163,3 @@ public:
 };
 
 #endif
-
diff --git a/frontends/CsoundVST/ScoreGeneratorVstFltk.cpp b/frontends/CsoundVST/ScoreGeneratorVstFltk.cpp
index 90c3e8d..67dc56c 100644
--- a/frontends/CsoundVST/ScoreGeneratorVstFltk.cpp
+++ b/frontends/CsoundVST/ScoreGeneratorVstFltk.cpp
@@ -393,4 +393,3 @@ void onGenerate(Fl_Button* fl_button, ScoreGeneratorVstFltk* ScoreGeneratorVstFl
 {
   ScoreGeneratorVstFltk->onGenerate(fl_button, ScoreGeneratorVstFltk);
 }
-
diff --git a/frontends/CsoundVST/ScoreGeneratorVstFltk.hpp b/frontends/CsoundVST/ScoreGeneratorVstFltk.hpp
index d9b2855..16badc7 100644
--- a/frontends/CsoundVST/ScoreGeneratorVstFltk.hpp
+++ b/frontends/CsoundVST/ScoreGeneratorVstFltk.hpp
@@ -107,4 +107,3 @@ public:
 };
 
 #endif
-
diff --git a/frontends/CsoundVST/csoundvst.rc b/frontends/CsoundVST/csoundvst.rc
index 04d11c5..0798b92 100644
--- a/frontends/CsoundVST/csoundvst.rc
+++ b/frontends/CsoundVST/csoundvst.rc
@@ -1,2 +1,47 @@
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST 
+//  give you permission to combine CsoundVST with free software programs 
+//  or libraries that are released under the GNU LGPL and with code included 
+//  in the standard release of the VST SDK version 2 under the terms of the 
+//  license stated in the VST SDK version 2 files. You may copy and distribute 
+//  such a system following the terms of the GNU LGPL for CsoundVST and the 
+//  licenses of the other code concerned. The source code for the VST SDK 
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #include <windows.h>
 csoundvst ICON frontends/CsoundVST/csound.ico
diff --git a/frontends/CsoundVST/csoundvst_main.cpp b/frontends/CsoundVST/csoundvst_main.cpp
index 59e50e0..c53c98b 100644
--- a/frontends/CsoundVST/csoundvst_main.cpp
+++ b/frontends/CsoundVST/csoundvst_main.cpp
@@ -1,30 +1,59 @@
-/**
- * C S O U N D   V S T
- *
- * A VST plugin version of Csound, with Python scripting.
- *
- * L I C E N S E
- *
- * This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+//  COUNDVST
+//
+//  A VST plugin version of Csound.
+//
+//  VST is a trademark of Steinberg Media Technologies GmbH.
+//  VST Plug-In Technology by Steinberg.
+//
+//  Copyright (C) 2004 Michael Gogins
+//
+//  The CsoundVST library is free software; you can redistribute it
+//  and/or modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  The CsoundVST library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with the CsoundVST library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+//  02111-1307 USA
+//
+//  Linking CsoundVST statically or dynamically with other modules is making a
+//  combined work based on CsoundVST. Thus, the terms and conditions of the GNU
+//  Lesser General Public License cover the whole combination.
+//
+//  In addition, as a special exception, the copyright holders of CsoundVST
+//  give you permission to combine CsoundVST with free software programs
+//  or libraries that are released under the GNU LGPL and with code included
+//  in the standard release of the VST SDK version 2 under the terms of the
+//  license stated in the VST SDK version 2 files. You may copy and distribute
+//  such a system following the terms of the GNU LGPL for CsoundVST and the
+//  licenses of the other code concerned. The source code for the VST SDK
+//  version 2 is available in the VST SDK hosted at
+//  https://github.com/steinbergmedia/vst3sdk.
+//
+//  Note that people who make modified versions of CsoundVST are not obligated to
+//  grant this special exception for their modified versions; it is their
+//  choice whether to do so. The GNU Lesser General Public License gives
+//  permission to release a modified version without this exception; this
+//  exception also makes it possible to release a modified version which
+//  carries forward this exception.
+
 #include <CsoundVST.hpp>
 #include <CsoundVstFltk.hpp>
 #include <cstdio>
 #include <cstdlib>
+#if defined(__linux__)
+#include <dlfcn.h>
+#endif
 
+#if !defined(WIN32)
 extern "C" void RunCsoundVST(const char *);
+#endif
 
 int main(int argc, char **argv)
 {
@@ -43,4 +72,3 @@ int main(int argc, char **argv)
   RunCsoundVST(filename);
 #endif
 }
-
diff --git a/frontends/beats/beats.l b/frontends/beats/beats.l
index 6ccd7c8..8fe37f5 100644
--- a/frontends/beats/beats.l
+++ b/frontends/beats/beats.l
@@ -38,6 +38,8 @@ int yyline = 0;
  extern int pnum;
 %}
 
+%option nounput
+
 INTGR           [0-9]+
 FLOAT           [[0-9]+\.([0-9]*)?
 WHITE           [ \t+]
diff --git a/frontends/csladspa/csladspa.cpp b/frontends/csladspa/csladspa.cpp
index ac0f5f0..24448ab 100644
--- a/frontends/csladspa/csladspa.cpp
+++ b/frontends/csladspa/csladspa.cpp
@@ -403,7 +403,6 @@ static LADSPA_Descriptor *init_descriptor(char *csdname, int plugindex)
   // and return NULL
   delete desc;
   delete[] PortNames;
-  delete[] ctlchn;
   delete[] PortDescriptors;
   delete[] PortRangeHints;
   cerr << "PLUGIN NOT LOADED: probably missing csLADSPA section\n";
diff --git a/frontends/csound/csound_main.c b/frontends/csound/csound_main.c
index 02e9652..d1b6a66 100644
--- a/frontends/csound/csound_main.c
+++ b/frontends/csound/csound_main.c
@@ -218,9 +218,15 @@ static void signal_handler(int sig)
 #endif
     psignal(sig, "\ncsound command");
     if ((sig == (int) SIGINT || sig == (int) SIGTERM)) {
-      if(_csound) csoundStop(_csound);
-      _result = -1;
-      return;
+      if(_csound) {
+        csoundStop(_csound);
+        csoundDestroy(_csound);
+      }
+      //_result = -1;
+      if (logFile != NULL)
+        fclose(logFile);
+      exit(1);
+      //return;
     }
     exit(1);
 }
diff --git a/frontends/csound/sched.c b/frontends/csound/sched.c
index 930345f..10c7632 100644
--- a/frontends/csound/sched.c
+++ b/frontends/csound/sched.c
@@ -119,7 +119,7 @@ int set_rt_priority(int argc, const char **argv)
     int     rtmode;
     struct sched_param p;
     int     i, err, priority, wd_enabled = 0;
-    int dummy = 0;
+    //int dummy = 0;
     /* int     not_root; */
 
     /* if ((int) geteuid() == 0) */
@@ -170,7 +170,7 @@ int set_rt_priority(int argc, const char **argv)
     }
 
     if (rtmode != 7) {          /* all the above are required to enable */
-      dummy = setuid(getuid());         /* error: give up root privileges */
+      (void)setuid(getuid());         /* error: give up root privileges */
       if (rtmode & 1) {
         err_msg("csound: --sched requires -d and either -o dac or -o devaudio");
         return -1;
@@ -226,7 +226,7 @@ int set_rt_priority(int argc, const char **argv)
       }
     }
     /* give up root privileges */
-    dummy = setuid(getuid());
+    (void)setuid(getuid());
     return 0;
 }
 
diff --git a/frontends/nwjs/README.md b/frontends/nwjs/README.md
index c12915c..79f54c6 100644
--- a/frontends/nwjs/README.md
+++ b/frontends/nwjs/README.md
@@ -52,6 +52,8 @@ graphics, and much more. For a full list of capabilities currently implemented i
 
 ## BUILDING
 
+Currently, there is an issue with a nw-gyp error in recent versions of NW.js. See https://github.com/nwjs/nw.js/issues/5960 for how to fix this by patching the nw-gyp configuration.
+
 ### Windows
 
 Currently, on Windows, there is no need to build `csound.node`, it is distributed in the
diff --git a/frontends/nwjs/binding.gyp b/frontends/nwjs/binding.gyp
index 19c7403..d7799c6 100644
--- a/frontends/nwjs/binding.gyp
+++ b/frontends/nwjs/binding.gyp
@@ -1,88 +1,35 @@
 {
-    "targets":
-    [
-        {
-            "target_name": "csound",
-            "sources":
-            [
-                "jscsound.cpp",
+    "targets": [{
+        "target_name": "csound",
+        "sources": [
+            "jscsound.cpp",
+        ],
+        'conditions': [
+            ['OS=="linux"',
+                {
+                    'libraries': [
+                        '-L$(CSOUND_HOME)/../cs6make -lcsound64',
+                    ],
+                    'include_dirs': [
+                        '$(CSOUND_HOME)/include',
+                    ],
+                    'cflags_cc!': [
+                        '-fno-exceptions',
+                        '-std=c++11',
+                    ],
+                }
             ],
-            'conditions':
-            [
-                 ['OS=="linux"',
-                    {
-                        'libraries':
-                        [
-                            '-L$(CSOUND_HOME)/../cs6make -lcsound64',
-                        ],
-                        'include_dirs':
-                        [
-                            '$(CSOUND_HOME)/include',
-                        ],
- 			'cflags_cc!':
-			[
-              		'-fno-exceptions',
-			'-std=c++11',
-            		],
-		    }
-               ],
-               ['OS=="win"',
-                    {
-                        'defines':
-                        [
-                          'FOO',
-                          'BAR=some_value',
-                        ],
-                       'libraries':
-                        [
-                            '-l$(CSOUND_HOME)/mingw64/csound64.lib',
-                        ],
-                        'include_dirs':
-                        [
-                            '$(CSOUND_HOME)/include',
-                        ],
-                        'configurations':
-                        {
-                            'Debug':
-                            {
-                                'msvs_settings':
-                                {
-                                    'VCCLCompilerTool':
-                                    {
-                                        'WarningLevel': 4,
-                                        'ExceptionHandling': 1,
-                                        'DisableSpecificWarnings': [4100, 4127, 4201, 4244, 4267, 4506, 4611, 4714],
-
-                                    },
-                                    'VCLinkerTool':
-                                    {
-                                        'AdditionalOptions': [ '/SubSystem:Console,"5.02"' ]
-                                    }
-                                }
-                            },
-                            'Release':
-                            {
-                                'msvs_settings':
-                                {
-                                    'VCCLCompilerTool':
-                                    {
-                                    'PlatformToolset': 'v140_xp',
-                                        'WarningLevel': 4,
-                                        'ExceptionHandling': 1,
-                                        'DisableSpecificWarnings': [4100, 4127, 4201, 4244, 4267, 4506, 4611, 4714],
-
-                                    },
-                                    'VCLinkerTool':
-                                    {
-                                    'PlatformToolset': 'v140_xp',
-                                        'AdditionalOptions': [ '/SubSystem:Console,"5.02"' ]
-                                    }
-                                }
-                            }
-                        }
-                    }
-                ]
+            ['OS=="win"',
+                {
+                    'msbuild_toolset': 'v140',
+                    'libraries': [
+                        '-l$(CSOUND_HOME)/msvc/csound-vs/RelWithDebInfo/csound64.lib',
+                    ],
+                    'include_dirs': [
+                        '$(CSOUND_HOME)/include',
+                    ],
+                }
             ]
-        }
-    ]
+        ]
+    }]
 }
diff --git a/frontends/nwjs/make_csound_node_windows_x64.cmd b/frontends/nwjs/make_csound_node_windows_x64.cmd
index 261f83a..5dd93f7 100644
--- a/frontends/nwjs/make_csound_node_windows_x64.cmd
+++ b/frontends/nwjs/make_csound_node_windows_x64.cmd
@@ -1,5 +1,5 @@
 set CSOUND_HOME=D:\msys64\home\restore\csound
 set PYTHON=C:\Program_Files\Anaconda2\python.exe
-REM npm config set msvs_version 2015 --global
-REM npm configure --version=0.23.5
-nw-gyp rebuild --target=0.23.5 --arch=x64
+npm config set msvs_version 2015 --global
+npm configure --version=0.23.5
+nw-gyp rebuild --target=0.23.5 --arch=x64 --msvs_version=2015 --platform_toolset=v140_xp
diff --git a/frontends/winsound/main.cxx b/frontends/winsound/main.cxx
index f74de3d..0426b13 100644
--- a/frontends/winsound/main.cxx
+++ b/frontends/winsound/main.cxx
@@ -5,11 +5,13 @@
  */
 #include "csound.h"
 #include "winsound.h"
+#ifndef _MSC_VER
+# include <unistd.h>
+#endif
 #include <errno.h>
 #include <stdarg.h>
-#include <unistd.h>
 #if defined(WIN32)
-#include <direct.h>
+# include <direct.h>
 #endif
 #include <FL/Fl_Preferences.H>
 extern int do_exit;
diff --git a/include/OpcodeBase.hpp b/include/OpcodeBase.hpp
index a202129..002219d 100644
--- a/include/OpcodeBase.hpp
+++ b/include/OpcodeBase.hpp
@@ -1,3 +1,27 @@
+/*
+    OpcodeBase.hpp:
+
+    Copyright (C) 2005, 2009, 2017 by Istva Varga, Victor Lazzarini and
+                                      Michael Gogins
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef OPCODE_BASE_H
 #define OPCODE_BASE_H
 
@@ -64,6 +88,56 @@ struct LockGuard {
     void *mutex;
 };
 
+/**
+ * Use this to store a pointer to a global heap-allocated object, e.g. one
+ * used to manage state between opcode instances.
+ */
+
+template<typename T> int CreateGlobalPointer(CSOUND *csound, const char *name, T *pointer)
+{
+    T **pointer_to_pointer = 0;
+    int result = csound->CreateGlobalVariable(csound, name, sizeof(pointer_to_pointer));
+    pointer_to_pointer = static_cast<T **>(csound->QueryGlobalVariable(csound, name));
+    *pointer_to_pointer = pointer;
+    return result;
+}
+
+/**
+ * Retrieve a pointer to a global heap-allocated object, e.g. one
+ * used to manage state between opcode instances.
+ */
+template<typename T> T *QueryGlobalPointer(CSOUND *csound, const char *name, T*& pointer)
+{
+    T **pointer_to_pointer = static_cast<T **>(csound->QueryGlobalVariableNoCheck(csound, name));
+    if (pointer_to_pointer != 0) {
+        pointer = *pointer_to_pointer;
+    } else {
+        pointer = 0;
+    }
+    return pointer;
+}
+
+/**
+ * Release a pointer to a global heap-allocated object, e.g. one used to
+ * manage state between opcode instances.
+ */
+void DestroyGlobalPointer(CSOUND *csound, const char *name)
+{
+    csound->DestroyGlobalVariable(csound, name);
+}
+
+/**
+ * Release a pointer to a global heap-allocated object, e.g. one used to
+ * manage state between opcode instances. If a non-null pointer is passed, it is deleted.
+ */
+template<typename T> void DestroyGlobalPointer(CSOUND *csound, const char *name, T *pointer)
+{
+    csound->DestroyGlobalVariable(csound, name);
+    if (pointer != 0) {
+        delete pointer;
+    }
+}
+
 template<typename T>
 class OpcodeBase
 {
diff --git a/include/cs_par_structs.h b/include/cs_par_structs.h
index f067113..4d39482 100644
--- a/include/cs_par_structs.h
+++ b/include/cs_par_structs.h
@@ -62,7 +62,9 @@ typedef struct _stateWithPadding {
 typedef struct _watchList {
   taskID id;
   struct _watchList *next;
-  uint8_t padding [(CONCURRENTPADDING - (sizeof(taskID) + sizeof(struct _watchList *))) / sizeof(uint8_t)];
+  uint8_t padding [(CONCURRENTPADDING -
+                    (sizeof(taskID) +
+                     sizeof(struct _watchList *))) / sizeof(uint8_t)];
 } watchList;
 
 #endif
diff --git a/include/csound.h b/include/csound.h
index 34c7bee..b51f6c4 100644
--- a/include/csound.h
+++ b/include/csound.h
@@ -1,3 +1,28 @@
+/*
+    csoud.h:
+
+    Copyright (C) 2003 2005 2008 2013 by John ffitch, Istvan Varga,
+                                         Mike Gogins, Victor Lazzarini,
+                                         Andres Cabrera
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef CSOUND_H
 #define CSOUND_H
 /*! \mainpage
@@ -690,6 +715,12 @@ extern "C" {
   PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root);
 
   /**
+   * Asynchronous version of csoundCompileTree()
+   */
+  PUBLIC int csoundCompileTreeAsync(CSOUND *csound, TREE *root);
+
+
+  /**
    * Free the resources associated with the TREE *tree
    * This function should be called whenever the TREE was
    * created with csoundParseOrc and memory can be deallocated.
@@ -707,6 +738,14 @@ extern "C" {
    */
   PUBLIC int csoundCompileOrc(CSOUND *csound, const char *str);
 
+   /**
+   *  Async version of csoundCompileOrc(). The code is parsed and
+   *  compiled, then placed on a queue for
+   *  asynchronous merge into the running engine, and evaluation.
+   *  The function returns following parsing and compilation.
+   */
+  PUBLIC int csoundCompileOrcAsync(CSOUND *csound, const char *str);
+
   /**
    *   Parse and compile an orchestra given on an string,
    *   evaluating any global space code (i-time only).
@@ -887,6 +926,45 @@ extern "C" {
    */
   PUBLIC void csoundReset(CSOUND *);
 
+   /** @}*/
+   /** @defgroup SERVER UDP server
+   *
+   *  @{ */
+
+  /**
+   * Starts the UDP server on a supplied port number
+   * returns CSOUND_SUCCESS if server has been started successfully,
+   * otherwise, CSOUND_ERROR.
+   */
+  PUBLIC int csoundUDPServerStart(CSOUND *csound, unsigned int port);
+
+  /** returns the port number on which the server is running, or
+   *  CSOUND_ERROR if the server is not running.
+   */
+  PUBLIC int csoundUDPServerStatus(CSOUND *csound);
+
+  /**
+   * Closes the UDP server, returning CSOUND_SUCCESS if the
+   * running server was successfully closed, CSOUND_ERROR otherwise.
+   */
+  PUBLIC int csoundUDPServerClose(CSOUND *csound);
+
+  /**
+   * Turns on the transmission of console messages to UDP on address addr
+   * port port. If mirror is one, the messages will continue to be
+   * sent to the usual destination (see csoundSetMessaggeCallback())
+   * as well as to UDP.
+   * returns CSOUND_SUCCESS or CSOUND_ERROR if the UDP transmission
+   * could not be set up.
+   */
+  PUBLIC int csoundUDPConsole(CSOUND *csound, const char *addr,
+                              int port, int mirror);
+
+  /**
+   * Stop transmitting console messages via UDP
+   */
+  PUBLIC void csoundStopUDPConsole(CSOUND *csound);
+
   /** @}*/
   /** @defgroup ATTRIBUTES Attributes
    *
@@ -1060,7 +1138,8 @@ extern "C" {
    * This callback is retained after a csoundReset() call.
    */
   PUBLIC void csoundSetFileOpenCallback(CSOUND *p,
-                                        void (*func)(CSOUND*, const char*, int, int, int));
+                                        void (*func)(CSOUND*, const char*,
+                                                     int, int, int));
 #endif
 
   /** @}*/
@@ -1212,9 +1291,10 @@ extern "C" {
    * Sets a function to be called by Csound for opening real-time
    * audio playback.
    */
-  PUBLIC void csoundSetPlayopenCallback(CSOUND *,
-                                        int (*playopen__)(CSOUND *,
-                                                          const csRtAudioParams *parm));
+  PUBLIC void
+  csoundSetPlayopenCallback(CSOUND *,
+                            int (*playopen__)(CSOUND *,
+                                              const csRtAudioParams *parm));
 
   /**
    * Sets a function to be called by Csound for performing real-time
@@ -1222,15 +1302,16 @@ extern "C" {
    */
   PUBLIC void csoundSetRtplayCallback(CSOUND *,
                                       void (*rtplay__)(CSOUND *,
-                                                       const MYFLT *outBuf, int nbytes));
+                                                       const MYFLT *outBuf,
+                                                       int nbytes));
 
   /**
    * Sets a function to be called by Csound for opening real-time
    * audio recording.
    */
   PUBLIC void csoundSetRecopenCallback(CSOUND *,
-                                       int (*recopen_)(CSOUND *,
-                                                       const csRtAudioParams *parm));
+                                     int (*recopen_)(CSOUND *,
+                                                     const csRtAudioParams *parm));
 
   /**
    * Sets a function to be called by Csound for performing real-time
@@ -1238,7 +1319,8 @@ extern "C" {
    */
   PUBLIC void csoundSetRtrecordCallback(CSOUND *,
                                         int (*rtrecord__)(CSOUND *,
-                                                          MYFLT *inBuf, int nbytes));
+                                                          MYFLT *inBuf,
+                                                          int nbytes));
 
   /**
    * Sets a function to be called by Csound for closing real-time
@@ -1252,7 +1334,9 @@ extern "C" {
    * (See csoundGetAudioDevList())
    */
   PUBLIC void csoundSetAudioDeviceListCallback(CSOUND *csound,
-                                               int (*audiodevlist__)(CSOUND *, CS_AUDIODEVICE *list, int isOutput));
+                                               int (*audiodevlist__)(CSOUND *,
+                                                   CS_AUDIODEVICE *list,
+                                                   int isOutput));
 
   /** @}*/
   /** @defgroup RTMIDI Realtime Midi I/O
@@ -1290,39 +1374,49 @@ extern "C" {
    * Sets callback for opening real time MIDI input.
    */
   PUBLIC void csoundSetExternalMidiInOpenCallback(CSOUND *,
-                                                  int (*func)(CSOUND *, void **userData, const char *devName));
+                                                  int (*func)(CSOUND *,
+                                                              void **userData,
+                                                              const char *devName));
 
   /**
    * Sets callback for reading from real time MIDI input.
    */
   PUBLIC void csoundSetExternalMidiReadCallback(CSOUND *,
-                                                int (*func)(CSOUND *, void *userData,
-                                                            unsigned char *buf, int nBytes));
+                                                int (*func)(CSOUND *,
+                                                            void *userData,
+                                                            unsigned char *buf,
+                                                            int nBytes));
 
   /**
    * Sets callback for closing real time MIDI input.
    */
   PUBLIC void csoundSetExternalMidiInCloseCallback(CSOUND *,
-                                                   int (*func)(CSOUND *, void *userData));
+                                                   int (*func)(CSOUND *,
+                                                               void *userData));
 
   /**
    * Sets callback for opening real time MIDI output.
    */
   PUBLIC void csoundSetExternalMidiOutOpenCallback(CSOUND *,
-                                                   int (*func)(CSOUND *, void **userData, const char *devName));
+                                                   int (*func)(CSOUND *,
+                                                               void **userData,
+                                                               const char *devName));
 
   /**
    * Sets callback for writing to real time MIDI output.
    */
   PUBLIC void csoundSetExternalMidiWriteCallback(CSOUND *,
-                                                 int (*func)(CSOUND *, void *userData,
-                                                             const unsigned char *buf, int nBytes));
+                                                 int (*func)(CSOUND *,
+                                                             void *userData,
+                                                             const unsigned char *buf,
+                                                             int nBytes));
 
   /**
    * Sets callback for closing real time MIDI output.
    */
   PUBLIC void csoundSetExternalMidiOutCloseCallback(CSOUND *,
-                                                    int (*func)(CSOUND *, void *userData));
+                                                    int (*func)(CSOUND *,
+                                                                void *userData));
 
   /**
    * Sets callback for converting MIDI error codes to strings.
@@ -1338,7 +1432,8 @@ extern "C" {
    */
   PUBLIC void csoundSetMIDIDeviceListCallback(CSOUND *csound,
                                               int (*mididevlist__)(CSOUND *,
-                                                                   CS_MIDIDEVICE *list, int isOutput));
+                                                              CS_MIDIDEVICE *list,
+                                                              int isOutput));
 
   /** @}*/
   /** @defgroup SCOREHANDLING Score Handling
@@ -1352,6 +1447,11 @@ extern "C" {
    */
   PUBLIC int csoundReadScore(CSOUND *csound, const char *str);
 
+   /**
+   *  Asynchronous version of csoundReadScore().
+   */
+  PUBLIC void csoundReadScoreAsync(CSOUND *csound, const char *str);
+
   /**
    * Returns the current score time in seconds
    * since the beginning of performance.
@@ -1445,20 +1545,20 @@ extern "C" {
   PUBLIC void csoundMessageV(CSOUND *,
                              int attr, const char *format, va_list args);
 
-  PUBLIC void csoundSetDefaultMessageCallback(
-                                              void (*csoundMessageCallback_)(CSOUND *,
-                                                                             int attr,
-                                                                             const char *format,
-                                                                             va_list valist));
+  PUBLIC void csoundSetDefaultMessageCallback(void (*csoundMessageCallback_)(
+                                           CSOUND *,
+                                           int attr,
+                                           const char *format,
+                                           va_list valist));
 
   /**
    * Sets a function to be called by Csound to print an informational message.
    */
   PUBLIC void csoundSetMessageCallback(CSOUND *,
-                                       void (*csoundMessageCallback_)(CSOUND *,
-                                                                      int attr,
-                                                                      const char *format,
-                                                                      va_list valist));
+                                   void (*csoundMessageCallback_)(CSOUND *,
+                                                                  int attr,
+                                                                  const char *format,
+                                                                  va_list valist));
 
   /**
    * Returns the Csound message level (from 0 to 231).
@@ -1709,6 +1809,12 @@ extern "C" {
                               char type, const MYFLT *pFields, long numFields);
 
   /**
+   *  Asynchronous version of csoundScoreEvent().
+   */
+  PUBLIC void csoundScoreEventAsync(CSOUND *,
+                              char type, const MYFLT *pFields, long numFields);
+
+  /**
    * Like csoundScoreEvent(), this function inserts a score event, but
    * at absolute time with respect to the start of performance, or from an
    * offset set with time_ofs
@@ -1717,12 +1823,22 @@ extern "C" {
                  char type, const MYFLT *pfields, long numFields, double time_ofs);
 
   /**
+   *  Asynchronous version of csoundScoreEventAbsolute().
+   */
+  PUBLIC void csoundScoreEventAbsoluteAsync(CSOUND *,
+                 char type, const MYFLT *pfields, long numFields, double time_ofs);
+  /**
    * Input a NULL-terminated string (as if from a console),
    * used for line events.
    */
   PUBLIC void csoundInputMessage(CSOUND *, const char *message);
 
   /**
+   * Asynchronous version of csoundInputMessage().
+   */
+  PUBLIC void csoundInputMessageAsync(CSOUND *, const char *message);
+
+  /**
    * Kills off one or more running instances of an instrument identified
    * by instr (number) or instrName (name). If instrName is NULL, the
    * instrument number is used.
@@ -1840,6 +1956,10 @@ extern "C" {
   PUBLIC void csoundTableCopyOut(CSOUND *csound, int table, MYFLT *dest);
 
   /**
+   * Asynchronous version of csoundTableCopyOut()
+   */
+  PUBLIC void csoundTableCopyOutAsync(CSOUND *csound, int table, MYFLT *dest);
+  /**
    * Copy the contents of an array *src into a given function table
    * The table number is assumed to be valid, and the table needs to
    * have sufficient space to receive all the array contents.
@@ -1847,6 +1967,11 @@ extern "C" {
   PUBLIC void csoundTableCopyIn(CSOUND *csound, int table, MYFLT *src);
 
   /**
+   * Asynchronous version of csoundTableCopyIn()
+   */
+  PUBLIC void csoundTableCopyInAsync(CSOUND *csound, int table, MYFLT *src);
+
+  /**
    * Stores pointer to function table 'tableNum' in *tablePtr,
    * and returns the table length (not including the guard point).
    * If the table does not exist, *tablePtr is set to NULL and
@@ -2381,13 +2506,14 @@ extern "C" {
 #include "version.h"
 
   /**
-   * Create circular buffer with numelem number of elements. The element's size is set
-   * from elemsize. It should be used like:
+   * Create circular buffer with numelem number of elements. The
+   * element's size is set from elemsize. It should be used like:
    *@code
    * void *rb = csoundCreateCircularBuffer(csound, 1024, sizeof(MYFLT));
    *@endcode
    */
-  PUBLIC void *csoundCreateCircularBuffer(CSOUND *csound, int numelem, int elemsize);
+  PUBLIC void *csoundCreateCircularBuffer(CSOUND *csound,
+                                          int numelem, int elemsize);
 
   /**
    * Read from circular buffer
@@ -2490,8 +2616,8 @@ extern "C" {
    */
   PUBLIC void csoundSetInputValueCallback(CSOUND *,
                                           void (*inputValueCalback_)(CSOUND *,
-                                                                     const char *channelName,
-                                                                     MYFLT *value));
+                                                         const char *channelName,
+                                                         MYFLT *value));
 
   /**
    * Called by external software to set a function for Csound to
@@ -2504,8 +2630,8 @@ extern "C" {
    */
   PUBLIC void csoundSetOutputValueCallback(CSOUND *,
                                            void (*outputValueCalback_)(CSOUND *,
-                                                                       const char *channelName,
-                                                                       MYFLT value));
+                                                           const char *channelName,
+                                                           MYFLT value));
 
   /**
    * Sets callback function to be called by the opcodes 'chnsend' and
diff --git a/include/csoundCore.h b/include/csoundCore.h
index 30206ea..431a14f 100644
--- a/include/csoundCore.h
+++ b/include/csoundCore.h
@@ -212,6 +212,11 @@ extern int ISSTRCOD(MYFLT);
 enum {FFT_LIB=0, PFFT_LIB, VDSP_LIB};
 enum {FFT_FWD=0, FFT_INV};
 
+/* advance declaration for
+  API  message queue struct
+*/
+struct _message_queue;
+
 typedef struct CORFIL {
     char    *body;
     unsigned int     len;
@@ -252,6 +257,7 @@ typedef struct CORFIL {
     double  quality;        /* for ogg encoding */
     int     ksmps_override;
     int     fft_lib;
+    int     echo;
   } OPARMS;
 
   typedef struct arglst {
@@ -283,18 +289,6 @@ typedef struct CORFIL {
         void    *useropinfo;    /* user opcode parameters */
     } OENTRY;
 
-    // holds matching oentries from opcodeList
-    // has space for 16 matches and next pointer in case more are found
-    // (unlikely though)
-    typedef struct oentries {
-        OENTRY* entries[16];
-//        int opnum[16];
-        int count;
-        char *opname;
-        int prvnum;
-        struct oentries* next;
-    } OENTRIES;
-
   /**
    * Storage for parsed orchestra code, for each opcode in an INSTRTXT.
    */
@@ -588,7 +582,7 @@ typedef struct CORFIL {
 #define CS_ESR       (csound->esr)
 #define CS_PDS       (p->h.insdshead->pds)
 #define CS_SPIN      (p->h.insdshead->spin)
-#define CS_SPOUT      (p->h.insdshead->spout)
+#define CS_SPOUT     (p->h.insdshead->spout)
 
   typedef int (*SUBR)(CSOUND *, void *);
 
@@ -934,8 +928,8 @@ typedef struct NAME__ {
    */
   typedef struct engine_state {
     CS_VAR_POOL    *varPool;  /* global variable pool */
-    MYFLT_POOL*   constantsPool;
-    CS_HASH_TABLE*  stringPool;
+    CS_HASH_TABLE  *constantsPool;
+    CS_HASH_TABLE  *stringPool;
     int            maxopcno;
     INSTRTXT      **instrtxtp; /* instrument list      */
     INSTRTXT      instxtanchor;
@@ -1610,6 +1604,8 @@ typedef struct NAME__ {
       EVTBLK  prve;
       char    *Linebuf;
       int     linebufsiz;
+      char *orchestra, *orchestrab;
+      int   oflag;
     } lineventStatics;
     struct musmonStatics__ {
       int32   srngcnt[MAXCHNLS], orngcnt[MAXCHNLS];
@@ -1762,6 +1758,14 @@ typedef struct NAME__ {
     int           score_parser;
     CS_HASH_TABLE* symbtab;
     int           tseglen;
+    int           inZero;       /* flag compilation of instr0 */
+    struct _message_queue **msg_queue;
+    volatile long msg_queue_wget; /* Writer - Get index */
+    volatile long msg_queue_wput; /* Writer - Put Index */
+    volatile long msg_queue_rstart; /* Reader - start index */
+    volatile long msg_queue_items;
+    void     *directory;
+    int      aftouch;
     /*struct CSOUND_ **self;*/
     /**@}*/
 #endif  /* __BUILDING_LIBCSOUND */
diff --git a/include/plugin.h b/include/plugin.h
index e527e60..16db272 100644
--- a/include/plugin.h
+++ b/include/plugin.h
@@ -35,6 +35,9 @@
 
 namespace csnd {
 
+/* constants */
+const double twopi = TWOPI;
+
 /** opcode threads: i-time, k-perf and/or a-perf
 */
 enum thread { i = 1, k = 2, ik = 3, a = 4, ia = 5, ika = 7 };
@@ -233,6 +236,11 @@ public:
       ComplexFFT(this, fdata, setup->N);
     return reinterpret_cast<std::complex<MYFLT> *>(fdata);
   }
+
+  /** Sleep
+   */
+  void sleep(int ms) { Sleep(ms); }
+
 };
 
 /**
@@ -241,6 +249,7 @@ public:
 class Thread {
   void *thread;
   static uintptr_t thrdRun(void *t) { return ((Thread *)t)->run(); }
+  virtual uintptr_t run() = 0;
 
 protected:
   Csound *csound;
@@ -250,7 +259,7 @@ public:
     CSOUND *p = (CSOUND *)csound;
     thread = p->CreateThread(thrdRun, (void *)this);
   }
-  virtual uintptr_t run() = 0;
+
   uintptr_t join() {
     CSOUND *p = (CSOUND *)csound;
     return p->JoinThread(thread);
@@ -319,6 +328,18 @@ public:
    */
   const MYFLT &operator[](int n) const { return sig[n]; }
 
+  /** get early exit sample position
+   */
+  uint32_t GetEarly() { return early;}
+
+  /** get early exit sample offset
+   */
+  uint32_t GetOffset() { return offset;}
+
+  /** get number of samples to process
+  */
+  uint32_t GetNsmps() { return nsmps; }
+
 };
 
 /** One-dimensional array container
@@ -371,7 +392,8 @@ public:
 
   /** vector end
    */
-  const_iterator cend() const { return (const T *)((char *)data + sizes[0] * arrayMemberSize); }
+  const_iterator cend() const {
+      return (const T *)((char *)data + sizes[0] * arrayMemberSize); }
 
   /** vector beginning
    */
@@ -379,7 +401,8 @@ public:
 
   /** vector end
    */
-  const_iterator end() const { return (const T *)((char *)data + sizes[0] * arrayMemberSize); }
+  const_iterator end() const {
+      return (const T *)((char *)data + sizes[0] * arrayMemberSize); }
 
   /** array subscript access (write)
    */
@@ -473,7 +496,7 @@ public:
 
 /** Phase Vocoder bin */
 typedef Pvbin<float> pv_bin;
- 
+
 /** Sliding Phase Vocoder bin */
 typedef Pvbin<MYFLT> spv_bin;
 
@@ -502,13 +525,13 @@ public:
     NB = nb;
     sliding = sl;
     if (!sliding) {
-      int bytes = (n + 2) * sizeof(float);
+      size_t bytes = (n + 2) * sizeof(float);
       if (frame.auxp == nullptr || frame.size < bytes) {
         csound->AuxAlloc(csound, bytes, &frame);
         std::fill((float *)frame.auxp, (float *)frame.auxp + n + 2, 0);
       }
     } else {
-      int bytes = (n + 2) * sizeof(MYFLT) * nsmps;
+      size_t  bytes = (n + 2) * sizeof(MYFLT) * nsmps;
       if (frame.auxp == NULL || frame.size < bytes)
         csound->AuxAlloc(csound, bytes, &frame);
     }
@@ -707,7 +730,7 @@ public:
   /** allocate memory for the container
    */
   void allocate(Csound *csound, int n) {
-    int bytes = n * sizeof(T);
+    size_t bytes = n * sizeof(T);
     if (auxp == nullptr || size < bytes) {
       csound->AuxAlloc(csound, bytes, (AUXCH *)this);
       std::fill((char *)auxp, (char *)endp, 0);
@@ -874,14 +897,13 @@ template <uint32_t N, uint32_t M> struct Plugin : OPDS {
     uint32_t early = insdshead->ksmps_no_end;
     nsmps = insdshead->ksmps - early;
     offset = insdshead->ksmps_offset;
-    for(auto &arg : outargs) {
-    if (csound->is_asig(arg)) {
-      if (UNLIKELY(offset))
+    if(UNLIKELY(offset || early))
+     for(auto &arg : outargs) {
+      if (csound->is_asig(arg)) {
         std::fill(arg, arg + offset, 0);
-      if (UNLIKELY(early))
         std::fill(arg + nsmps, arg + nsmps + early, 0);
+      }
      }
-    }
   }
 
   /** returns the number of output arguments
diff --git a/include/pools.h b/include/pools.h
index b653cd0..ff5f78b 100644
--- a/include/pools.h
+++ b/include/pools.h
@@ -1,3 +1,26 @@
+/*
+    pools.h:
+
+    Copyright (C) 2013 by Victor Lazzarini
+
+    This file is part of Csound.
+
+    The Csound Library is free software; you can redistribute it
+    and/or modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    Csound is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with Csound; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA
+*/
+
 #ifndef POOLS_H
 #define POOLS_H
 
diff --git a/include/sysdep.h b/include/sysdep.h
index 8ab239f..0b8a5ae 100644
--- a/include/sysdep.h
+++ b/include/sysdep.h
@@ -102,7 +102,13 @@ typedef uint_least16_t uint16;
 #include <AvailabilityMacros.h>
 #endif
 
+#if !defined(USE_DOUBLE)
+#if !defined(_MSC_VER)
 #include "float-version.h"
+#else
+#define USE_DOUBLE
+#endif
+#endif
 
 #ifdef USE_DOUBLE
 /* Defined here as Android does not have log2 functions */
@@ -315,8 +321,6 @@ typedef unsigned long       uintptr_t;
 #  define CS_PRINTF3    __attribute__ ((__format__ (__printf__, 3, 4)))
 /* a function with no side effects or dependencies on volatile data */
 #  define CS_PURE       __attribute__ ((__pure__))
-#  define LIKELY(x)     __builtin_expect(!!(x),1)
-#  define UNLIKELY(x)   __builtin_expect(!!(x),0)
 #else
 #  define CS_DEPRECATED
 #  define CS_NOINLINE
@@ -325,6 +329,11 @@ typedef unsigned long       uintptr_t;
 #  define CS_PRINTF2
 #  define CS_PRINTF3
 #  define CS_PURE
+#endif
+#if defined(__clang__) ||  defined(HAVE_GCC3)
+#  define LIKELY(x)     __builtin_expect(!!(x),1)
+#  define UNLIKELY(x)   __builtin_expect(!!(x),0)
+#else
 #  define LIKELY(x)     x
 #  define UNLIKELY(x)   x
 #endif
@@ -337,11 +346,15 @@ typedef unsigned long       uintptr_t;
 
 #ifdef USE_LRINT
 #  ifndef USE_DOUBLE
-#    define MYFLT2LONG(x) (x > LONG_MIN && x < LONG_MAX ? (int32) lrintf((float) (x)) : 0)
-#    define MYFLT2LRND(x) (x > LONG_MIN && x < LONG_MAX ? (int32) lrintf((float) (x)) : 0)
+#    define MYFLT2LONG(x) (x > LONG_MIN && x < LONG_MAX ? \
+                           (int32) lrintf((float) (x)) : 0)
+#    define MYFLT2LRND(x) (x > LONG_MIN && x < LONG_MAX ? \
+                           (int32) lrintf((float) (x)) : 0)
 #  else
-#    define MYFLT2LONG(x) (x > LONG_MIN && x < LONG_MAX ? (int32) lrint((double) (x)) : 0)
-#    define MYFLT2LRND(x) (x > LONG_MIN && x < LONG_MAX ? (int32) lrint((double) (x)) : 0)
+#    define MYFLT2LONG(x) (x > LONG_MIN && x < LONG_MAX ? \
+                           (int32) lrint((double) (x)) : 0)
+#    define MYFLT2LRND(x) (x > LONG_MIN && x < LONG_MAX ? \
+                           (int32) lrint((double) (x)) : 0)
 #  endif
 #elif defined(MSVC)
 #include <emmintrin.h>
diff --git a/include/version.h b/include/version.h
index 4854968..434391e 100644
--- a/include/version.h
+++ b/include/version.h
@@ -24,7 +24,7 @@
 #ifndef CSOUND_VERSION_H
 #define CSOUND_VERSION_H
 
-#define VERSION "6.09.1"
+#define VERSION "6.10"
 
 /* Define to the full name of this package. */
 #define CS_PACKAGE_NAME     "Csound"
@@ -38,8 +38,8 @@
 /* Define to the version of this package. */
 #define CS_PACKAGE_VERSION  VERSION
 #define CS_VERSION          (6)
-#define CS_SUBVER           (9)
-#define CS_PATCHLEVEL       (1)
+#define CS_SUBVER           (10)
+#define CS_PATCHLEVEL       (0)
 
 #define CS_APIVERSION       4   /* should be increased anytime a new version
                                    contains changes that an older host will
diff --git a/interfaces/CMakeLists.txt b/interfaces/CMakeLists.txt
index 8a949c3..df4cb12 100644
--- a/interfaces/CMakeLists.txt
+++ b/interfaces/CMakeLists.txt
@@ -6,6 +6,7 @@ option(BUILD_CXX_INTERFACE "Build the C++ interface library" ON)
 option(BUILD_PYTHON_INTERFACE "Build the Python interface (needs BUILD_CXX_INTERFACE)" ON)
 option(BUILD_JAVA_INTERFACE "Build the Java interface (needs BUILD_CXX_INTERFACE)" ON)
 option(BUILD_LUA_INTERFACE "Build the Lua interface (needs BUILD_CXX_INTERFACE)" ON)
+find_package(SWIG)
 
 
 if(BUILD_CXX_INTERFACE)
@@ -18,23 +19,25 @@ if(BUILD_CXX_INTERFACE)
         cs_glue.cpp
         filebuilding.cpp)
 
+    add_library(libcsnd6 SHARED ${libcsnd6_SRCS})
     set(libcsnd6_LIBS ${LIBSNDFILE_LIBRARY} )
 
-    if(WIN32 AND NOT MSVC)
+    if(WIN32)
       list(APPEND libcsnd6_LIBS "${LIBSNDFILE_SUPPORT_LIBS}")
       # mingw64 needs this to create a valid .pyd.
-      if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-        add_definitions(-DMS_WIN64)
+
+      if(NOT MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
+        target_compile_definitions(libcsnd6 PRIVATE -DMS_WIN64)
       endif()
     endif()
 
     set(libcsnd6_CFLAGS "")
     list(APPEND libcsnd6_LIBS ${CSOUNDLIB})
 
-    add_library(libcsnd6 SHARED ${libcsnd6_SRCS})
     target_link_libraries(libcsnd6 ${libcsnd6_LIBS})
+    # users of this lib will need this dir included
+    target_include_directories(libcsnd6 INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
     set_target_properties(libcsnd6 PROPERTIES
-        INTERFACE_LINK_LIBRARIES ""
         SOVERSION ${APIVERSION}
         OUTPUT_NAME csnd6
         RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR}
@@ -43,12 +46,12 @@ if(BUILD_CXX_INTERFACE)
         )
 
    if(APPLE)
-    add_compiler_flags("-std=c++11" TARGETS libcsnd6)
+    target_compile_options(libcsnd6 PRIVATE "-std=c++11")
    endif()
 
 
     if(${libcsnd6_CFLAGS})
-        add_compiler_flags(${libcsnd6_CFLAGS} TARGETS libcsnd6)
+        target_compile_options(libcsnd6 PRIVATE ${libcsnd6_CFLAGS})
     endif()
 
 
@@ -87,7 +90,6 @@ check_deps(BUILD_LUA_INTERFACE SWIG_FOUND BUILD_CXX_INTERFACE  LUAJIT_LIBRARY LU
 if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
     message(STATUS "SWIG_USE_FILE: " ${SWIG_USE_FILE})
     include(${SWIG_USE_FILE})
-    include_directories(${CMAKE_CURRENT_SOURCE_DIR})
     set(CMAKE_SWIG_FLAGS ${libcsound_CFLAGS})
     list(APPEND CMAKE_SWIG_FLAGS "-includeall" "-verbose")
     if(USE_DOUBLE)
@@ -95,13 +97,8 @@ if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
     endif(USE_DOUBLE)
     set(CMAKE_SWIG_OUTDIR ${BUILD_LIB_DIR})
     if(BUILD_PYTHON_INTERFACE)
-        INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
         if(WIN32)
-          if(NOT MSVC)
             set(swigpython_LIBS ${CSOUNDLIB} ${LIBSNDFILE_LIBRARY} ${LIBSNDFILE_SUPPORT_LIBS} ${PYTHON_LIBRARY} libcsnd6)
-          else()
-            set(swigpython_LIBS ${CSOUNDLIB} ${LIBSNDFILE_LIBRARY} ${PYTHON_LIBRARY} libcsnd6)
-          endif()
         else()
             # Note: Do not link to PYTHON_LIBRARY so that it can be loaded in any python
             set(swigpython_LIBS ${CSOUNDLIB} ${LIBSNDFILE_LIBRARY} libcsnd6)
@@ -114,6 +111,7 @@ if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
                                         CppSound.hpp filebuilding.h Soundfile.hpp)
 		swig_add_module(csnd6 python python_interface.i)
         swig_link_libraries(csnd6 ${swigpython_LIBS})
+        target_include_directories(${SWIG_MODULE_csnd6_REAL_NAME} PRIVATE ${PYTHON_INCLUDE_PATH})
         set_target_properties(${SWIG_MODULE_csnd6_REAL_NAME} PROPERTIES
             RUNTIME_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
             LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR}
@@ -136,18 +134,12 @@ if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
     if(BUILD_JAVA_INTERFACE)
         # The java package needs this unset or it will litter us with .java files
         unset(CMAKE_SWIG_OUTDIR)
-        INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS})
 
        message(STATUS "JNI INCLUDE set to ${JNI_INCLUDE_DIRS}.")
 
       	if(WIN32)
-          if(NOT MSVC)
              set(swigjava_LIBS ${JNI_LIBRARIES} ${CSOUNDLIB}
                ${LIBSNDFILE_LIBRARY} ${LIBSNDFILE_SUPPORT_LIBS} libcsnd6)
-          else()
-             set(swigjava_LIBS ${JNI_LIBRARIES} ${CSOUNDLIB}
-               ${LIBSNDFILE_LIBRARY} libcsnd6)
-          endif()
         elseif(APPLE)
              set(swigjava_LIBS  ${JAVA_VM_LIBRARY} ${CSOUNDLIB}
 	             ${LIBSNDFILE_LIBRARY} libcsnd6)
@@ -165,6 +157,7 @@ if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
 
         SWIG_ADD_MODULE(_jcsound6 java java_interface.i)
         SWIG_LINK_LIBRARIES(_jcsound6 ${swigjava_LIBS})
+        target_include_directories(${SWIG_MODULE__jcsound6_REAL_NAME} PRIVATE ${JNI_INCLUDE_DIRS})
 
         ADD_CUSTOM_COMMAND(TARGET _jcsound6
             POST_BUILD
@@ -201,7 +194,7 @@ if(BUILD_PYTHON_INTERFACE OR BUILD_JAVA_INTERFACE OR BUILD_LUA_INTERFACE)
         SWIG_ADD_MODULE(luaCsnd6 lua lua_interface.i)
         SWIG_LINK_LIBRARIES(luaCsnd6 ${swiglua_LIBS})
 
-        include_directories(${LUA_H_PATH})
+        target_include_directories(${SWIG_MODULE_luaCsnd6_REAL_NAME} PRIVATE ${LUA_H_PATH})
 
       	if(APPLE)
             set_target_properties(${SWIG_MODULE_luaCsnd6_REAL_NAME} PROPERTIES
diff --git a/interfaces/CppSound.cpp b/interfaces/CppSound.cpp
index 802d4af..7168a36 100644
--- a/interfaces/CppSound.cpp
+++ b/interfaces/CppSound.cpp
@@ -54,7 +54,7 @@ int CppSound::compile(int argc, const char **argv_)
   // Changed to use only internally stored Csound orchestra and score.
   returnValue = csoundCompileOrc(csound, getOrchestra().c_str());
   returnValue = csoundReadScore(csound, getScore().c_str());
-  for (int i = 0; i < argv.size(); ++i) {
+  for (int i = 0; (size_t) i < argv.size(); ++i) {
       Message("arg %3d: %s\n", i, argv[i]);
       csoundSetOption(csound, argv[i]);
   }
diff --git a/interfaces/CsoundFile.cpp b/interfaces/CsoundFile.cpp
index 3c7f1d5..c6d5c92 100644
--- a/interfaces/CsoundFile.cpp
+++ b/interfaces/CsoundFile.cpp
@@ -66,7 +66,7 @@ void PUBLIC scatterArgs(const std::string line,
                         std::vector<std::string> &args, std::vector<char *> &argv)
 {
   args.clear();
-  for (int i = 0; i < argv.size(); ++i) {
+  for (int i = 0; (size_t) i < argv.size(); ++i) {
       char *arg = argv[i];
       if (arg) {
           free(arg);
diff --git a/interfaces/csPerfThread.cpp b/interfaces/csPerfThread.cpp
index 417dbce..bcc4c1f 100644
--- a/interfaces/csPerfThread.cpp
+++ b/interfaces/csPerfThread.cpp
@@ -261,7 +261,8 @@ class CsPerfThreadMsg_Stop : public CsoundPerformanceThreadMessage {
     CsPerfThreadMsg_Stop(CsoundPerformanceThread *pt)
     : CsoundPerformanceThreadMessage(pt)
     {
-      CsoundPerformanceThreadMessage::QueueMessage(new CsPerfThreadMsg_StopRecord(pt));
+      CsoundPerformanceThreadMessage::QueueMessage(
+                                         new CsPerfThreadMsg_StopRecord(pt));
     }
     int run()
     {
@@ -420,6 +421,7 @@ int CsoundPerformanceThread::Perform()
         // if error or end of score, return now
         if (retval)
           goto endOfPerf;
+        // fprintf(stderr, "Error or end of score, returning now.");
         // if paused, wait until a new message is received, then loop back
         if (!paused)
           break;
diff --git a/interfaces/ctcsound.py b/interfaces/ctcsound.py
index b8c86f9..7dcafda 100644
--- a/interfaces/ctcsound.py
+++ b/interfaces/ctcsound.py
@@ -182,8 +182,10 @@ libcsound.csoundParseOrc.restype = c_void_p
 libcsound.csoundParseOrc.argtypes = [c_void_p, c_char_p]
 
 libcsound.csoundCompileTree.argtypes = [c_void_p, c_void_p]
+libcsound.csoundCompileTreeAsync.argtypes = [c_void_p, c_void_p]
 libcsound.csoundDeleteTree.argtypes = [c_void_p, c_void_p]
 libcsound.csoundCompileOrc.argtypes = [c_void_p, c_char_p]
+libcsound.csoundCompileOrcAsync.argtypes = [c_void_p, c_char_p]
 
 libcsound.csoundEvalCode.restype = MYFLT
 libcsound.csoundEvalCode.argtypes = [c_void_p, c_char_p]
@@ -201,6 +203,12 @@ libcsound.csoundStop.argtypes = [c_void_p]
 libcsound.csoundCleanup.argtypes = [c_void_p]
 libcsound.csoundReset.argtypes = [c_void_p]
 
+libcsound.csoundUDPServerStart.argtypes = [c_void_p, c_uint]
+libcsound.csoundUDPServerStatus.argtypes = [c_void_p]
+libcsound.csoundUDPServerClose.argtypes = [c_void_p]
+libcsound.csoundUDPConsole.argtypes = [c_void_p, c_char_p, c_uint, c_uint]
+libcsound.csoundStopUDPConsole.argtypes = [c_void_p]
+
 libcsound.csoundGetSr.restype = MYFLT
 libcsound.csoundGetSr.argtypes = [c_void_p]
 libcsound.csoundGetKr.restype = MYFLT
@@ -297,6 +305,7 @@ MIDIDEVLISTFUNC = CFUNCTYPE(c_int, c_void_p, POINTER(CsoundMidiDevice), c_int)
 libcsound.csoundSetMIDIDeviceListCallback.argtypes = [c_void_p, MIDIDEVLISTFUNC]
 
 libcsound.csoundReadScore.argtypes = [c_void_p, c_char_p]
+libcsound.csoundReadScoreAsync.argtypes = [c_void_p, c_char_p]
 libcsound.csoundGetScoreTime.restype = c_double
 libcsound.csoundGetScoreTime.argtypes = [c_void_p]
 libcsound.csoundIsScorePending.argtypes = [c_void_p]
@@ -341,8 +350,11 @@ libcsound.csoundSetOutputChannelCallback.argtypes = [c_void_p, CHANNELFUNC]
 libcsound.csoundSetPvsChannel.argtypes = [c_void_p, POINTER(PvsdatExt), c_char_p]
 libcsound.csoundGetPvsChannel.argtypes = [c_void_p, POINTER(PvsdatExt), c_char_p]
 libcsound.csoundScoreEvent.argtypes = [c_void_p, c_char, POINTER(MYFLT), c_long]
+libcsound.csoundScoreEventAsync.argtypes = [c_void_p, c_char, POINTER(MYFLT), c_long]
 libcsound.csoundScoreEventAbsolute.argtypes = [c_void_p, c_char, POINTER(MYFLT), c_long, c_double]
+libcsound.csoundScoreEventAbsoluteAsync.argtypes = [c_void_p, c_char, POINTER(MYFLT), c_long, c_double]
 libcsound.csoundInputMessage.argtypes = [c_void_p, c_char_p]
+libcsound.csoundInputMessageAsync.argtypes = [c_void_p, c_char_p]
 libcsound.csoundKillInstance.argtypes = [c_void_p, MYFLT, c_char_p, c_int, c_int]
 SENSEFUNC = CFUNCTYPE(None, c_void_p, py_object)
 libcsound.csoundRegisterSenseEventCallback.argtypes = [c_void_p, SENSEFUNC, py_object]
@@ -356,7 +368,9 @@ libcsound.csoundTableGet.restype = MYFLT
 libcsound.csoundTableGet.argtypes = [c_void_p, c_int, c_int]
 libcsound.csoundTableSet.argtypes = [c_void_p, c_int, c_int, MYFLT]
 libcsound.csoundTableCopyOut.argtypes = [c_void_p, c_int, POINTER(MYFLT)]
+libcsound.csoundTableCopyOutAsync.argtypes = [c_void_p, c_int, POINTER(MYFLT)]
 libcsound.csoundTableCopyIn.argtypes = [c_void_p, c_int, POINTER(MYFLT)]
+libcsound.csoundTableCopyInAsync.argtypes = [c_void_p, c_int, POINTER(MYFLT)]
 libcsound.csoundGetTable.argtypes = [c_void_p, POINTER(POINTER(MYFLT)), c_int]
 libcsound.csoundGetTableArgs.argtypes = [c_void_p, POINTER(POINTER(MYFLT)), c_int]
 libcsound.csoundIsNamedGEN.argtypes = [c_void_p, c_int]
@@ -682,6 +696,10 @@ class Csound:
         """
         return libcsound.csoundCompileTree(self.cs, tree)
     
+    def compileTreeAsync(self, tree):
+        """Asynchronous version of compileTree()."""
+        return libcsound.csoundCompileTreeAsync(self.cs, tree)
+    
     def deleteTree(self, tree):
         """Free the resources associated with the TREE tree.
         
@@ -701,6 +719,15 @@ class Csound:
         """
         return libcsound.csoundCompileOrc(self.cs, cstring(orc))
     
+    def compileOrcAsync(self, orc):
+        """Async version of compileOrc().
+        
+        The code is parsed and compiled, then placed on a queue for
+        asynchronous merge into the running engine, and evaluation.
+        The function returns following parsing and compilation.
+        """
+        return libcsound.csoundCompileOrcAsync(self.cs, cstring(orc))
+    
     def evalCode(self, code):
         """Parse and compile an orchestra given on an string.
         
@@ -845,7 +872,7 @@ class Csound:
         Note that it is not guaranteed that perform() has already stopped
         when this function returns.
         """
-        return libcsound.csoundStop(self.cs)
+        libcsound.csoundStop(self.cs)
     
     def cleanup(self):
         """Print information and closes audio and MIDI devices.
@@ -863,8 +890,46 @@ class Csound:
         Enable external software to run successive Csound performances
         without reloading Csound. Implies cleanup(), unless already called.
         """
-        return libcsound.csoundReset(self.cs)
-    
+        libcsound.csoundReset(self.cs)
+
+    #UDP server
+    def UDPServerStart(self, port):
+        """Starts the UDP server on a supplied port number.
+        
+        Returns CSOUND_SUCCESS if server has been started successfully,
+        otherwise, CSOUND_ERROR.
+        """
+        return libcsound.csoundUDPServerStart(self.cs, c_uint(port))
+
+    def UDPServerStatus(self):
+        """Returns the port number on which the server is running.
+        
+        If the server is not running, CSOUND_ERROR is returned.
+        """
+        return libcsound.csoundUDPServerStatus(self.cs)
+
+    def UDPServerClose(self):
+        """Closes the UDP server.
+        
+        Returns CSOUND_SUCCESS if the running server was successfully closed,
+        CSOUND_ERROR otherwise.
+        """
+        return libcsound.csoundUDPServerClose(self.cs)
+
+    def UDPConsole(self, addr, port, mirror):
+        """Turns on the transmission of console messages to UDP on addr:port.
+        
+        If mirror is one, the messages will continue to be sent to the usual
+        destination (see setMessaggeCallback()) as well as to UDP.
+        Returns CSOUND_SUCCESS or CSOUND_ERROR if the UDP transmission
+        could not be set up.
+        """
+        return libcsound.csoundUDPConsole(self.cs, cstring(addr), c_uint(port), c_uint(mirror))
+
+    def stopUDPConsole(self):
+        """Stop transmitting console messages via UDP."""
+        libcsound.csoundStopUDPConsole(self.cs)
+
     #Attributes
     def sr(self):
         """Return the number of audio sample frames per second."""
@@ -1307,6 +1372,10 @@ class Csound:
         """
         return libcsound.csoundReadScore(self.cs, cstring(sco))
     
+    def readScoreAsync(self, sco):
+        """Asynchronous version of readScore()."""
+        libcsound.csoundReadScoreAsync(self.cs, cstring(sco))
+    
     def scoreTime(self):
         """Returns the current score time.
         
@@ -1689,6 +1758,13 @@ class Csound:
         numFields = c_long(p.size)
         return libcsound.csoundScoreEvent(self.cs, cchar(type_), ptr, numFields)
     
+    def scoreEventAsync(self, type_, pFields):
+        """Asynchronous version of scoreEvent()."""
+        p = np.array(pFields).astype(MYFLT)
+        ptr = p.ctypes.data_as(POINTER(MYFLT))
+        numFields = c_long(p.size)
+        libcsound.csoundScoreEventAsync(self.cs, cchar(type_), ptr, numFields)
+    
     def scoreEventAbsolute(self, type_, pFields, timeOffset):
         """Like scoreEvent(), this function inserts a score event.
         
@@ -1700,6 +1776,13 @@ class Csound:
         numFields = c_long(p.size)
         return libcsound.csoundScoreEventAbsolute(self.cs, cchar(type_), ptr, numFields, c_double(timeOffset))
     
+    def scoreEventAbsoluteAsync(self, type_, pFields, timeOffset):
+        """Asynchronous version of scoreEventAbsolute()."""
+        p = np.array(pFields).astype(MYFLT)
+        ptr = p.ctypes.data_as(POINTER(MYFLT))
+        numFields = c_long(p.size)
+        libcsound.csoundScoreEventAbsoluteAsync(self.cs, cchar(type_), ptr, numFields, c_double(timeOffset))
+    
     def inputMessage(self, message):
         """Input a NULL-terminated string (as if from a console).
         
@@ -1707,6 +1790,10 @@ class Csound:
         """
         libcsound.csoundInputMessage(self.cs, cstring(message))
     
+    def inputMessageAsync(self, message):
+        """Asynchronous version of inputMessage()."""
+        libcsound.csoundInputMessageAsync(self.cs, cstring(message))
+    
     def killInstance(self, instr, instrName, mode, allowRelease):
         """Kills off one or more running instances of an instrument.
         
@@ -1826,6 +1913,11 @@ class Csound:
         ptr = dest.ctypes.data_as(POINTER(MYFLT))
         libcsound.csoundTableCopyOut(self.cs, table, ptr)
     
+    def tableCopyOutAsync(self, table, dest):
+        """Asynchronous version of tableCopyOut()."""
+        ptr = dest.ctypes.data_as(POINTER(MYFLT))
+        libcsound.csoundTableCopyOutAsync(self.cs, table, ptr)
+    
     def tableCopyIn(self, table, src):
         """Copy the contents of an ndarray src into a given function table.
         
@@ -1835,6 +1927,11 @@ class Csound:
         ptr = src.ctypes.data_as(POINTER(MYFLT))
         libcsound.csoundTableCopyIn(self.cs, table, ptr)
     
+    def tableCopyInAsync(self, table, src):
+        """Asynchronous version of tableCopyIn()."""
+        ptr = src.ctypes.data_as(POINTER(MYFLT))
+        libcsound.csoundTableCopyInAsync(self.cs, table, ptr)
+    
     def table(self, tableNum):
         """Return a pointer to function table 'tableNum' as an ndarray.
         
@@ -2114,6 +2211,10 @@ class Csound:
     def waitBarrier(self, barrier):
         """Wait on the thread barrier."""
         return libcsound.csoundWaitBarrier(barrier)
+
+    #def createCondVar(self):
+    #def condWait(self, condVar, mutex):
+    #def condSignal(self, condVar):
     
     def sleep(self, milliseconds):
         """Wait for at least the specified number of milliseconds.
@@ -2427,7 +2528,7 @@ class Csound:
     
     def closeLibrary(self, library):
         """Platform-independent function to unload a shared library."""
-        libcsound.csoundCloseLibrary(library)
+        return libcsound.csoundCloseLibrary(library)
     
     def getLibrarySymbol(self, library, symbolName):
         """Platform-independent function to get a symbol address in a shared library."""
diff --git a/longline.c b/longline.c
index 138fd8f..35ccc96 100644
--- a/longline.c
+++ b/longline.c
@@ -19,7 +19,7 @@ void process(char *name, int width)
       count++;
       p = strchr(buffer, '\n');
       if (p==NULL || (p-buffer) > width) {
-        printf("File=%s Line=%d:\n%s\n", name, count, buffer);
+        printf("File=%s Line=%d long\n%s\n", name, count, buffer);
       }
       p = strchr(buffer, '\t');
       if (p!=NULL)
diff --git a/mingw64/build-mkg.sh b/mingw64/build-installer.sh
similarity index 98%
rename from mingw64/build-mkg.sh
rename to mingw64/build-installer.sh
index 0205086..b9c383c 100644
--- a/mingw64/build-mkg.sh
+++ b/mingw64/build-installer.sh
@@ -78,7 +78,7 @@ if [ $? -ne 0 ]; then
     echo "Failed to uninstall Csound x64, but continuing."
 fi
 echo "Installing Csound x64..."
-./Setup_Csound6_x64_6.09.1-vst.exe /SILENT
+./Setup_Csound6_x64_6.09.2beta2-vst.exe /SILENT
 if [ $? -ne 0 ]; then
     echo "Failed to install Csound x64."
     exit
diff --git a/msvc/Custom-vs.cmake b/msvc/Custom-vs.cmake
index 0b79613..ce4925b 100644
--- a/msvc/Custom-vs.cmake
+++ b/msvc/Custom-vs.cmake
@@ -1,19 +1,6 @@
 # CUSTOM PROPERTIES TO SET
 # GLOBAL
 
-find_package(FLTK REQUIRED)
-find_package(Java)
-find_package(JNI)
-find_package(PythonLibs)
-find_package(SWIG REQUIRED)
-
-# TODO: Get this to work.
-# find_package(VSTSDK2X)
-
-set(CMAKE_VERBOSE_MAKEFILE ON)
-# set(Eigen3_DIR "D:\\msys64\\home\\restore\\vcpkg\\packages\\eigen3_x64-windows\\share\\eigen3")
-# find_package (Eigen3 3.3 REQUIRED NO_MODULE)
-
 # Csound build options for MSVC
 set(BUILD_BUCHLA_OPCODES ON)
 set(BUILD_CHUA_OPCODES ON)
@@ -42,7 +29,7 @@ set(BUILD_MULTI_CORE ON)
 set(BUILD_OPENCL_OPCODES OFF)
 set(BUILD_OSC_OPCODES ON)
 set(BUILD_P5GLOVE_OPCODES OFF)
-set(BUILD_PADSYNTH_OPCODES OFF)
+set(BUILD_PADSYNTH_OPCODES ON)
 set(BUILD_PD_CLASS ON)
 set(BUILD_PLATEREV_OPCODES ON)
 set(BUILD_PYTHON_INTERFACE ON)
@@ -52,14 +39,15 @@ set(BUILD_SCANSYN_OPCODES ON)
 set(BUILD_SELECT_OPCODE ON)
 set(BUILD_SERIAL_OPCODES ON)
 set(BUILD_STACK_OPCODES ON)
-set(BUILD_STATIC_LIBRARY OFF)
+set(BUILD_STATIC_LIBRARY ON)
 set(BUILD_STK_OPCODES ON)
 set(BUILD_TESTS ON)
 set(BUILD_UTILITIES ON)
 set(BUILD_VIRTUAL_KEYBOARD ON)
 set(BUILD_WEBSOCKET_OPCODE ON)
 set(BUILD_WIIMOTE_OPCODES OFF)
-set(BUILD_WINDSOUND ON)
+set(BUILD_WINSOUND ON)
+set(BUILD_VST4CS_OPCODES ON)
 
 # Csound use features
 set(USE_ALSA 0) # N/A
@@ -71,7 +59,7 @@ set(USE_COREMIDI 0) # N/A
 set(USE_DOUBLE 1)
 set(USE_FLTK 1)
 set(USE_GETTEXT	0)
-set(USE_IPMIDI 0)
+set(USE_IPMIDI 1)
 set(USE_JACK 0) # N/A
 set(USE_LIB64 1)
 set(USE_LRINT 1)
@@ -82,9 +70,10 @@ set(USE_SYSTEM_PORTSMF 1)
 
 # Misc build options
 set(HAVE_BIG_ENDIAN 0)
+set(CMAKE_VERBOSE_MAKEFILE ON)
 set(CMAKE_16BIT_TYPE "unsigned short")
 set(FAIL_MISSING OFF) # Enable when packaging
-set(CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}\\msvc\\deps;${PROJECT_SOURCE_DIR}\\msvc\\deps\\swigwin-3.0.12;${PROJECT_SOURCE_DIR}\\msvc\\deps\\win_flex_bison;${PROJECT_SOURCE_DIR}\\msvc\\deps\\fluidsynthdeps")
+list(APPEND CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}\\msvc\\deps;${PROJECT_SOURCE_DIR}\\msvc\\deps\\swigwin-3.0.12;${PROJECT_SOURCE_DIR}\\msvc\\deps\\win_flex_bison;${PROJECT_SOURCE_DIR}\\msvc\\deps\\fluidsynthdeps")
 set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}\\msvc\\deps\\include)
 
 # Explicit settings for locally downloaded dependencies
@@ -100,8 +89,6 @@ set(BISON_EXECUTABLE "${PROJECT_SOURCE_DIR}\\msvc\\deps\\win_flex_bison\\win_bis
 # - C4047 levels of indirection difference (int and void*)
 # - C4090 different const qualifiers
 # - C4477 format string type differences
-set(CMAKE_C_FLAGS "${CMAKE_CX_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477 /wd4251")
 
-find_path(SYSTEM_INCLUDE_DIR zlib.h)
-include_directories(${SYSTEM_INCLUDE_DIR})
diff --git a/msvc/README.md b/msvc/README.md
index 3655a00..ca90354 100644
--- a/msvc/README.md
+++ b/msvc/README.md
@@ -1,12 +1,14 @@
 # Building Csound with MSVC on Windows
-The following instructions are required to get Csound building and running using Microsoft Visual Studio 2017
 
-Csound contains many dependencies, some of which do not work with the MSVC build yet. This page will document the current build status and will be updated accordingly as the work progresses. 
+Please note, the following applies not only to the online AppVeyor build of Csound, but also to local builds of Csound using Microsoft Visual Studio (MSVS). The build works either with MSVS 2015, or with MSVS 2017.
+
+Csound contains many dependencies, some of which do not work with the MSVS build yet. This page will document the current build status and will be updated accordingly as the work progresses. 
 
 The goal is to have as much of Csound build in a native Windows manner as possible which will ease maintainence of the Windows port.
 
 ## Pre-requisites
-1. Visual Studio 2017 x64 Community Edition (free) or greater 
+
+1. MSVS 2017=5 x64 Community Edition (free) or greater 
     * Needs to have C++ tools installed, which isn't the detault
     * https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15
     * In the installer, in the "Individual components" section. You should install "Python 2 64 bit", "VC++ 2015.3 toolset", "VC++ 2017 toolset", "Windows Universal CRT SDK", "Windows XP Support for C++", "Windows 10 SDK", "Windows 8.1 SDK" depending on the type of build you wish to create.
@@ -18,6 +20,7 @@ The goal is to have as much of Csound build in a native Windows manner as possib
     * Ensure Git is available on the Windows path
 
 ### Optional
+
 Some other dependencies may need to be installed to enable all features within Csound or if building the installer (full) version of Csound. Most of these are system wide tools that a development machine might have installed anyway.
 
 1. Python 2.7
@@ -27,9 +30,9 @@ Some other dependencies may need to be installed to enable all features within C
     * Note: CMake (3.8.0) doesn't seem to find the python embedded in Anaconda, only the offical version
 2. Java JDK
     * http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
-3. NSIS Installer
+3. Inno Setup Installer
     * Only required if building the Csound Installer
-    * http://nsis.sourceforge.net/Download
+    * http://www.jrsoftware.org/isdl.php
 
 ## VCPKG 
 The package manager used for Windows is VCPKG. It is still in beta/preview so it is not as integrated into Visual Studio as would be desired. It is advised to install it before downloading dependencies as the folder can grow to a large size (gigabytes). This is due to the source and binaries being housed within this folder. It can also be used system wide rather than just Csound so it is worth setting up.
@@ -46,7 +49,33 @@ The official instructions are here: https://github.com/Microsoft/vcpkg. The loca
 4. Once this script has finished, the Visual Studio solution file should be produced and located in "Csound\msvc\csound-vs" folder.
 5. Open this solution file in Visual Studio and build as normal. Just build the "ALLBUILD" project to build everything.
 
-Alternatively, execute the "build.bat" to do all of the above. This will also build a Release version of Csound.
+Alternatively, execute a batch file to do all of the above. `build.bat` should build Csound (but not CsoundQt or the Csound installer) using MSVS 2017; `build2015.bat` should build using MSVS 2015.
+
+If you want to build CsoundQt in addition to Csound and then compile the Windows installer, you can adapt the following batch file, which emulates the complete AppVeyor build:
+
+```
+ at echo off
+echo Must call vcvars64.bat first!
+set CSOUND_HOME=D:\\msys64\\home\\restore\\csound\\
+set PYTHON=C:\Program_Files\Anaconda2\python.exe
+set APPVEYOR_BUILD_FOLDER=D:\\msys64\\home\\restore\\csound\\
+set VST_SDK_HOME=D:\\msys64\\mingw64\\include\\vstsdk2.4
+set VCREDIST_CRT_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CRT
+set VCREDIST_CXXAMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CXXAMP
+set VCREDIST_OPENMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.OpenMP
+set HDF5_HOME=C:\\Program Files\\HDF_Group\\HDF5\\1.8.19
+powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140_xp"
+rem powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140_xp"
+powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140_xp" -vstSdkHome "D:\\msys64\\mingw64\\include\\vstsdk2.4"
+cmake --build csound-vs --config Release
+call build_csoundqt.bat
+cd %APPVEYOR_BUILD_FOLDER%\\frontends\\nwjs
+call C:\Program_Files\nodejs\nodevars.bat
+call nw-gyp rebuild --target=0.23.5 --arch=x64 --msvs_version=2015
+cd %APPVEYOR_BUILD_FOLDER%\\msvc
+rem "C:\Program Files (x86)\Inno Setup 5\iscc.exe" /o. /dQtSdkBinDir="C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2015_64\\bin\\" /dVcpkgInstalledBinDir="D:\\msys64\\home\\restore\\vcpkg\\installed\\x64-windows\\bin\\"  "..\installer\windows\csound6_x64_appveyor.iss"
+"C:\Program Files (x86)\Inno Setup 5\iscc.exe" /o. /dQtSdkBinDir="C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2015_64\\bin\\" /dVcpkgInstalledBinDir="D:\\msys64\\home\\restore\\vcpkg\\installed\\x64-windows\\bin\\" /dInstallCsoundVst "..\installer\windows\csound6_x64_appveyor.iss"
+```
 
 ## Development workflow
 Once this project has been successfully generated as shown above, it does not require much further maintenance. To work on the Csound source, you can update the source directory via git pull and just rebuild the solution file in Visual Studio. There is no need to re-run the CMake command or script. Visual Studio detects changes within the project and will re-run the cmake command internally. 
@@ -73,29 +102,13 @@ You can pass in default arguments to the csound instance by right-clicking on "c
 Using the build configuration "Release" or "Release with debug info" will allow profilling of the project. By going to "Analyze" and "Performance Profiler", you will get a choice of profilling tools (cpu usage, memory etc).
 
 ## Work in progress / work to do
-1. [Partial] FLTK not being fully found. Everything is found except fluid_executable
-    * Is in VCPKG but missing fluid executable. Have a ticket open which will resolve this
-2. [Partial] Atomic builtins not being found, test program isn't working as expected but should
+ - [Partial] Atomic builtins not being found, test program isn't working as expected but should
    * Fixed the cmake test but csound source assumes linux based atomics, needs more work
-3. STK, source downloaded manually and built
-4. LUAJIT, source downloaded manually and built using VS console
-5. PureData, source download and extract
-6. GetText, is in vcpkg but not being detected by cmake. (missing:  GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE)
-7. Eigen, is in vcpkg but include path isn't being found
-8. FluidSynth, hard to build. Is there a windows binary download?
-9. WII opcodes, download source and build
-10. P5Glove, no idea about this
-11. Faust opcodes, need to investigate
-12. HDF5, need to investigate
-13. Websockets, need to investigate
-14. Csound AC 
-15. Csound~, needs max sdk
-16. Unit testing for build tests. CUnit needs SVN checkout and build. Maybe switch to another up to date framework? Google test?
-17. Doxygen for documentation
-18. Installer needs work? Not tried
-
-## Investigate
-1. More usage of CMake instead of powershell scripts
-    * CMake can pull down git repos and build. Can be triggered if find_package fails
-    * Use of custom Find*.cmake modules to find dependencies, leads to cleaner cmake files
-2. Packaging build output, using NSIS or converting to something else
\ No newline at end of file
+ - PureData, source download and extract
+ - Faust opcodes, need to investigate
+ - HDF5, need to investigate
+ - Websockets, need to investigate
+ - Csound~, needs max sdk
+ - Unit testing for build tests. CUnit needs SVN checkout and build. Maybe switch to another up to date framework? Google test?
+ - Doxygen for documentation
+ - Installer, currently being re-written
diff --git a/msvc/build-csoundqt.bat b/msvc/build-csoundqt.bat
new file mode 100644
index 0000000..f56e33e
--- /dev/null
+++ b/msvc/build-csoundqt.bat
@@ -0,0 +1,36 @@
+cd staging
+git clone -b master --depth=1 --single-branch "https://github.com/CsoundQt/CsoundQt.git"
+cd CsoundQt
+dir
+qmake.exe qcs.pro ^
+    CONFIG+=html_webengine ^
+    CONFIG+=thread ^
+    CONFIG+=perfThread_build ^
+    CONFIG+=csound6 ^
+    CONFIG+=build64 ^
+    CONFIG+=QCS_QT59 ^
+    QT+=xml ^
+    DEFINES+="USE_DOUBLE=1" ^
+    DEFINES+="USE_QT_GT_58=1" ^
+    CSOUND_API_INCLUDE_DIR="%APPVEYOR_BUILD_FOLDER%\\include" ^
+    CSOUND_INTERFACES_INCLUDE_DIR="%APPVEYOR_BUILD_FOLDER%\\interfaces" ^
+    CSOUND_LIBRARY_DIR="%APPVEYOR_BUILD_FOLDER%\\msvc\\csound-vs\\RelWithDebInfo" ^
+    DEFAULT_CSOUND_LIBS=csound64.lib ^
+    CSOUND_LIBRARY=csound64.lib ^
+    LCSOUND=%APPVEYOR_BUILD_FOLDER%\\msvc\\csound-vs\\RelWithDebInfo\\csound64.lib ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\libsndfile.lib" ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\flac.lib" ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\ogg.lib" ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\vorbis.lib" ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\vorbisenc.lib" ^
+    LIBS+="%VCPKGDir%\\installed\\x64-windows-static\\lib\\vorbisfile.lib" ^
+    LIBS+="%APPVEYOR_BUILD_FOLDER%\\msvc\\csound-vs\\RelWithDebInfo\\csound64.lib" ^
+    LIBS+="Ole32.lib" ^
+    -after ^
+    CSOUND_INTERFACES_INCLUDE_DIR+="%~dp0deps\\include" ^
+    CSOUND_INTERFACES_INCLUDE_DIR+="%APPVEYOR_BUILD_FOLDER%\\deps\\include" ^
+    CSOUND_INTERFACES_INCLUDE_DIR+="%VCPKGDir%\\installed\\x64-windows-static\\include" ^
+    INCLUDEPATH+="%VCPKGDir%\\installed\\x64-windows-static\\include"
+nmake.exe /A
+move "bin\\CsoundQt*.*" "..\\..\\csound-vs\\RelWithDebInfo\\"
+cd ..\..
diff --git a/msvc/build-installer.bat b/msvc/build-installer.bat
new file mode 100644
index 0000000..14dc259
--- /dev/null
+++ b/msvc/build-installer.bat
@@ -0,0 +1,44 @@
+ at echo off
+echo Must call vcvars64.bat first!
+cls
+set BUILD_DEPENDENCIES=0
+set BUILD_CSOUND=0
+set BUILD_CSOUND_NODE=0
+set BUILD_CSOUNDQT=0
+set BUILD_INSTALLER=1
+
+set PATH=C:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin;%PATH%
+set ABLETON_LINK_HOME=D:\\msys64\\home\\restore\\csound\\msvc\\deps\\link\\
+set CSOUND_HOME=D:\\msys64\\home\\restore\\csound\\
+set PYTHON=C:\Program_Files\Anaconda2\python.exe
+set APPVEYOR_BUILD_FOLDER=D:\\msys64\\home\\restore\\csound\\
+set CSOUND_VERSION=6.10.0-rc2
+set VCREDIST_CRT_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CRT
+set VCREDIST_CXXAMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CXXAMP
+set VCREDIST_OPENMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.OpenMP
+set HDF5_HOME=C:\\Program Files\\HDF_Group\\HDF5\\1.8.19
+set VST_SDK2_HOME=D:/msys64/home/restore/csound/msvc/deps/VST_SDK/VST2_SDK
+
+if %BUILD_DEPENDENCIES%==1 (
+powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140"
+)
+
+if %BUILD_CSOUND%==1 (
+powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140" -vstSdkHome "%VST_SDK2_HOME%"
+cmake --build csound-vs --config RelWithDebInfo
+)
+
+if %BUILD_CSOUNDQT%==1 (
+call build-csoundqt.bat
+)
+
+if %BUILD_CSOUND_NODE%==1 (
+cd %APPVEYOR_BUILD_FOLDER%\\frontends\\nwjs
+call C:\Program_Files\nodejs\nodevars.bat
+call nw-gyp rebuild --target=0.23.5 --arch=x64 --msvs_version=2015
+)
+
+if %BUILD_INSTALLER%==1 (
+cd %APPVEYOR_BUILD_FOLDER%\\msvc
+"C:\Program Files (x86)\Inno Setup 5\iscc.exe" /o. /dQtSdkBinDir="C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2015_64\\bin\\" /dVcpkgInstalledBinDir="D:\\msys64\\home\\restore\\vcpkg\\installed\\x64-windows\\bin\\" /dInstallCsoundVst "..\installer\windows\csound6_x64_appveyor.iss"
+)
diff --git a/msvc/build-vst.bat b/msvc/build-vst.bat
new file mode 100644
index 0000000..18dd11d
--- /dev/null
+++ b/msvc/build-vst.bat
@@ -0,0 +1,17 @@
+ at echo off
+echo In essence, this script locally emulates the AppVeyor build of Csound.
+echo The script produces a local build of Csound using Microsoft Visual
+echo Studio, and including the VST features that cannot be hosted in GitHub
+echo releases. You must adjust the environment variables below to match your
+echo locations, and you must call vcvars64.bat before running this script!
+set CSOUND_HOME=D:\\msys64\\home\\restore\\csound\\
+set PYTHON=C:\Program_Files\Anaconda2\python.exe
+set APPVEYOR_BUILD_FOLDER=D:\\msys64\\home\\restore\\csound\\
+set VST_SDK_HOME=D:\\msys64\\mingw64\\include\\vstsdk2.4
+set VCREDIST_CRT_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CRT
+set VCREDIST_CXXAMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.CXXAMP
+set VCREDIST_OPENMP_DIR=%VCINSTALLDIR%\\Redist\\x64\\Microsoft.VC140.OpenMP
+set HDF5_HOME=C:\\Program Files\\HDF_Group\\HDF5\\1.8.19
+set ABLETON_LINK_HOME="D:\\msys64\\home\\restore\\csound\\msvc\\deps\\link"
+cd %APPVEYOR_BUILD_FOLDER%\\msvc
+"C:\Program Files (x86)\Inno Setup 5\iscc.exe" /o. /dQtSdkBinDir="C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2015_64\\bin\\" /dVcpkgInstalledBinDir="D:\\msys64\\home\\restore\\vcpkg\\installed\\x64-windows\\bin\\" /dInstallCsoundVst "..\installer\windows\csound6_x64_appveyor.iss"
diff --git a/msvc/build.bat b/msvc/build.bat
index c0a9029..e8b97ed 100644
--- a/msvc/build.bat
+++ b/msvc/build.bat
@@ -1,4 +1,4 @@
 @echo off
-powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1
-powershell -ExecutionPolicy ByPass -File generateProject.ps1
-cmake --build csound-vs --config Release
+powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 -vsGenerator "Visual Studio 15 2017 Win64" -vsToolset "v141"
+powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "Visual Studio 15 2017 Win64" -vsToolset "v141"
+cmake --build csound-vs --config RelWithDebInfo
diff --git a/msvc/build2015.bat b/msvc/build2015.bat
new file mode 100644
index 0000000..a1629c2
--- /dev/null
+++ b/msvc/build2015.bat
@@ -0,0 +1,4 @@
+ at echo off
+powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140_xp"
+powershell -ExecutionPolicy ByPass -File generateProject.ps1 -vsGenerator "Visual Studio 14 2015 Win64" -vsToolset "v140_xp"
+cmake --build csound-vs --config RelWithDebInfo
diff --git a/msvc/downloadDependencies.bat b/msvc/downloadDependencies.bat
index 9c904e1..844c97d 100644
--- a/msvc/downloadDependencies.bat
+++ b/msvc/downloadDependencies.bat
@@ -1,2 +1,2 @@
 @echo off
-powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1
\ No newline at end of file
+powershell -ExecutionPolicy ByPass -File downloadDependencies.ps1 %1 %2
diff --git a/msvc/downloadDependencies.ps1 b/msvc/downloadDependencies.ps1
index 5923f20..0964856 100644
--- a/msvc/downloadDependencies.ps1
+++ b/msvc/downloadDependencies.ps1
@@ -1,7 +1,19 @@
+param
+(
+    [string]$vsGenerator="Visual Studio 15 2017 Win64",
+    [string]$vsToolset="v141"
+)
+
 echo "Downloading Csound dependencies..."
+echo "vsGenerator: $vsGenerator"
+echo "vsToolset:   $vsToolset"
 
 $startTime = (Get-Date).TimeOfDay
 
+# Add different protocols to get download working for HDF5 site
+# ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
+[System.Net.ServicePointManager]::SecurityProtocol =  [System.Net.SecurityProtocolType]::Tls12;
+
 $webclient = New-Object System.Net.WebClient
 $currentDir = Split-Path $MyInvocation.MyCommand.Path
 $cacheDir = $currentDir + "\cache\"
@@ -10,15 +22,15 @@ $stageDir = $currentDir + "\staging\"
 $depsBinDir = $depsDir + "bin\"
 $depsLibDir = $depsDir + "lib\"
 $depsIncDir = $depsDir + "include\"
+$csoundDir = $currentDir + "\.."
 $vcpkgDir = ""
-$vsGenerator = "Visual Studio 14 2015 Win64"
 
 # Metrics
 $vcpkgTiming = 0
 $buildTiming = 0
 $cmakeTiming = 0
 
-# Add to path to call premake or other tools
+# Add to path to call tools
 $env:Path += $depsDir
 
 # Find VCPKG from path if it already exists
@@ -32,15 +44,12 @@ if ($systemVCPKG)
     echo "vcpkg already installed on system, updating"
     $vcpkgDir = Split-Path -Parent $systemVCPKG
     cd $vcpkgDir
-
     # Update and rebuild vcpkg
     git pull
     bootstrap-vcpkg.bat
-
     # Remove any outdated packages (they will be installed again below)
     vcpkg remove --outdated --recurse
     vcpkg update # Not really functional it seems yet
-
     cd $currentDir
 }
 elseif (Test-Path "..\..\vcpkg")
@@ -50,76 +59,84 @@ elseif (Test-Path "..\..\vcpkg")
     $vcpkgDir = $(Get-Location)
     [Environment]::SetEnvironmentVariable("VCPKGDir", $env:vcpkgDir,
         [EnvironmentVariableTarget]::User)
-
     echo "vcpkg already installed locally, updating"
-
     # Update and rebuild vcpkg
     git pull
     bootstrap-vcpkg.bat
-
     # Remove any outdated packages (they will be installed again below)
     vcpkg remove --outdated --recurse
     vcpkg update
-
     cd $currentDir
 }
 else
 {
     cd ..\..
-    echo "vcpkg missing, downloading and installing"
-
+    echo "vcpkg missing, downloading and installing..."
     git clone --depth 1 http://github.com/Microsoft/vcpkg.git
     cd vcpkg
     $env:Path += ";" + $(Get-Location)
     $vcpkgDir = $(Get-Location)
     [Environment]::SetEnvironmentVariable("VCPKGDir", $env:vcpkgDir,
         [EnvironmentVariableTarget]::User)
-
     powershell -exec bypass scripts\bootstrap.ps1
     vcpkg integrate install
-
     cd $currentDir
 }
 
+# Generate VCPKG AlwaysAllowDownloads file if needed
+New-Item -type file $vcpkgDir\downloads\AlwaysAllowDownloads -errorAction SilentlyContinue | Out-Null
+
 # Download all vcpkg packages available
+echo "Downloading VC packages..."
 # Target can be arm-uwp, x64-uwp, x64-windows-static, x64-windows, x86-uwp, x86-windows-static, x86-windows
 $targetTriplet = "x64-windows"
-echo "Downloading VC packages..."
-
-#vcpkg --triplet $targetTriplet install curl eigen3 fltk libflac lua libogg libvorbis zlib
-vcpkg --triplet $targetTriplet install eigen3 fltk libflac libogg libvorbis zlib
-
+$targetTripletStatic = "x64-windows-static"
+#vcpkg --triplet $targetTriplet install eigen3 fltk zlib 
+#vcpkg --triplet $targetTripletStatic install libflac libogg libvorbis libsndfile
+vcpkg --triplet $targetTripletStatic install eigen3 fltk zlib libflac libogg libvorbis libsndfile
 $vcpkgTiming = (Get-Date).TimeOfDay
 
 # Comment for testing to avoid extracting if already done so
 rm -Path deps -Force -Recurse -ErrorAction SilentlyContinue
 mkdir cache -ErrorAction SilentlyContinue
 mkdir deps -ErrorAction SilentlyContinue
+mkdir $depsLibDir -ErrorAction SilentlyContinue
+mkdir $depsBinDir -ErrorAction SilentlyContinue
+mkdir $depsIncDir -ErrorAction SilentlyContinue
 mkdir staging -ErrorAction SilentlyContinue
 
-# Manual packages to download and install
+echo "Downloading and installing non-VCPKG packages..."
+
 # List of URIs to download and install
-$uriList="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27-w64.zip",
-"https://downloads.sourceforge.net/project/winflexbison/win_flex_bison-latest.zip",
+$uriList="https://downloads.sourceforge.net/project/winflexbison/win_flex_bison-latest.zip",
 "http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip",
 "https://downloads.sourceforge.net/project/swig/swigwin/swigwin-3.0.12/swigwin-3.0.12.zip",
-#"http://www.steinberg.net/sdk_downloads/vstsdk367_03_03_2017_build_352.zip",
+"http://www.steinberg.net/sdk_downloads/vstsdk367_03_03_2017_build_352.zip",
 "http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/gettext-runtime_0.18.1.1-2_win64.zip",
 "http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip",
 "http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/proxy-libintl-dev_20100902_win64.zip",
 "http://ftp.acc.umu.se/pub/gnome/binaries/win64/glib/2.26/glib-dev_2.26.1-1_win64.zip",
-"http://ftp.acc.umu.se/pub/gnome/binaries/win64/glib/2.26/glib_2.26.1-1_win64.zip"
+"http://ftp.acc.umu.se/pub/gnome/binaries/win64/glib/2.26/glib_2.26.1-1_win64.zip",
+"http://download-mirror.savannah.gnu.org/releases/getfem/stable/gmm-5.1.tar.gz",
+"http://support.hdfgroup.org/ftp/HDF5/current18/bin/windows/hdf5-1.8.19-Std-win7_64-vs2015.zip",
+"https://github.com/thestk/stk/archive/master.zip"
+
+# commenting out 1.8.20 for now
+#"https://support.hdfgroup.org/ftp/HDF5/current18/bin/windows/hdf5-1.8.20-Std-win7_64-vs14.zip",
 
 # Appends this folder location to the 'deps' uri
-$destList="",
-"win_flex_bison",
+$destList="win_flex_bison",
 "",
 "",
+"",
+"fluidsynthdeps",
 "fluidsynthdeps",
 "fluidsynthdeps",
 "fluidsynthdeps",
 "fluidsynthdeps",
-"fluidsynthdeps"
+"",
+"",
+""
 
 # Download list of files to cache folder
 for($i=0; $i -lt $uriList.Length; $i++)
@@ -132,8 +149,8 @@ for($i=0; $i -lt $uriList.Length; $i++)
     }
     else
     {
-    	echo "Downloading: " $uriList[$i]
-    	$webclient.DownloadFile($uriList[$i], $cachedFile)
+      echo "Downloading: " $uriList[$i]
+      $webclient.DownloadFile($uriList[$i], $cachedFile)
     }
 }
 
@@ -152,20 +169,68 @@ for($i=0; $i -lt $uriList.Length; $i++)
         New-Item $destDir -ItemType directory -Force
         Expand-Archive $cachedFile -OutputPath $destDir -Force
     }
-    echo "Extracted $fileName"
+    echo "Extracted $fileName to $destDir"
+}
+
+cd $depsDir
+echo "Ableton Link..."
+if (Test-Path "link")
+{
+    cd link
+    git pull
+    git submodule update --recursive
+    echo "Ableton Link already downloaded, updated."
 }
+else
+{
+    git clone "https://github.com/Ableton/link.git"
+    cd link
+    git submodule update --init --recursive
+    echo "Ableton Link downloaded."
+}
+mkdir build
+cd build
+cmake .. -G $vsGenerator -T $vsToolset -DCMAKE_BUILD_TYPE="Release"
+cmake --build .
+
+
+# disable 1.8.20 for time being
+# cd $depsDir    
+# cd hdf5-1.8.20-Std-win7_64-vs14
+# dir hdf   
+# Start-Process msiexec -Wait -ArgumentList '/I hdf\HDF5-1.8.20-win64.msi /quiet /qn /li /norestart'   
+# echo "Installed HDF5..."    
+
+cd $depsDir    
+dir hdf   
+Start-Process msiexec -Wait -ArgumentList '/I hdf\HDF5-1.8.19-win64.msi /quiet /qn /li /norestart'   
+echo "Installed HDF5..."    
+
+
+cd $depsDir
+
+Copy-Item ($destDir + "stk-master\*") ($csoundDir + "\Opcodes\stk") -recurse -force
+echo "STK: Copied sources to Csound opcodes directory."
+
+cd $cacheDir
+7z e -y "gmm-5.1.tar.gz"
+7z x -y "gmm-5.1.tar"
+cd ..
+copy ($cacheDir + "gmm-5.1\include\gmm\") -Destination ($depsIncDir + "gmm\") -Force -Recurse
+echo "Copied v5.1 gmm headers to deps include directory. Please note, verson 5.1 is REQUIRED, "
+echo "later versions do not function as stand-alone, header-file-only libraries."
 
-# Manual building...
-# Portaudio
 cd $stageDir
-copy ..\deps\ASIOSDK2.3 -Destination . -Recurse -ErrorAction SilentlyContinue
+copy ..\deps\ASIOSDK2.3 -Destination . -Recurse -ErrorAction SilentlyContinue -Force
+echo "ASIOSDK2.3: Copied sources to deps."
 
+echo "PortAudio..."
 if (Test-Path "portaudio")
 {
     cd portaudio
     git pull
     cd ..
-    echo "Portaudio already downloaded, updated"
+    echo "Portaudio already downloaded, updated."
 }
 else
 {
@@ -176,31 +241,31 @@ copy portaudio\include\portaudio.h -Destination $depsIncDir -Force
 rm -Path portaudioBuild -Force -Recurse -ErrorAction SilentlyContinue
 mkdir portaudioBuild -ErrorAction SilentlyContinue
 cd portaudioBuild
-cmake ..\portaudio -G $vsGenerator -DCMAKE_BUILD_TYPE="Release" -DPA_USE_ASIO=1
+cmake ..\portaudio -G $vsGenerator -T $vsToolset -DCMAKE_BUILD_TYPE="Release" -DPA_USE_ASIO=1
 cmake --build . --config Release
 copy .\Release\portaudio_x64.dll -Destination $depsBinDir -Force
 copy .\Release\portaudio_x64.lib -Destination $depsLibDir -Force
 
-# Portmidi
+echo "PortMidi..."
 cd $stageDir
 
 if (Test-Path "portmidi")
 {
-	cd portmidi
-	git pull
-	cd ..
-	echo "Portmidi already downloaded, updated"
+  cd portmidi
+  svn update  
+  cd ..
+  echo "Portmidi already downloaded, updated"
 }
 else
 {
-	svn checkout "https://svn.code.sf.net/p/portmedia/code" portmidi
+  svn checkout "https://svn.code.sf.net/p/portmedia/code" portmidi
 }
 
 cd portmidi\portmidi\trunk
 rm -Path build -Force -Recurse -ErrorAction SilentlyContinue
 mkdir build -ErrorAction SilentlyContinue
 cd build
-cmake .. -G $vsGenerator -DCMAKE_BUILD_TYPE="Release"
+cmake .. -G $vsGenerator -T $vsToolset -DCMAKE_BUILD_TYPE="Release"
 cmake --build . --config Release
 copy .\Release\portmidi.dll -Destination $depsBinDir -Force
 copy .\Release\portmidi.lib -Destination $depsLibDir -Force
@@ -210,7 +275,7 @@ copy .\Release\pmjni.lib -Destination $depsLibDir -Force
 copy ..\pm_common\portmidi.h -Destination $depsIncDir -Force
 copy ..\porttime\porttime.h -Destination $depsIncDir -Force
 
-# Liblo
+echo "LibLo..."
 cd $stageDir
 
 if (Test-Path "liblo")
@@ -228,7 +293,7 @@ else
 rm -Path liblo\cmakebuild -Force -Recurse -ErrorAction SilentlyContinue
 mkdir liblo\cmakebuild -ErrorAction SilentlyContinue
 cd liblo\cmakebuild
-cmake ..\cmake -G $vsGenerator -DCMAKE_BUILD_TYPE="Release" -DTHREADING=1
+cmake ..\cmake -G $vsGenerator -T $vsToolset -DCMAKE_BUILD_TYPE="Release" -DTHREADING=1
 cmake --build . --config Release
 copy .\Release\lo.dll -Destination $depsBinDir -Force
 copy .\Release\lo.lib -Destination $depsLibDir -Force
@@ -236,7 +301,7 @@ copy .\lo -Destination $depsIncDir -Force -Recurse
 copy ..\lo\* -Destination $depsIncDir\lo -Force -Include "*.h"
 robocopy ..\lo $depsIncDir\lo *.h /s /NJH /NJS
 
-# Fluidsynth
+echo "FluidSynth..."
 cd $stageDir
 
 if (Test-Path "fluidsynth")
@@ -249,20 +314,20 @@ if (Test-Path "fluidsynth")
 else
 {
     #Switch to offical branch when PR is merged in
-    git clone --depth=1 "https://github.com/stekyne/fluidsynth.git"
+    git clone --depth=1 -b master "https://github.com/stekyne/fluidsynth.git"
 }
 
 rm -Path fluidsynthbuild -Force -Recurse -ErrorAction SilentlyContinue
 mkdir fluidsynthbuild -ErrorAction SilentlyContinue
 cd fluidsynthbuild
-cmake ..\fluidsynth\fluidsynth -G $vsGenerator -DCMAKE_PREFIX_PATH="$depsDir\fluidsynthdeps" -DCMAKE_INCLUDE_PATH="$depsDir\fluidsynthdeps\include\glib-2.0;$depsDir\fluidsynthdeps\lib\glib-2.0\include"
+cmake ..\fluidsynth\fluidsynth -G $vsGenerator -T $vsToolset -DCMAKE_PREFIX_PATH="$depsDir\fluidsynthdeps" -DCMAKE_INCLUDE_PATH="$depsDir\fluidsynthdeps\include\glib-2.0;$depsDir\fluidsynthdeps\lib\glib-2.0\include"
 cmake --build . --config Release
 copy .\src\Release\fluidsynth.exe -Destination $depsBinDir -Force
 copy .\src\Release\fluidsynth.lib -Destination $depsLibDir -Force
 copy .\src\Release\libfluidsynth.dll -Destination $depsBinDir -Force
-copy ..\fluidsynth\fluidsynth\include\fluidsynth.h -Destination $depsIncDir
+copy ..\fluidsynth\fluidsynth\include\fluidsynth.h -Destination $depsIncDir -Force
 robocopy ..\fluidsynth\fluidsynth\include\fluidsynth $depsIncDir\fluidsynth *.h /s /NJH /NJS
-copy .\include\fluidsynth\version.h -Destination $depsIncDir\fluidsynth
+copy .\include\fluidsynth\version.h -Destination $depsIncDir\fluidsynth -Force
 
 $buildTiming = (Get-Date).TimeOfDay
 
diff --git a/msvc/generateProject.bat b/msvc/generateProject.bat
index 96d96ef..c0cd1f6 100644
--- a/msvc/generateProject.bat
+++ b/msvc/generateProject.bat
@@ -1,2 +1,2 @@
 @echo off
-powershell -ExecutionPolicy ByPass -File generateProject.ps1
\ No newline at end of file
+powershell -ExecutionPolicy ByPass -File generateProject.ps1 %1 %2 %3 %4
diff --git a/msvc/generateProject.ps1 b/msvc/generateProject.ps1
index 2d01412..d49721d 100644
--- a/msvc/generateProject.ps1
+++ b/msvc/generateProject.ps1
@@ -1,4 +1,15 @@
-echo "Generating Csound VS project..."
+param
+(
+    [string]$vsGenerator="Visual Studio 15 2017 Win64",
+    [string]$vsToolset="v141",
+    [string]$vstSdkHome
+)
+echo "Generating Csound Visual Studio solution..."
+
+echo "vsGenerator: $vsGenerator"
+echo "vsToolset:   $vsToolset"
+echo "vstSdkHome:  $vstSdkHome"
+
 $vcpkgCmake = ""
 
 # Read in VCPKG directory from env variable
@@ -6,6 +17,7 @@ if ($systemVCPKG = $(Get-Command vcpkg -ErrorAction SilentlyContinue).Source)
 {
     echo "vcpkg already installed on system, finding directory"
     $vcpkgDir = Split-Path -Parent $systemVCPKG
+    echo "vckpgDir: $vcpkgDir"
     $vcpkgCmake = "$vcpkgDir\scripts\buildsystems\vcpkg.cmake"
 }
 elseif (Test-Path "..\..\vcpkg")
@@ -13,6 +25,8 @@ elseif (Test-Path "..\..\vcpkg")
 	echo "using local VCPKG cmake file"
 	$vcpkgCmake = "..\..\vcpkg\scripts\buildsystems\vcpkg.cmake"
 	$vcpkgCmake = [System.IO.Path]::GetFullPath($vcpkgCmake)
+    $env:PATH = "$vcpkgDir" + "\buildtrees\fltk\x64-windows-rel\bin;" + "$vcpkgDir" + "\buildtrees\fltk\x64-windows-rel\fluid;" + "$vcpkgDir" + "\installed\x64-windows\bin;" + $env:PATH
+    echo $env:PATH
 }
 else
 {
@@ -25,13 +39,21 @@ echo "VCPKG script: '$vcpkgCmake'"
 
 mkdir csound-vs -ErrorAction SilentlyContinue
 cd csound-vs -ErrorAction SilentlyContinue
-
-cmake ..\.. -G "Visual Studio 14 2015 Win64" `
- -Wdev -Wdeprecated `
+dir ..\deps
+$linkPath = Resolve-Path -Path "..\deps\link"
+cmake ..\.. -G $vsGenerator -T $vsToolset  `
+ -Wno-dev -Wdeprecated `
+ -DABLETON_LINK_HOME="$linkPath" `
+ -DBUILD_ABLETON_LINK_OPCODES:BOOL=On `
+ -DSTK_LOCAL:BOOL="ON" `
  -DCMAKE_BUILD_TYPE="RelWithDebInfo" `
+ -DVCPKG_TARGET_TRIPLET=x64-windows-static `
  -DCMAKE_TOOLCHAIN_FILE="$vcpkgCmake" `
  -DCMAKE_INSTALL_PREFIX=dist `
  -DCUSTOM_CMAKE="..\Custom-vs.cmake" `
  -DCMAKE_REQUIRED_INCLUDES="..\deps\include" `
- -DEIGEN3_INCLUDE_PATH:PATH=$vcpkgDir\packages\eigen3_x64-windows\include
-
+ -DEIGEN3_INCLUDE_PATH:PATH="$vcpkgDir\packages\eigen3_x64-windows-static\include" `
+ -DVSTSDK2X_INCLUDE_DIR:PATH="$vstSdkHome" `
+ -DBUILD_CSOUND_VST:BOOL=ON `
+ -DBUILD_PADSYNTH_OPCODES:BOOL=ON `
+ -DBUILD_VST4CS_OPCODES:BOOL=ON
diff --git a/pluginSDK/custom.py b/pluginSDK/custom.py
index 26a2b14..7fb631a 100644
--- a/pluginSDK/custom.py
+++ b/pluginSDK/custom.py
@@ -72,11 +72,6 @@ elif sys.platform[:3] == 'win':
     customCPPPATH.append('D:/utah/opt/Tcl/include')
     customLIBPATH.append('D:/utah/opt/Tcl/bin')
     ################################################################
-    # If you want to build CsoundVST you need boost.
-    # If it is not in a standard lcoation add it here
-    # (you do NOT need to build it first):
-    customCPPPATH.append('D:/utah/opt/boost/')
-    ################################################################
     # If you want to build the FluidSynth opcodes
     # you need FluidSynth. If it is not a standard location,
     # add it here (you do NOT need to build it first):
diff --git a/po/american.po b/po/american.po
index 8ae74c0..6fc96e2 100644
--- a/po/american.po
+++ b/po/american.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: CSOUND 6.xx\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-07-30 08:53+0100\n"
-"PO-Revision-Date: 2017-05-12 16:16+0100\n"
+"PO-Revision-Date: 2017-11-13 17:33+0000\n"
 "Last-Translator: John ffitch <jpff at sourceforge.net>\n"
 "Language-Team: English (US)\n"
 "Language: en-GB\n"
@@ -34,7 +34,7 @@ msgstr ""
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -101,7 +101,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -109,11 +109,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -123,43 +123,43 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr ""
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr ""
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr ""
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr ""
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr ""
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr ""
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr ""
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr ""
 
@@ -172,11 +172,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -210,344 +210,349 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, c-format
+msgid "%s invalid number of samples"
+msgstr ""
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
+msgid "create_instrument: instr num %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr "instr %s redefined"
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr "ERROR: Couldn't find OPCODINFO for opname: %s\n"
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr ""
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
-msgstr ""
+msgstr "Variable type for %s couldn't be determined.\n"
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr ""
@@ -562,213 +567,204 @@ msgstr "can't create variable %s: NULL type"
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 msgid "No number following instr\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr ""
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr "Can't open #include'd file %s\n"
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr ""
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 #, fuzzy
 msgid "Section loops cannot be nested"
-msgstr "input can't be stdout"
+msgstr "Section loops can't be nested"
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -816,7 +812,7 @@ msgstr ""
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr ""
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr ""
 
@@ -833,14 +829,14 @@ msgstr "ftable doesn't exist"
 msgid "ftable %d now deleted\n"
 msgstr ""
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr ""
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr ""
@@ -871,10 +867,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -887,13 +883,13 @@ msgid "illegal x interval"
 msgstr ""
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr ""
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr ""
 
@@ -925,102 +921,102 @@ msgstr ""
 msgid "illegal xamp value"
 msgstr ""
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr ""
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr ""
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr ""
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr ""
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr "an input function doesn't exist"
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr ""
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr ""
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr ""
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr ""
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr ""
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr ""
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr ""
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr ""
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr "couldn't open space file"
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr ""
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr ""
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr ""
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1040,7 +1036,7 @@ msgid "replacing previous ftable %d"
 msgstr ""
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1106,7 +1102,7 @@ msgid "GEN1 read error"
 msgstr ""
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1118,7 +1114,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr ""
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1131,56 +1127,64 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
 msgstr ""
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
+msgid "activating instr %d at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:127
@@ -1193,12 +1197,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr "can't allocate last note because it exceeds 100%% of cpu time"
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr "can't allocate last note because it exceeds instr maxalloc"
 
@@ -1212,244 +1216,239 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr ""
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr "couldn't find playing instr %f\n"
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s: not initialized"
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr "subinstr: not initialized"
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr "Can't open %s"
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
 msgstr ""
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr "can't carry string p-field"
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1457,121 +1456,137 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr ""
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
+msgid "memory allocate failure for %zu"
 msgstr ""
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, fuzzy, c-format
+msgid "failed to open file %s\n"
+msgstr "Can't open input file %s"
+
+#: Engine/memfiles.c:54
+#, fuzzy, c-format
+msgid "failed to read file %s\n"
+msgstr "sfont: failed to read file\n"
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr "can't load %s\n"
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr "can't load %s, or SADIR undefined\n"
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr "pvoc-ex file %s isn't 32bit floats"
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr ""
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1624,7 +1639,7 @@ msgstr "can't reopen cscore.srt"
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr ""
 
@@ -1632,8 +1647,8 @@ msgstr ""
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1643,107 +1658,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1753,30 +1768,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr "can't rewind score: no score in memory \n"
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr "instr %s not found"
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr "Can't Find Instrument %d"
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr "can't find the specified instrument or opcode"
 
@@ -1785,9 +1800,9 @@ msgstr "can't find the specified instrument or opcode"
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
-#, c-format
-msgid "Failed to open input file %s\n"
+#: Engine/new_orc_parser.c:149
+#, fuzzy, c-format
+msgid "parser: failed to open input file %s\n"
 msgstr "Can't open input file %s\n"
 
 #: Engine/new_orc_parser.c:187
@@ -1811,259 +1826,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2114,11 +2133,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2149,80 +2168,80 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr ""
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr "Failed to initialize real time audio input"
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr "isfinit: can't open %s -- %s"
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr "isfinit: can't open %s"
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr "Failed to initialize real time audio output"
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
@@ -2231,58 +2250,60 @@ msgstr ""
 "sfinit: can't open fd %d\n"
 "%s"
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr "sfinit: can't open %s"
 
-#: InOut/libsnd.c:790
-#, fuzzy, c-format
+#: InOut/libsnd.c:797
+#, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
-msgstr "sfinit: can't open %s"
+msgstr ""
+"sfinit: can't open %s\n"
+"%s"
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2452,133 +2473,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr " *** MIDI file format %d isn't supported\n"
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr "Can't rewind MIDI score\n"
 
@@ -2866,7 +2887,7 @@ msgstr ""
 
 #: InOut/rtalsa.c:381
 msgid "Could not retrieve max number of channels"
-msgstr ""
+msgstr "Couldn't retrieve max number of channels"
 
 #: InOut/rtalsa.c:394
 msgid "Error setting access type for soundcard"
@@ -2886,285 +2907,285 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr "can't open %s"
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr "MIDI receive: can't get termios info."
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr "MIDI receive: can't set input baud rate."
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr "MIDI receive: can't set termios."
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr "ALSASEQ: can't set client name '%s' (%s)"
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr "ALSASEQ: can't create input port (%s)"
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr "ALSASEQ: can't create midi event (%s)"
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr "ALSASEQ: can't create output port (%s)"
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr "warning... couldn't create global var\n"
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr "can't determine card number: %s"
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr "can't open control for card %d: %s"
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr "can't determine device number: %s"
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr "can't get rawmidi information %d:%d:%d: %s\n"
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3183,11 +3204,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr ""
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3220,10 +3246,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3292,19 +3318,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3312,25 +3338,25 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3338,144 +3364,144 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr "input and output parameters aren't consistent"
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3483,68 +3509,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3724,291 +3750,291 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr "FLsetsnap: invalid table"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr "FLsavesnap: can't open file"
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr "FLloadsnap: can't open file"
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr ""
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr "FLvalue can't be set by FLsetVal.\n"
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr "FLvalue can't be set by FLsetVal\n"
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
 msgstr ""
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
 msgstr ""
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
 msgstr ""
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4039,7 +4065,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4060,68 +4086,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr "Can't be more In arguments than Out in init (%d,%d)"
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr "outrg: channel number can't be < 1 (1 is the first channel)"
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4157,35 +4183,35 @@ msgstr ""
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr ""
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr ""
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4193,7 +4219,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4203,12 +4229,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr "compileorc: couldn't open %s\n"
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr "compileorc: couldn't read %s\n"
@@ -4236,27 +4262,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr "diskin2: not initialized"
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4293,37 +4319,37 @@ msgstr "soundouts: not initialized"
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr "soundin: not initialized"
 
@@ -4386,7 +4412,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr "dispfft: not initialized"
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4466,11 +4492,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4504,11 +4530,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4520,164 +4546,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr "tablexkt: not initialized"
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr "pvsynth: Not initialized.\n"
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr "pvscross: not initialized\n"
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr ""
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr "pvsfread: ichan can't be negative.\n"
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr "pvsfread: not initialized.\n"
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr "pvsmaska: not initialized\n"
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr "pvsftw: not initialized\n"
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr "pvsftr: not initialized\n"
 
@@ -4951,31 +4977,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr "pvsanal: Not Initialized.\n"
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr "pvsynth: Not Initialized.\n"
 
@@ -5047,17 +5077,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5123,104 +5153,104 @@ msgid ""
 msgstr ""
 "*** This version of Csound wasn't compiled with remote event support ***\n"
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr "diskinfo can't open %s"
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr ""
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5237,91 +5267,97 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr "incomplete number of input arguments"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr "linseg not initialized (krate)\n"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr "linseg: not initialized (arate)\n"
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr "expseg (krate): not initialized"
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr "expseg (arate): not initialized"
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr "envlpx(krate): not initialized"
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr "cosseg not initialized (krate)\n"
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr "cosseg: not initialized (arate)\n"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr "cossegr: not initialized (arate)\n"
 
@@ -5404,11 +5440,6 @@ msgstr "oscil3(krate): not initialized"
 msgid "oscil3: not initialised"
 msgstr "oscil3: not initialized"
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr "foscil: not initialized"
@@ -5425,42 +5456,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr "mono loscil can't read from stereo ftable"
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr "stereo loscil can't read from mono ftable"
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr "ADSYN can't load %s"
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr "adsyn: not initialized"
 
@@ -5500,120 +5531,115 @@ msgstr "pluck: not initialized"
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr "LPREAD can't load %s"
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr "Can't handle uneven pole count yet \n"
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr "lpread: not initialized"
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr "LPC slot isn't allocated"
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr "lpinterpol: not initialized"
 
@@ -5671,8 +5697,8 @@ msgstr "deltapn: not initialized"
 msgid "deltap3: not initialised"
 msgstr "deltap3: not initialized"
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5692,11 +5718,11 @@ msgstr "alpass: not initialized"
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
-msgstr "reverb: not intialized"
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
+msgstr "reverb: not initialized"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr "pan: not initialized"
 
@@ -5829,191 +5855,190 @@ msgstr "printk: not initialized"
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr "printks: not initialized"
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+msgid "Insufficient arguments in formatted printing"
+msgstr ""
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, c-format
 msgid "table: could not find ftable %d"
 msgstr "table: couldn't find ftable %d"
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr "table: couldn't find ftables %d and/or %d"
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr "table: couldn't read negative pos %d"
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr "vdelay: not initialized"
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr "vdelay3: not initialized"
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr "multitap: not initialized"
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr "reverbx: not initialized"
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
 msgstr ""
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr "ftable %.2f doesn't exist"
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr "OSC deinitiatized\n"
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr "can't start OSC listener on port %s\n"
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr ""
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, c-format
 msgid "Invalid ftable no. %d"
 msgstr ""
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr ""
 
@@ -6094,7 +6119,7 @@ msgstr "The output channel count doesn't match the isetup value."
 msgid "bformdec1 output array not initilised"
 msgstr "bformdec1 output array not initilized"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6106,182 +6131,197 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr "Can't set i-array at k-rate\n"
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
 msgstr "array-variable not initialized"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr "Dimension doesn't match in array arithmetic"
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
 msgstr "array-variable not a vector"
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
 msgstr "array-variable dimensions don't match"
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
 msgstr "array-variable types don't match"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
 msgstr "array-var not initialized"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr "%s not found"
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
 msgstr "array sizes don't match\n"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6306,7 +6346,7 @@ msgstr "vco: not initialized"
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6389,21 +6429,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6443,133 +6483,133 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr "readi failed to initialize"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
+#, c-format
 msgid "DSSI4CS: Failed to load %s."
-msgstr "fluid: unable to load %s"
+msgstr "DSSI4CS: Failed to load %s."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
+#, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
-msgstr "channel '%s' doesn't exist"
+msgstr "DSSI4CS: Port %lu from '%s' doesn't exist."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr "DSSI4CS: Not initialized or wrong argument types."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6577,27 +6617,35 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 msgid "insufficient arguments for fareytable"
 msgstr ""
@@ -6607,9 +6655,9 @@ msgstr ""
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6622,10 +6670,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6636,7 +6680,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6644,53 +6688,53 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, c-format
 msgid "could not find DSP %p for deletion"
 msgstr "couldn't find DSP %p for deletion"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6707,31 +6751,31 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr "fluid: unable to load %s"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6748,7 +6792,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr ""
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
 msgstr ""
 
@@ -6757,27 +6801,27 @@ msgstr ""
 msgid "error opening file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr "can't close '%s': not found in list of open files"
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr "can't close file #%d: not a valid handle"
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 msgid "fouti: invalid file handle"
 msgstr ""
 
@@ -6831,13 +6875,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr "freeverb: not initialized"
 
@@ -6862,12 +6906,12 @@ msgstr "ftconv: not initialized"
 msgid "Error deleting ftable %d"
 msgstr ""
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -6877,9 +6921,8 @@ msgid "Invalid table number: %d"
 msgstr ""
 
 #: Opcodes/ftgen.c:304
-#, fuzzy
 msgid "table length too long"
-msgstr "Table lengths don't agree!!"
+msgstr "table length too long"
 
 #: Opcodes/ftgen.c:431
 msgid "ftload: error allocating ftable"
@@ -6913,29 +6956,29 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr "ftsave: failed to write file"
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr "Can't load file. Error opening directory: %s\n"
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr "Can't find directory. Error opening directory: %s\n"
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -6961,44 +7004,40 @@ msgstr ""
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
 msgstr "adsynt2: not initialized"
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7038,7 +7077,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr "Failed to find ftable"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
 msgstr ""
 
@@ -7222,346 +7261,346 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
 msgstr "vecdly: not initialized"
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr "tableseg: not initialized"
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr "tablexseg: not initialized"
 
 #
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
 msgstr "vdelayk: not initialized"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
 msgstr ""
 
@@ -7647,15 +7686,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7665,7 +7704,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr "grain4: not initialized"
 
@@ -7681,56 +7720,56 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 "hdf5write: Error, first argument doesn't appear to be a string, exiting"
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr "This shouldn't happen, exiting"
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 "hdf5read: Error, input argument %zd doesn't appear to be a string, exiting"
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr "hdf5read: Error, dataset doesn't exist or can't be found in file"
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -7883,69 +7922,91 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
+"Couldn't create Jack client \"%s\" -- is Jack server \"%s\" running? Status: "
+"%d\n"
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr "Activated Jack client \"%s\".\n"
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr "Couldn't create Jack port \"%s\".\n"
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr "Couldn't create Jack connection from \"%s\" to \"%s\": status %d.\n"
@@ -7963,12 +8024,12 @@ msgstr ""
 #: Opcodes/linuxjoystick.c:94
 #, c-format
 msgid "linuxjoystick: could not open device /dev/input/js%d for reason: %s\n"
-msgstr ""
+msgstr "linuxjoystick: couldn't open device /dev/input/js%d for reason: %s\n"
 
 #: Opcodes/linuxjoystick.c:98
 #, c-format
 msgid "linuxjoystick: could not open device /dev/js%d for reason: %s\n"
-msgstr ""
+msgstr "linuxjoystick: couldn't open device /dev/js%d for reason: %s\n"
 
 #: Opcodes/linuxjoystick.c:112
 #, c-format
@@ -7980,15 +8041,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
 msgstr "liveconv: not initialized"
 
@@ -8096,17 +8157,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr "mp3scale: %s: failed to open file"
@@ -8139,93 +8200,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr "grain3: not initialized"
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr "rnd31: not initialized"
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr "vco2ft: not initialized"
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr "vco2: not initialized"
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr "delayk: not initialized"
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr "vdel_k: not initialized"
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8241,6 +8302,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8261,7 +8330,7 @@ msgstr ""
 #: Opcodes/partikkel.c:890
 #, c-format
 msgid "%s: could not find opcode id"
-msgstr ""
+msgstr "%s: couldn't find opcode id"
 
 #: Opcodes/paulstretch.c:125
 msgid "paulstretch: table not found"
@@ -8307,37 +8376,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8345,7 +8414,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8416,8 +8485,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8440,16 +8508,16 @@ msgstr "transeg: not initialized (arate)\n"
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr "median: not initialized (arate)\n"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr "median: not initialized (krate)\n"
 
@@ -8463,12 +8531,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8481,18 +8549,9 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr "Couldn't allocate for initial shape"
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
-msgstr ""
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
+msgstr "wgpluck:Couldn't allocate for initial shape"
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
 msgid "psynth: first input not in TRACKS format\n"
@@ -8554,7 +8613,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8567,30 +8626,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr "PVBUFREAD can't load %s"
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8598,8 +8657,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr "pvbufread: not initialized"
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8617,39 +8676,39 @@ msgstr "PVINTERP can't load %s"
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr "pvinterp: %s: frame size %d doesn't match pvbufread frame size %d\n"
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr "pvinterp: not initialized"
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr "PVCROSS can't load %s"
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr "pvcross: %s: frame size %d doesn't match pvbufread frame size %d\n"
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr "pvcross: not initialized"
 
@@ -8665,7 +8724,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8790,19 +8849,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr "error... couldn't create global var for handle\n"
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr "error... couldn't read handle from global variable\n"
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8837,16 +8896,15 @@ msgid "sliding not supported"
 msgstr ""
 
 #: Opcodes/pvsops.cpp:36
-#, fuzzy
 msgid "fsig format not supported"
-msgstr " *** MIDI file format %d isn't supported\n"
+msgstr "fsig format not supported"
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9145,125 +9203,125 @@ msgstr "error... couldn't create sfont globals\n"
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9337,34 +9395,37 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr "sndwarpst: not initialized"
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr "Can't set nonblock"
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
-#, fuzzy
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
-msgstr "Output array not initialized"
+msgstr "output array too small\n"
 
 #: Opcodes/socksend.c:149 Opcodes/socksend.c:186 Opcodes/socksend.c:223
 #: Opcodes/socksend.c:302
@@ -9385,20 +9446,20 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr ""
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
-#, fuzzy, c-format
+#: Opcodes/socksend.c:508
+#, c-format
 msgid "%c: data type not supported\n"
-msgstr " *** MIDI file format %d isn't supported\n"
+msgstr "%c: data type not supported\n"
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9418,161 +9479,166 @@ msgstr "spat3d: not initialized"
 msgid "spat3di: not initialised"
 msgstr "spat3di: not initialized"
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr "specdisp: not initialized"
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr "specptrk: not initialized"
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr "specsum: not initialized"
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr "specaddm: not initialized"
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr "specdiff: local buffers not initialized"
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr "specdiff: not initialized"
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr "specscal: local buffer not initialized"
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr "specscal: not initialized"
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
 msgstr "spechist: local buffers not initialized"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr "spechist: not initialized"
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr "specfilt: local buffers not initialized"
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr "specfilt: not initialized"
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr "fsig = : source signal is not initialized"
@@ -9601,7 +9667,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9681,7 +9747,7 @@ msgstr "CONVOLVE can't load %s"
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9694,7 +9760,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9782,34 +9848,34 @@ msgstr "vibrato(krate): not initialized"
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr "couldn't allocate memory"
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr "vcomb: not initialized"
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr "valpass: not initialized"
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr "iresfn for ftmorf doesn't exist"
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr "iftfn for ftmorf doesn't exist"
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr "table in iftfn for ftmorf doesn't exist"
 
@@ -9818,12 +9884,12 @@ msgstr "table in iftfn for ftmorf doesn't exist"
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr "%s: either %s isn't an ATS file or the byte endianness is wrong"
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9831,128 +9897,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr "ATSREAD: not initialized"
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr "ATSREADNZ: Type either not implemented or doesn't contain noise"
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr "ATSREADNZ: not initialized"
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr "ATSADD: not initialized"
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr "ATSADDNZ: This file type hasn't been implemented in this code yet."
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -10016,7 +10082,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10030,113 +10096,114 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
 msgstr ""
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, c-format
 msgid "could not find layout table no.%d"
 msgstr "couldn't find layout table no.%d"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
 msgstr "Output array not initialized"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
 msgstr "couldn't find layout table no.0"
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
 msgstr "Output array in vpabmove not initalized"
 
@@ -10144,34 +10211,67 @@ msgstr "Output array in vpabmove not initalized"
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr "vpvoc: Couldn't find ifnmagctrl table %f"
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr "VPVOC can't load %s"
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr "vpvoc: not initialized"
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10199,12 +10299,12 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr "Table lengths don't agree!!"
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
@@ -10214,7 +10314,7 @@ msgstr ""
 "supported\n"
 "Exiting"
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
@@ -10223,7 +10323,7 @@ msgstr ""
 "websocket: error output string variable %s mustn't be initialized\n"
 "Exiting"
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
@@ -10232,13 +10332,13 @@ msgstr ""
 "websocket: error array variable %s hasn't been initialized\n"
 "Exiting"
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
@@ -10247,22 +10347,22 @@ msgstr ""
 "websocket: received message from isn't correct size for variable %s, message "
 "dumped"
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr "websocket: couldn't initialize websocket, Exiting"
 
@@ -10308,824 +10408,857 @@ msgid "Error opening log file '%s': %s\n"
 msgstr ""
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
-msgstr "-K\tDon't generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
+msgstr "-K          don't generate PEAK chunks"
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
-msgstr ""
-
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
-msgstr ""
-
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
-msgstr ""
+msgid "  Set output file format"
+msgstr "  Set output file format"
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
-msgstr "--nopeaks\t\tDon't write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
+msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
-msgstr ""
+msgid "--nopeaks               do not write peak information"
+msgstr "--nopeaks               don't write peak information"
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-msgid "--nchnls=N\t\t override number of audio channels"
+msgid "                          key number to pfield N as linear octave"
 msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
+msgid "--nchnls=N              override number of audio channels"
 msgstr ""
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
+msgid "--nchnls_i=N            override number of input audio channels"
 msgstr ""
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+"--daemon                daemon mode: don't exit if CSD/orchestra isn't "
+"given, is empty or doesn't compile"
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr ""
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr "input can't be stdout"
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr "no message colors"
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr "-o can't be stdin"
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr "Can't indirection file %s\n"
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr ""
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr "%d audio output devices \n"
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr "%d audio input devices \n"
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11270,332 +11403,332 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr "Csound not ready for performance: csoundStart() hasn't been called \n"
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr ""
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr "Can't open /proc/cpuinfo. Support for RDTSC isn't available.\n"
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr "WARNING: can't open csound6rc file %s\n"
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
-#, c-format
-msgid "Failed to open input file - %s\n"
+#: Top/main.c:239
+#, fuzzy, c-format
+msgid "main: failed to open input file - %s\n"
 msgstr "Can't open input file %s\n"
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr "can't compile orchestra"
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr "can't open scorefile %s"
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr "can't open extract file %s"
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11692,168 +11825,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr ""
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr "and can't remove"
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr "and can't remove %s"
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr "and can't remove %s\n"
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr "Can't open temporary file (%s) for MIDI subfile"
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr "Can't open sample file (%s) subfile"
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr "Can't open file (%s) subfile"
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr "**** License Information ****\n"
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr "**** End of License Information ****\n"
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr "Couldn't find <CsoundSynthesizer> tag in CSD file.\n"
 
@@ -11866,26 +12017,76 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr ""
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+#, fuzzy
+msgid "UDP Server: Cannot set nonblock"
+msgstr "Can't set nonblock"
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, c-format
+msgid "could not retrieve channel %s"
+msgstr "couldn't retrieve channel %s"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr ""
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr "UDP Server: couldn't start"
+
+#: Top/server.c:324
+#, fuzzy
+msgid "UDP Server: failed to allocate memory"
+msgstr "couldn't allocate memory"
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr "%s() isn't implemented on this platform.\n"
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -11902,8 +12103,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -12030,170 +12231,170 @@ msgstr ""
 "\n"
 "ERROR: can't open file %s for writing\n"
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr "Error: sound not optimized !"
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr "atsa: can't open input file '%s'"
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr "atsa: %d frames aren't enough for analysis, need at least %d"
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12221,48 +12422,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr "unrecognized switch option"
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr "can't create output file"
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr "can't write header"
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12397,125 +12598,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr "w = filter overlap factor: {0,1,(2),3} DON'T USE -w AND -M"
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12523,7 +12724,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12659,87 +12860,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr "input and begin times can't be less than zero"
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr "can't create output file\n"
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr "OOPS: SDIF doesn't work on this machine!\n"
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12822,120 +13023,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr "soundfile read error, couldn't fill first frame"
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -12947,13 +13148,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -12990,10 +13191,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13087,47 +13340,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr "Can't open scale table file %s"
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13340,7 +13593,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13367,7 +13620,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13383,37 +13636,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13578,36 +13831,48 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr ""
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 "-P num\tpitch transposition ratio (srate/r) [don't specify both P and r]"
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr "-K\tDon't generate PEAK chunks"
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13781,116 +14046,119 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr "Syntax error: can't back up"
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
 
+#~ msgid "reverb: not intialised"
+#~ msgstr "reverb: not intialized"
+
 #~ msgid "Cannot open #include'd file %s"
 #~ msgstr "Can't open #include'd file %s"
 
diff --git a/po/csound.po b/po/csound.po
index 1dcc08e..9a958ba 100644
--- a/po/csound.po
+++ b/po/csound.po
@@ -34,7 +34,7 @@ msgstr ""
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -101,7 +101,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -109,11 +109,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -123,43 +123,43 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr ""
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr ""
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr ""
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr ""
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr ""
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr ""
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr ""
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr ""
 
@@ -172,11 +172,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -210,344 +210,349 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, c-format
+msgid "%s invalid number of samples"
+msgstr ""
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
+msgid "create_instrument: instr num %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr ""
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr ""
@@ -562,212 +567,203 @@ msgstr ""
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 msgid "No number following instr\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr ""
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr ""
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr ""
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -815,7 +811,7 @@ msgstr ""
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr ""
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr ""
 
@@ -832,14 +828,14 @@ msgstr ""
 msgid "ftable %d now deleted\n"
 msgstr ""
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr ""
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr ""
@@ -870,10 +866,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -886,13 +882,13 @@ msgid "illegal x interval"
 msgstr ""
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr ""
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr ""
 
@@ -924,102 +920,102 @@ msgstr ""
 msgid "illegal xamp value"
 msgstr ""
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr ""
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr ""
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr ""
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr ""
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr ""
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr ""
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr ""
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr ""
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr ""
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr ""
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr ""
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr ""
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr ""
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr ""
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr ""
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr ""
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr ""
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1039,7 +1035,7 @@ msgid "replacing previous ftable %d"
 msgstr ""
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1105,7 +1101,7 @@ msgid "GEN1 read error"
 msgstr ""
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1117,7 +1113,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr ""
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1130,56 +1126,64 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
 msgstr ""
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
+msgid "activating instr %d at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:127
@@ -1192,12 +1196,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 
@@ -1211,244 +1215,239 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr ""
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr ""
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr ""
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr ""
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
 msgstr ""
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1456,121 +1455,137 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr ""
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
+msgid "memory allocate failure for %zu"
 msgstr ""
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, c-format
+msgid "failed to open file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:54
+#, c-format
+msgid "failed to read file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr ""
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr ""
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr ""
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1623,7 +1638,7 @@ msgstr ""
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr ""
 
@@ -1631,8 +1646,8 @@ msgstr ""
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1642,107 +1657,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1752,30 +1767,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr ""
 
@@ -1784,9 +1799,9 @@ msgstr ""
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, c-format
-msgid "Failed to open input file %s\n"
+msgid "parser: failed to open input file %s\n"
 msgstr ""
 
 #: Engine/new_orc_parser.c:187
@@ -1810,259 +1825,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2113,11 +2132,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2148,138 +2167,138 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr ""
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr ""
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr ""
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr ""
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2449,133 +2468,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr ""
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr ""
 
@@ -2883,285 +2902,285 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3180,11 +3199,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr ""
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3217,10 +3241,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3289,19 +3313,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3309,25 +3333,25 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3335,144 +3359,144 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3480,68 +3504,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3721,291 +3745,291 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr ""
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr ""
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
 msgstr ""
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
 msgstr ""
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
 msgstr ""
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4036,7 +4060,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4057,68 +4081,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4154,35 +4178,35 @@ msgstr ""
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr ""
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr ""
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4190,7 +4214,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4200,12 +4224,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr ""
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr ""
@@ -4233,27 +4257,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr ""
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4290,37 +4314,37 @@ msgstr ""
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr ""
 
@@ -4383,7 +4407,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr ""
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4463,11 +4487,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4501,11 +4525,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4517,164 +4541,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr ""
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr ""
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr ""
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr ""
 
@@ -4944,31 +4968,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr ""
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr ""
 
@@ -5040,17 +5068,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5115,104 +5143,104 @@ msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr ""
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr ""
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5229,91 +5257,97 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr ""
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr ""
 
@@ -5396,11 +5430,6 @@ msgstr ""
 msgid "oscil3: not initialised"
 msgstr ""
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr ""
@@ -5417,42 +5446,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr ""
 
@@ -5492,120 +5521,115 @@ msgstr ""
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr ""
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr ""
 
@@ -5663,8 +5687,8 @@ msgstr ""
 msgid "deltap3: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5684,11 +5708,11 @@ msgstr ""
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr ""
 
@@ -5821,191 +5845,190 @@ msgstr ""
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr ""
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+msgid "Insufficient arguments in formatted printing"
+msgstr ""
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, c-format
 msgid "table: could not find ftable %d"
 msgstr ""
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr ""
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr ""
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
 msgstr ""
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr ""
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr ""
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr ""
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, c-format
 msgid "Invalid ftable no. %d"
 msgstr ""
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr ""
 
@@ -6086,7 +6109,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr ""
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6098,182 +6121,197 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
 msgstr ""
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr ""
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6298,7 +6336,7 @@ msgstr ""
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6381,21 +6419,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6435,133 +6473,133 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6569,27 +6607,35 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 msgid "insufficient arguments for fareytable"
 msgstr ""
@@ -6599,9 +6645,9 @@ msgstr ""
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6614,10 +6660,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6628,7 +6670,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6636,53 +6678,53 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, c-format
 msgid "could not find DSP %p for deletion"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6699,31 +6741,31 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6740,7 +6782,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr ""
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
 msgstr ""
 
@@ -6749,27 +6791,27 @@ msgstr ""
 msgid "error opening file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 msgid "fouti: invalid file handle"
 msgstr ""
 
@@ -6823,13 +6865,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr ""
 
@@ -6854,12 +6896,12 @@ msgstr ""
 msgid "Error deleting ftable %d"
 msgstr ""
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -6904,29 +6946,29 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -6952,44 +6994,40 @@ msgstr ""
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
 msgstr ""
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7029,7 +7067,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr ""
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
 msgstr ""
 
@@ -7213,345 +7251,345 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
 msgstr ""
 
@@ -7637,15 +7675,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7655,7 +7693,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr ""
 
@@ -7671,54 +7709,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -7861,69 +7899,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -7958,15 +8016,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
 msgstr ""
 
@@ -8074,17 +8132,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr ""
@@ -8117,93 +8175,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8219,6 +8277,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8285,37 +8351,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8323,7 +8389,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8394,8 +8460,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8418,16 +8483,16 @@ msgstr ""
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr ""
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr ""
 
@@ -8441,12 +8506,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8459,17 +8524,8 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
 msgstr ""
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
@@ -8532,7 +8588,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8545,30 +8601,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8576,8 +8632,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8595,39 +8651,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr ""
 
@@ -8643,7 +8699,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8768,19 +8824,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8818,12 +8874,12 @@ msgstr ""
 msgid "fsig format not supported"
 msgstr ""
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9120,125 +9176,125 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9312,31 +9368,35 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr ""
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
 msgstr ""
 
@@ -9359,20 +9419,20 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr ""
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr ""
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9392,161 +9452,166 @@ msgstr ""
 msgid "spat3di: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr ""
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr ""
@@ -9575,7 +9640,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9654,7 +9719,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9667,7 +9732,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9755,34 +9820,34 @@ msgstr ""
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -9791,12 +9856,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9804,128 +9869,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -9989,7 +10054,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10003,113 +10068,114 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
 msgstr ""
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, c-format
 msgid "could not find layout table no.%d"
 msgstr ""
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
 msgstr ""
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
 msgstr ""
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
 msgstr ""
 
@@ -10117,34 +10183,67 @@ msgstr ""
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr ""
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10172,61 +10271,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10272,824 +10371,855 @@ msgid "Error opening log file '%s': %s\n"
 msgstr ""
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
-msgstr ""
-
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
-msgstr ""
-
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-msgid "--nchnls=N\t\t override number of audio channels"
+msgid "                          key number to pfield N as linear octave"
 msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
+msgid "--nchnls=N              override number of audio channels"
 msgstr ""
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
+msgid "--nchnls_i=N            override number of input audio channels"
 msgstr ""
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr ""
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr ""
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr ""
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11233,332 +11363,332 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr ""
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr ""
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, c-format
-msgid "Failed to open input file - %s\n"
+msgid "main: failed to open input file - %s\n"
 msgstr ""
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr ""
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11655,168 +11785,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr ""
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr ""
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr ""
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr ""
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -11829,26 +11977,74 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr ""
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, c-format
+msgid "could not retrieve channel %s"
+msgstr ""
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr ""
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+msgid "UDP Server: failed to allocate memory"
+msgstr ""
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -11863,8 +12059,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -11989,170 +12185,170 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12180,48 +12376,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12356,125 +12552,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12482,7 +12678,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12618,87 +12814,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12781,120 +12977,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -12906,13 +13102,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -12949,10 +13145,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13046,47 +13294,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13299,7 +13547,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13326,7 +13574,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13342,37 +13590,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13535,35 +13783,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr ""
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13737,112 +13997,112 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
diff --git a/po/es_CO.po b/po/es_CO.po
index e7d8f0e..2e7cd76 100644
--- a/po/es_CO.po
+++ b/po/es_CO.po
@@ -35,7 +35,7 @@ msgstr "auxlist para el instrumento %d (%p):\n"
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -102,7 +102,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -110,11 +110,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -124,52 +124,52 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 #, fuzzy
 msgid "Invalid NULL Parameter barrier"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 #, fuzzy
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 #, fuzzy
 msgid "Failed to allocate barrier"
 msgstr "memoria insuficiente para inicializar globales remotas."
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 #, fuzzy
 msgid "Invalid NULL Parameter set"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 #, fuzzy
 msgid "Failed to allocate set"
 msgstr "No fue posible crear %s"
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 #, fuzzy
 msgid "Invalid Parameter set not a set"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 #, fuzzy
 msgid "Invalid NULL Parameter data"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 #, fuzzy
 msgid "Failed to allocate set element"
 msgstr "No fue posible crear %s"
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 #, fuzzy
 msgid "Invalid NULL Parameter set_element"
 msgstr "parámetros de modo inválidos"
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 #, fuzzy
 msgid "Invalid NULL Parameter out_set_element"
 msgstr "parámetros de modo inválidos"
@@ -183,11 +183,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -221,347 +221,351 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr "%s tasa de muestreo inválida"
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr "%s frecuencia de control inválida"
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, fuzzy, c-format
+msgid "%s invalid number of samples"
+msgstr "número inválido de argumentos"
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr "%s valor de ksmps inválido"
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, fuzzy, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr "%s sr, kr, ksmps inconsistentes"
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, fuzzy, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr "%s sr, kr, ksmps inconsistentes"
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 #, fuzzy
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr "valor incorrecto para 0dbfs: debe ser positivo."
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr "%s sr, kr, ksmps inconsistentes"
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
-#, c-format
-msgid "create_instrument: instr num %ld\n"
-msgstr ""
+#: Engine/csound_orc_compile.c:860
+#, fuzzy, c-format
+msgid "create_instrument: instr num %d\n"
+msgstr "instr %s usa el número %d\n"
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, fuzzy, c-format
 msgid " -- free instr def %p %p \n"
 msgstr "auxlist para el instrumento %d (%p):\n"
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 #, fuzzy
 msgid "no active instances \n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr "instr %s usa el número %d\n"
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, fuzzy, c-format
 msgid "instr %d redefined\n"
 msgstr "instr %s redefinido"
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, fuzzy, c-format
 msgid "no active instances of instr %d \n"
 msgstr "retirada instancia del instrumento %d\n"
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, fuzzy, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr "falta el número de instrumento"
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, fuzzy, c-format
 msgid "merging instr %d \n"
 msgstr "falta el número de instrumento"
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, fuzzy, c-format
 msgid "merging instr %s \n"
 msgstr "falta el número de instrumento"
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr "nombre inválido para el instrumento"
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr "instr %s redefinido"
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr "%d errores de sintaxis en la orquesta.  compilación inváilda\n"
 
-#: Engine/csound_orc_compile.c:1718
-#, fuzzy, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+#: Engine/csound_orc_compile.c:1766
+#, c-format
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
-"enunciados de ejecución (perf-pass) son ilegales en el bloque de encabezado\n"
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, fuzzy, c-format
 msgid "Missing local arg: %s\n"
 msgstr "argumento sobrante o faltante"
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, fuzzy, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr "Error: utilidad '%s' no encontrada"
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, fuzzy, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr "Error: utilidad '%s' no encontrada"
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, fuzzy, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr "Error: utilidad '%s' no encontrada"
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, fuzzy, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr "argumento de entrada '%s' usado antes de ser definido\n"
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, fuzzy, c-format
 msgid "Unknown arg type: %d\n"
 msgstr "Etiqueta CSD desconocida: %s\n"
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, fuzzy, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr "argumento de entrada '%s' usado antes de ser definido\n"
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, fuzzy, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr "argumento de entrada '%s' usado antes de ser definido\n"
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, fuzzy, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr "No es posible abrir el archivo PVOC-EX %s: %s"
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, fuzzy, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr " línea %d:\n"
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, fuzzy, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr "número insuficiente de argumentos requeridos"
@@ -576,217 +580,208 @@ msgstr ""
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 #, fuzzy
 msgid "No number following instr\n"
 msgstr "Número equivocado de argumentos de entrada"
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr "Macro indefinido: '%s'"
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 #, fuzzy
 msgid "Too few arguments to macro\n"
 msgstr "demasiados argumentos de entrada %s"
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, fuzzy, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr "Caracter # inesperado"
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 #, fuzzy
 msgid "Unmatched #end\n"
 msgstr "endin sin complemento"
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr "No se puede abrir el archivo pedido por #include %s\n"
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr "error de macro\n"
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 #, fuzzy
 msgid "define macro runaway\n"
 msgstr "Macro indefinido: '%s'"
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr "el macro %s no está definido\n"
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr "Definición del macro %*s\n"
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr "Nombre de macro inválido para --omacro"
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr "sread: {: número inválido de repeticiones"
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 #, fuzzy
 msgid "unmatched } in score\n"
 msgstr "comillas sin cerrar"
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr ""
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr "r: número inválido de repeticiones"
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, fuzzy, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr "Caracter # inesperado"
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr "Nombre de macro inválido para --smacro"
 
@@ -837,7 +832,7 @@ msgstr "error interno: csoundFileOpen(): tipo inváido: %d"
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr "error interno: csoundCreateFileHandle(): tipo inválido: %d"
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 #, fuzzy
 msgid "instrument number out of range"
 msgstr "Número de dispositivo fuera de rango"
@@ -855,14 +850,14 @@ msgstr "la tabla-f (ftable) no existe"
 msgid "ftable %d now deleted\n"
 msgstr "la tabla-f (ftable) %d ha sido borrada\n"
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr "argumentos GEN insuficientes"
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr "GEN de nombre \"%s\" no definida"
@@ -893,10 +888,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -909,13 +904,13 @@ msgid "illegal x interval"
 msgstr "intervalo x ilegal"
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr "argumentos insuficientes"
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr "número de tabla fuente (srctable) desconocido"
 
@@ -947,103 +942,103 @@ msgstr "valor de xint ilegal"
 msgid "illegal xamp value"
 msgstr "valor de xamp ilegal"
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr "numero de argumentos impar"
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr "la llamada GEN tiene valores ilegales para el eje x:"
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr "número equivocado de argumentos"
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr "uno de los rangos dado excede la longitud de  la tabla"
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr "no existe función de entrada"
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 #, fuzzy
 msgid "No such window type!"
 msgstr "No existe la ventana!"
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr "Número equivocado de argumentos de entrada"
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr "distribución desconocida"
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr "error abriendo archivo ASCII"
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr "%ld elementos en %s\n"
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr "el tamaño de la tabla fuente y de la de destino debe ser igual"
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr "las coordenadas x deben estar en orden ascendente:"
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr "coordenada x mayor que el tamaño de la función:"
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr "GEN28 requiere tamaño de tabla cero"
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr "no es posible abrir el archivo de espacio"
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr "Los valores de tiempo deben estar en orden ascendente"
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr "GEN30: tabla-f (ftable) fuente no encontrada"
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr "GEN31: tabla-f (ftable) fuente no encontrada"
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr "GEN32: tabla-f (ftable) fuente %d no encontrada"
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr "GEN33: tabla-f (ftable) fuente no encontrada"
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr "número de tabla fuente desconocida"
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1063,7 +1058,7 @@ msgid "replacing previous ftable %d"
 msgstr "reemplazando tabla-f (ftable) %d anterior"
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1131,7 +1126,8 @@ msgid "GEN1 read error"
 msgstr "GEN1 error de lectura"
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+#, fuzzy
+msgid "GEN1: file truncated by ftable size"
 msgstr "GEN1: archivo aiff truncado por el tamaño de la tabla-f (ftable)"
 
 #: Engine/fgens.c:2770
@@ -1143,7 +1139,7 @@ msgstr "\tmuestras de audio %ld excedene el tamaño de la tabla %ld"
 msgid "wrong number of ftable arguments"
 msgstr "número equivocado de argumentos para la tabla-f (ftable)"
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr "No fue posible cargar el archivo PVOC-EX"
 
@@ -1156,58 +1152,67 @@ msgstr "número de canal ilegal"
 msgid "ftable size too small"
 msgstr "la tabla-f (ftable) es demasiado pequeña"
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 #, fuzzy
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr "GEN51: número inválido de campos-p (p-fields) (faltan grados)"
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr "número de canales inconsistente con el número de argumentos"
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr "GEN53: número inválido de argumentos"
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr "GEN53: tamaño inválido de tabla"
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr "GEN53: el modo debe estar entre 0 y 15"
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+#, fuzzy
+msgid "GEN53: invalid source table length:"
 msgstr "GEN53: tamaño inválido de la tabla fuente"
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr "GEN53: tabla de ventana inválida"
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr "Falló la carga diferida de '%s'"
 
 #: Engine/insert.c:116
-#, c-format
-msgid "activating instr %s at %d\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "activating instr %s at %lld\n"
+msgstr "falta el número de instrumento"
 
 #: Engine/insert.c:119
-#, c-format
-msgid "activating instr %d at %d\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "activating instr %d at %lld\n"
+msgstr "retirada instancia del instrumento %d\n"
 
 #: Engine/insert.c:127
 #, c-format
@@ -1219,13 +1224,13 @@ msgstr "Intrumento %s desactivado\n"
 msgid "Instrument %d muted\n"
 msgstr "Intrumento %d desactivado\n"
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 "no es posible colocar la última nota porque escede el 100%% de tiempo de CPU"
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 "no es posible colocar la última nota porque escede el valor de maxalloc del "
@@ -1241,143 +1246,143 @@ msgstr "Nueva colocación para el instrumento %s:\n"
 msgid "new alloc for instr %d:\n"
 msgstr "Nueva colocación para el instrumento %d:\n"
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr "instr %s usa %d campos-p (pfields) pero se han dado %d"
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr "instr %d usa %d campos-p (pfields) pero se han dado %d"
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, fuzzy, c-format
 msgid "MIDI activating instr %s\n"
 msgstr "falta el número de instrumento"
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, fuzzy, c-format
 msgid "MIDI activating instr %d\n"
 msgstr "retirada instancia del instrumento %d\n"
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, fuzzy, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr "Nueva colocación para el instrumento %s:\n"
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, fuzzy, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr "Nueva colocación para el instrumento %d:\n"
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr "Nota MIDI se sobrepone a la tecla %d en el mismo canal"
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr "retirada instancia del instrumento %d\n"
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 #, fuzzy
 msgid "instance not valid \n"
 msgstr "retirada instancia del instrumento %d\n"
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr "INIT ERROR en instrumento %d (opcode %s): "
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr "INIT ERROR en instrumento %d (subinstr %d): "
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr "INIT ERROR en instrumento %d: "
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr "PERF ERROR en instrumento %d (opcode %s): "
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr "PERF ERROR en instrumento %d (subinstr %d): "
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr "PERF ERROR en instrumento %d: "
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr "    nota abortada\n"
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr "subinstr: número de argumentos de salida es mayor que nchnls"
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr "subinstr: demasiados campos-p (pfields)"
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr "%s: valor inválido de ksmps local: %d"
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s: no ha sido inicializado"
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, fuzzy, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr "setksmps: valor inválido de ksmps: %d"
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr "subinstr: no ha sido inicializado"
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
@@ -1386,103 +1391,98 @@ msgstr ""
 "instr %d colocado en %p\n"
 "\tlclbas %p, opds %p\n"
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, fuzzy, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr "op %d (%s) colocado en %p\n"
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, fuzzy, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr "Etiqueta CSD desconocida: %s\n"
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, fuzzy, c-format
 msgid "Instrument %s is still active"
 msgstr "Intrumento %s desactivado"
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr "Intrumento %d desactivado"
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr "No es posible abrir %s"
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 #, fuzzy
 msgid "Failed to set file status\n"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr "LineBuffer Overflow - se han perdido datos de entrada"
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr "opcode desconocido '%c'"
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, fuzzy, c-format
 msgid "too few pfields (%d)"
 msgstr "faltan campos-p (pfields)"
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr "-L con p2 negativo es ilegal"
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr "demasiados campos-p (pfields)"
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1493,123 +1493,139 @@ msgstr ""
 "%s\n"
 "%*s"
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr "event: error creando el evento '%c'"
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr "event_i: error creando el evento '%c'"
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 #, fuzzy
 msgid "instance: error creating event"
 msgstr "event: error creando el evento '%c'"
 
 #: Engine/memalloc.c:58
-#, c-format
-msgid "memory allocate failure for %lu"
-msgstr ""
+#, fuzzy, c-format
+msgid "memory allocate failure for %zu"
+msgstr "pvsin: falla en asignación de memoria"
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, fuzzy, c-format
+msgid "failed to open file %s\n"
+msgstr "No fue posible abrir el archivo csd: %s"
+
+#: Engine/memfiles.c:54
+#, fuzzy, c-format
+msgid "failed to read file %s\n"
+msgstr "mp3in: %s: no se puede abrir el archivo"
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr "No es posible cargar %s\n"
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr "No es posible cargar %s, o SADIR no está definido\n"
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr "archivo %s (%ld bytes) cargado en memoria\n"
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr "Nombre de archivo vacío o nulo (NULL)"
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr "No es posible abrir el archivo PVOC-EX %s: %s"
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr "El archivo PVOC-EX %s no es un archivo de 32-bits punto flotante"
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr "El archivo PVOC-EX %s no está en formato AMP_FREQ"
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr "El archivo PVOC-EX %s está vacío!"
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr "Error leyendo el archivo PVOC-EX %s"
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr "Error leyendo el archivo PVOC-EX %s después de %d cuadros"
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 "tasa de muestreo de %s = %8.0f, tasa de muestreo de la orquesta = %8.0f"
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, fuzzy, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr "archivo %s (%ld bytes) cargado en memoria\n"
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr "csoundLoadSoundFile(): No es posible abrir '%s'"
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr "csoundLoadSoundFile(): Error leyendo '%s'"
 
-#: Engine/memfiles.c:669
-#, c-format
+#: Engine/memfiles.c:678
+#, fuzzy, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 "Archivo '%s' (sr = %d Hz, %d canal(es), %lu cuadros de muestra) cargado en "
 "la memoria\n"
@@ -1664,7 +1680,7 @@ msgstr "no es posible reabrir cscore.srt"
 msgid "sorting cscore.out ..\n"
 msgstr "ordenando cscore.out ...\n"
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr "\t... listo\n"
 
@@ -1672,8 +1688,8 @@ msgstr "\t... listo\n"
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr "SECCION %d:\n"
@@ -1683,11 +1699,11 @@ msgstr "SECCION %d:\n"
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr "fin del score.\t\t  amplitud global:"
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
@@ -1695,7 +1711,7 @@ msgstr ""
 "\n"
 "\t   número global de muestras fuera de rango:"
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
@@ -1704,90 +1720,90 @@ msgstr ""
 "\n"
 "%d errores en la ejecución\n"
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr "fin de la ejecución"
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr "no se ecribió sonido en el disco\n"
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr "\t número de muestras fuera de rango:"
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr "fin de la sección %d\t amplitud máxima de sección:"
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr " - nota descartada. Instrumento %s indefinido"
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr "apagado"
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr "prendido"
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr " - nota descartada. Instrumento %d(%d) indefinido"
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr " - nota descartada.  i%d (%s) tuvo %d errores de inicialización"
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr " - nota descartada.  i%d tuvo %d errores de inicialización"
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr "avance de %5.3f tiempos por petición del score\n"
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr "\t\t   T%7.3f - nota descartada. "
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr "el instrumento %s tuvo %d errores de inicialización\n"
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr "el instrumento %d tuvo %d errores de inicialización\n"
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr "terminando.\n"
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr "error en el score.  opcode ilegal %c (ASCII %d)\n"
@@ -1797,30 +1813,30 @@ msgstr "error en el score.  opcode ilegal %c (ASCII %d)\n"
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr "insert_score_event(): número o nombre de instrumento inválido\n"
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr "insert_score_event(): opcode desconocido: %c\n"
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr "insert_score_event(): faltan campos-p (p-fields)\n"
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr "No se puede encontrar el instrumento o opcode especificado"
 
@@ -1829,9 +1845,9 @@ msgstr "No se puede encontrar el instrumento o opcode especificado"
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, fuzzy, c-format
-msgid "Failed to open input file %s\n"
+msgid "parser: failed to open input file %s\n"
 msgstr "No fue posible abrir el archivo de salida %s"
 
 #: Engine/new_orc_parser.c:187
@@ -1855,29 +1871,29 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr "ERROR: caracter ilegal %c(%.2x) en línea del score: "
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
@@ -1885,231 +1901,235 @@ msgstr ""
 "\n"
 "\tel resto de la línea descartada\n"
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr "ERROR: demasidados campos-p (pfields): "
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr "sort: opcode ilegal %c(%.2x)\n"
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr "sread:  superado el espacio de texto, incremente MARGIN"
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr "error en el score:  "
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr "llamado desde la línea %d del macro %s"
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr "llamado desde la línea %d del macro %s"
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr "llamado desde la línea %d del macro %s"
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr "error interno op=%c"
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr "Base de reloj = %f\n"
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, fuzzy, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr "Sección con nombre >>>%s<<<\n"
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, fuzzy, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr "%d: Archivo %s posición %ld\n"
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr "Nombre %s no encontrado"
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, fuzzy, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr "sort: opcode ilegal %c(%.2x)\n"
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr "No hay evento previo en ^"
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr "      el resto de la línea descartado\n"
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr "ATENCION: instr %s no encontrado, asumiendo insno = -1\n"
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr "no es un opcode legal"
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr "comillas sin cerrar"
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr "   sustituído por cero.\n"
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, fuzzy, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr "sread: caracter inesperado %c, sección %d línea %d\n"
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr "    Sustituído por cero.\n"
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr "    Cadena truncada\n"
 
@@ -2160,11 +2180,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2195,129 +2215,129 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 #, fuzzy
 msgid "Error creating socket"
 msgstr "event: error creando el evento '%c'"
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr "error: hay nombre del archivo de entrada"
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr "No se puede iniciar la entrada de audio en tiempo real"
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, fuzzy, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr "isfinit: No se puede abrir %s"
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr "isfinit: No se puede abrir %s"
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr "audio_in %s tiene sr = %d, la orquesta tiene sr = %d"
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, fuzzy, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr "audio_in %s tiene %d canal(es), la orquesta tiene %d"
 
-#: InOut/libsnd.c:567
-#, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
-msgstr ""
+#: InOut/libsnd.c:575
+#, fuzzy, c-format
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
+msgstr "escribiendo %ld bloques de %d bytes de %s a %s"
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr "No se puede iniciar la salida de audio en tiempo real"
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, fuzzy, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr "sfinit: no se puede abrir %s"
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr "sfinit: no se puede abrir %s"
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, fuzzy, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr "sfinit: no se puede abrir %s"
 
-#: InOut/libsnd.c:864
-#, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
-msgstr ""
+#: InOut/libsnd.c:871
+#, fuzzy, c-format
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
+msgstr "escribiendo %ld bloques de %d bytes de %s a %s"
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr "escribiendo bloques de %d bytes de %s a %s"
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
-#, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
-msgstr ""
+#: InOut/libsnd.c:945
+#, fuzzy, c-format
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
+msgstr "escribiendo %ld bloques de %d bytes de %s a %s"
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, fuzzy, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr "escribiendo %ld bloques de %d bytes de %s a %s"
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
@@ -2325,11 +2345,11 @@ msgstr ""
 "(el disco parece estar lleno...\n"
 " cerrando el archivo ...)"
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr "\t... cerrado\n"
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr "No se escribe sonido en el disco\n"
 
@@ -2499,133 +2519,133 @@ msgstr " *** fin inesperado de pista MIDI\n"
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr " *** logitud inválidad de datos dinámicos en archivo MIDI\n"
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr " *** evento inesperado 0x%02X\n"
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr " *** datos inválidos en archivo MIDI\n"
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr " *** fin inesperado de mensaje system exclusive\n"
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr " *** mensaje system exclusive inválido en archivo MIDI\n"
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr "  Mensaje: "
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr "  Información de copyright: "
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr "  Nombre de la pista: "
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr "  Nombre del instrumento: "
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr "  Letra de la canción: "
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr " *** tempo inválido\n"
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr " *** terminación inválida de evento de pista\n"
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr " *** mensaje MIDI desconocido: 0x%02X\n"
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr " *** encabezado inválido para pista MIDI\n"
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr " *** error abriendo archivo MIDI '%s': %s"
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr "Leyendo archivo MIDI '%s'...\n"
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr " *** encabezado inválido del archivo MIDI\n"
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr " *** formato de archivo MIDI %d no está soportado\n"
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr " *** número inválido de pistas\n"
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr "ATENCION: archivo MIDI formato 0 con más de una pista\n"
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr " *** código de tiempo inválido: %d\n"
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr " *** formato de lista de muteo de pistas inválido\n"
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr " Pista %2d\n"
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr " Pista %2d está en silencio\n"
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr "listo.\n"
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr "fin de la pista MIDI en '%s'\n"
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr "No fue posible cargar el archivo MIDI."
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 #, fuzzy
 msgid "Cannot rewind MIDI score\n"
 msgstr "no es posible reabrir cscore.out"
@@ -2939,294 +2959,294 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr "número de canales inválido"
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, fuzzy, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr "ALSA: -B %d no está permitido para este dispositivo; use %d\n"
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, fuzzy, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr "ALSA: -b %d no está permitido para este dispositivo; use %d\n"
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 " *** ALSA: se debe especificar un nombre de dispositivo, no un número (por "
 "ejemplo:. -odac:hw:0,0)"
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 #, fuzzy
 msgid "Real-time audio input suspended"
 msgstr "Modulo MME en tiempo real para audio y MIDI por Istvan Varga\n"
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr "Error leyendo datos del dispositivo de entrada de audio"
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 #, fuzzy
 msgid "Real-time audio output suspended"
 msgstr "Modulo MME en tiempo real para audio y MIDI por Istvan Varga\n"
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr "Error escribiendo datos en el dispositivo de salida de audio"
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr "ALSA: dispositivo de entrada MIDI '%s' abierto\n"
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr "ALSA: dispositivo MIDI de salida '%s' abierto\n"
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr "no es posible abrir %s"
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr "Dispositivo de entrada MIDI '%s' abierto\n"
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr "Error abriendo el dispositivo de salida MIDI '%s'"
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr "Dispositivo de salida MIDI '%s' abierto\n"
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 #, fuzzy
 msgid "ALSASEQ input: memory allocation failure"
 msgstr "pvsout: falla en asignación de memoria"
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, fuzzy, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr " *** error abriendo el dispositivo de salida MIDI: %d (%s)"
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 #, fuzzy
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr "ALSA: dispositivo de entrada MIDI '%s' abierto\n"
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 #, fuzzy
 msgid "ALSASEQ output: memory allocation failure"
 msgstr "pvsout: falla en asignación de memoria"
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 #, fuzzy
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr "ALSA: dispositivo MIDI de salida '%s' abierto\n"
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, fuzzy, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr "No se puede crear el archivo de salida\n"
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, fuzzy, c-format
 msgid "cannot determine card number: %s"
 msgstr "no es posible redefinir %s"
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, fuzzy, c-format
 msgid "cannot open control for card %d: %s"
 msgstr "no es posible abrir el archivo de score %s"
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, fuzzy, c-format
 msgid "cannot determine device number: %s"
 msgstr "no es posible redefinir %s"
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 #, fuzzy
 msgid "can't open sequencer\n"
 msgstr "no es posible abrir %s"
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3245,11 +3265,16 @@ msgstr "ALSA: dispositivo MIDI de salida '%s' abierto\n"
 msgid "%d: %s (%d channels) \n"
 msgstr "(%d canales)\n"
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, fuzzy, c-format
 msgid "requested device %d out of range"
 msgstr "el número del dispositivo está fuera de rango"
 
+#: InOut/rtauhal.c:280
+#, fuzzy, c-format
+msgid "requested device %d (%s) out of range"
+msgstr "el número del dispositivo está fuera de rango"
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3282,10 +3307,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3355,19 +3380,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, fuzzy, c-format
 msgid "connecting channel %d to %s \n"
 msgstr "error abriendo el dispositivo de salida %d: %s"
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3375,26 +3400,26 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 #, fuzzy
 msgid "put port not connected\n"
 msgstr "---> No es posible conectar \n"
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3402,148 +3427,148 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 #, fuzzy
 msgid "output port not connected\n"
 msgstr "---> No es posible conectar \n"
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 " *** rtjack: se perdió la conexión con el servidor JACK, reconectando..."
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 #, fuzzy
 msgid "JACK real-time audio module for Csound\n"
 msgstr "Modulo MME en tiempo real para audio y MIDI por Istvan Varga\n"
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 #, fuzzy
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr "pvsout: falla en asignación de memoria"
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3551,69 +3576,69 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr "salida"
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr "entrada"
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr "Se debe especificar un número de dispositivo, no un nombre"
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr "No hay dispositivos de sonido disponibles"
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 #, fuzzy
 msgid "closing device\n"
 msgstr "error cerrando el dispositivo de entrada"
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr "PortAudio: usando dispositivo ALSA '%s'\n"
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3793,305 +3818,305 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr "Error registrando el opcode '%s'"
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr "FLsetsnap: tabla inválida"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr "Si"
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 #, fuzzy
 msgid "FLsavesnap: cannot open file"
 msgstr "atsa: no es posible abrir el archivo '%s'"
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 #, fuzzy
 msgid "FLloadsnap: cannot open file"
 msgstr "atsa: no es posible abrir el archivo '%s'"
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr "fin del hilo de widgets\n"
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 #, fuzzy
 msgid "FL_run: memory allocation failure"
 msgstr "pvsin: falla en asignación de memoria"
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 #, fuzzy
 msgid "FLslider: invalid slider type"
 msgstr "%s tasa de muestreo inválida"
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 #, fuzzy
 msgid "FLknob: invalid knob type"
 msgstr "chano: índice inválido"
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 #, fuzzy
 msgid "FLbutton: invalid button type"
 msgstr "FLsetsnap: tabla inválida"
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 #, fuzzy
 msgid "FLroller: invalid roller type"
 msgstr "cella: tabla de modulador inválida"
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 #, fuzzy
 msgid "FLkeyIn: invalid table number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 #, fuzzy
 msgid "FLsldBnkSet: invalid table number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 #, fuzzy
 msgid "FLsldBnkSet: invalid outable number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 #, fuzzy
 msgid "FLsldBnkSetk: invalid table number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 #, fuzzy
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 #, fuzzy
 msgid "FLslidBnkSetk: invalid table number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 #, fuzzy
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4122,7 +4147,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr "%s\t%ld puntos, máximo %5.3f\n"
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4143,69 +4168,69 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr "no está soportado en esta terminal"
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr "cpstun: tabla inválida"
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, fuzzy, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr "chani: índice inválido"
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 #, fuzzy
 msgid "Excess channels ignored\n"
 msgstr "falta el número de canales"
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4241,37 +4266,37 @@ msgstr "pvsin: índice inválido"
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr "parámetros de modo inválidos"
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr "parámetros de canal inválidos"
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr "el canal ya existe"
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr "variable de exportación inválida"
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 #, fuzzy
 msgid "read failure in sensekey\n"
 msgstr "pvsfread: el archivo está vacío!\n"
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 #, fuzzy
 msgid "sensekey error:"
 msgstr "error en el score:  "
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4279,7 +4304,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr "NaN en pow\n"
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4289,12 +4314,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, fuzzy, c-format
 msgid "compileorc: could not open %s\n"
 msgstr "ATENCION: no fue posible retirar %s\n"
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, fuzzy, c-format
 msgid "compileorc: could not read %s\n"
 msgstr "ATENCION: no fue posible retirar %s\n"
@@ -4326,27 +4351,31 @@ msgstr ""
 "diskin2: warning: tasa de muestreo del archivo (%d) != de tasa de muestreo "
 "de la orquesta (%d)\n"
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
-#, c-format
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
+#, fuzzy, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
+"Archivo '%s' (sr = %d Hz, %d canal(es), %lu cuadros de muestra) cargado en "
+"la memoria\n"
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
-#, c-format
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
+#, fuzzy, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
+"Archivo '%s' (sr = %d Hz, %d canal(es), %lu cuadros de muestra) cargado en "
+"la memoria\n"
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr "diskin2: no ha sido inicializado"
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4383,41 +4412,41 @@ msgstr "soundouts: no ha sido inicializado"
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr "soundin: número inválido de canales"
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr "soundin: formato de muestra desconocido"
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr "soundin: %s: no se puede abrir el archivo"
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 "soundin: número de argumentos de salida no coincide con el número de canales "
 "del archivo"
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, fuzzy, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 "soundin: warning: tasa de muestreo del archivo (%d) != de tasa de muestreo "
 "de la orquesta (%d)\n"
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr "soundin: no ha sido inicializado"
 
@@ -4480,7 +4509,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr "dispfft: no ha sido inicializado"
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr "iperiod ilegal"
 
@@ -4560,11 +4589,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr "turnoff2: número de instrumento inválido"
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr "turnoff2: parámetro de modo inválido"
 
@@ -4598,11 +4627,11 @@ msgstr "pgmassign: número de programa inválido"
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4614,165 +4643,165 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, fuzzy, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr "csoundRealFFTnp2(): tamaño de la FFT inválido"
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr "csoundInverseRealFFTnp2(): tamaño de la FFT inválido"
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr "csoundRealFFTnp2(): tamaño de la FFT inválido"
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr "tablexkt: no ha sido inicializado"
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr "pvsynth: No ha sido inicializado.\n"
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 "pvscross: las señales de fuente y destino deben tener el mismo formato\n"
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr "pvscross: no ha sido inicializado\n"
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr "pvsfread: el archivo está vacío!\n"
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr "pvsfread: el valor de ichan es mayor que el número de canales.\n"
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr "pvsfread: ichan no puede ser negativo.\n"
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr "pvsfread: no ha sido inicializado.\n"
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr "pvsmaska: tabla-f (ftable) demasiado pequeña.\n"
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr "pvsmaska: no ha sido inicializada\n"
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr "pvsftw: no ha sido inicializado\n"
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr "pvsftr: no ha sido inicializado\n"
 
@@ -5042,31 +5071,36 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+#, fuzzy
+msgid "Invalid window size"
+msgstr "GEN53: tabla de ventana inválida"
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr "pvsanal: no ha sido inicializado.\n"
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr "pvsynth: no ha sido inicializado.\n"
 
@@ -5138,17 +5172,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5215,108 +5249,108 @@ msgstr ""
 "*** Esta versión de Csound no fue compilada con soporte para eventos remotos "
 "***\n"
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr "diskinfo no puede abrir %s"
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 #, fuzzy
 msgid "insufficient arguments for format"
 msgstr "argumentos insuficientes por fareytable"
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 #, fuzzy
 msgid "invalid format string"
 msgstr "nombre inválido para el instrumento"
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 #, fuzzy
 msgid "too many arguments for format"
 msgstr "demasiados argumentos de entrada %s"
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 #, fuzzy
 msgid "invalid format"
 msgstr "formato de muestra inválido: %d"
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5333,93 +5367,100 @@ msgstr "arg2 es cero"
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+#, fuzzy
+msgid "incomplete number of input arguments"
+msgstr "Número equivocado de argumentos de entrada"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr "linseg no ha sido inicializado (krate)\n"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr "linseg: no ha sido inicializado (arate)\n"
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr "ival%d es cero"
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr "expseg (krate): no ha sido inicializado"
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr "expseg (arate): no ha sido inicializado"
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr "envlpx(krate): no ha sido inicializado"
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 #, fuzzy
 msgid "cosseg not initialised (krate)\n"
 msgstr "linseg no ha sido inicializado (krate)\n"
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 #, fuzzy
 msgid "cosseg: not initialised (arate)\n"
 msgstr "linseg: no ha sido inicializado (arate)\n"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 #, fuzzy
 msgid "cossegr: not initialised (arate)\n"
 msgstr "linseg: no ha sido inicializado (arate)\n"
@@ -5503,11 +5544,6 @@ msgstr "oscil3(krate): no ha sido inicializado"
 msgid "oscil3: not initialised"
 msgstr "oscil3: no ha sido inicializado"
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr "foscil: no ha sido inicializado"
@@ -5524,42 +5560,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr "adsyn: no ha sido inicializado"
 
@@ -5599,120 +5635,115 @@ msgstr "pluck: no ha sido inicializado"
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr "lpread: no ha sido inicializado"
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr "lpinterpol: no ha sido inicializado"
 
@@ -5770,8 +5801,8 @@ msgstr "deltapn: no ha sido inicializado"
 msgid "deltap3: not initialised"
 msgstr "deltap3: no ha sido inicializado"
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr "tiempo de bucle ilegal"
 
@@ -5792,11 +5823,12 @@ msgstr "alpass: no ha sido inicializado"
 msgid "revlpsiz inconsistent\n"
 msgstr "revlpsiz inconsistente\n"
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
-msgstr "reverb: no ha sido inicializado"
+#: OOps/ugens6.c:1176
+#, fuzzy
+msgid "reverb: not initialised"
+msgstr "reverbx: no ha sido inicializado"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr "pan: no ha sido inicializado"
 
@@ -5929,192 +5961,192 @@ msgstr "printk: no ha sido inicializado"
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr "printks: no ha sido inicializado"
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+#, fuzzy
+msgid "Insufficient arguments in formatted printing"
+msgstr "argumentos insuficientes por fareytable"
+
+#: OOps/ugrw1.c:1224
 #, fuzzy, c-format
 msgid "Formatting string too long: %s"
 msgstr "cadena demasiado larga"
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr "inz index > isizea. Nada escrito."
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr "inz index < 0. Nada escrito."
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, fuzzy, c-format
 msgid "table: could not find ftable %d"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, fuzzy, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr "vdelay: no ha sido inicializado"
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr "vdelay3: no ha sido inicializado"
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr "multitap: no ha sido inicializado"
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr "reverbx: no ha sido inicializado"
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 #, fuzzy
 msgid "Failed to set multicast"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, fuzzy, c-format
 msgid "ftable %.2f does not exist"
 msgstr "la tabla-f (ftable) %.2f no existe"
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr ""
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr "OSC no está corriendo"
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr "número inválido de argumentos"
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, fuzzy, c-format
 msgid "Invalid ftable no. %d"
 msgstr "Tabla-f (ftable) no. %f inválida"
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 #, fuzzy
 msgid "OSC internal error"
 msgstr "error interno op=%c"
@@ -6198,7 +6230,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr "t-var no ha sido inicializado"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6210,192 +6242,208 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 #, fuzzy
 msgid "array-variable not initialised"
 msgstr "t-variable no ha sido inicializado"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 #, fuzzy
 msgid "array-variable not a vector"
 msgstr "t-variable no ha sido inicializado"
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 #, fuzzy
 msgid "array-variable dimensions do not match"
 msgstr "t-variable no ha sido inicializado"
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 #, fuzzy
 msgid "array-variable types do not match"
 msgstr "t-variable no ha sido inicializado"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 #, fuzzy
 msgid "array-var not initialised"
 msgstr "t-var no ha sido inicializado"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 #, fuzzy
 msgid "inconsistent start, end parameters"
 msgstr "%s sr, kr, ksmps inconsistentes"
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+#, fuzzy
+msgid "slice increment must be positive"
+msgstr "valor incorrecto para 0dbfs: debe ser positivo."
+
+#: Opcodes/arrays.c:1730
 #, fuzzy, c-format
 msgid "%s not found"
 msgstr "Nombre %s no encontrado"
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 #, fuzzy
 msgid "array sizes do not match\n"
 msgstr "t-variable no ha sido inicializado"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 #, fuzzy
 msgid "requested row is out of range\n"
 msgstr "el número del dispositivo está fuera de rango"
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 #, fuzzy
 msgid "requested col is out of range\n"
 msgstr "el número del dispositivo está fuera de rango"
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 #, fuzzy
 msgid "Error: index out of range\n"
 msgstr "error: el número de dispositivo está fuera de rango"
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6420,7 +6468,7 @@ msgstr "vco: no ha sido inicializado"
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6507,21 +6555,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6563,134 +6611,134 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr "lpread: no ha sido inicializado"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, fuzzy, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr "No fue posible abrir %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, fuzzy, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr "subinstr: número de argumentos de salida es mayor que nchnls"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, fuzzy, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr "subinstr: número de argumentos de salida es mayor que nchnls"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 #, fuzzy
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr " *** encabezado inválido del archivo MIDI\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, fuzzy, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr "el canal '%s' no existe"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, fuzzy, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr "No fue posible abrir %s"
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6698,28 +6746,36 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 #, fuzzy
 msgid "format not understood\n"
 msgstr "Nombre %s no encontrado"
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 #, fuzzy
 msgid "insufficient arguments for fareytable"
@@ -6730,9 +6786,9 @@ msgstr "argumentos insuficientes por fareytable"
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6745,10 +6801,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr "GEN32: tabla-f (ftable) fuente %d no encontrada"
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6759,7 +6811,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6767,57 +6819,57 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, fuzzy, c-format
 msgid "could not find DSP %p for deletion"
 msgstr "Tabla %f no encontrada"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 #, fuzzy
 msgid "no factory available\n"
 msgstr "No hay dispositivos de salida disponibles"
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, fuzzy, c-format
 msgid "factory not found %d\n"
 msgstr "Nombre %s no encontrado"
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 #, fuzzy
 msgid "wrong number of input args\n"
 msgstr "Número equivocado de argumentos de entrada"
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 #, fuzzy
 msgid "wrong number of output args\n"
 msgstr "número equivocado de argumentos"
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 #, fuzzy
 msgid "no dsp instances available\n"
 msgstr "no hay dispositivos de entrada disponibles"
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, fuzzy, c-format
 msgid "dsp instance not found %d\n"
 msgstr "retirada instancia del instrumento %d\n"
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, fuzzy, c-format
 msgid "dsp control %s not found\n"
 msgstr "Nombre %s no encontrado"
@@ -6834,32 +6886,32 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 #, fuzzy
 msgid "error allocating fluid engine\n"
 msgstr "error cerrando el dispositivo de entrada"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6877,7 +6929,7 @@ msgstr "Leyendo archivo MIDI '%s'...\n"
 msgid "invalid file handle"
 msgstr " *** encabezado inválido del archivo MIDI\n"
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 #, fuzzy
 msgid "invalid file name"
 msgstr "%s tasa de muestreo inválida"
@@ -6887,27 +6939,27 @@ msgstr "%s tasa de muestreo inválida"
 msgid "error opening file '%s'"
 msgstr " *** error abriendo archivo MIDI '%s': %s"
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, fuzzy, c-format
 msgid "error opening sound file '%s'"
 msgstr " *** error abriendo el archivo de salida MIDI '%s'"
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 #, fuzzy
 msgid "fouti: invalid file handle"
 msgstr "pvsin: índice inválido"
@@ -6962,13 +7014,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr "freeverb: no ha sido inicializado"
 
@@ -6994,12 +7046,12 @@ msgstr "ftconv: no ha sido inicializado"
 msgid "Error deleting ftable %d"
 msgstr "reemplazando tabla-f (ftable) %d anterior"
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -7051,30 +7103,30 @@ msgstr "mp3in: %s: no se puede abrir el archivo"
 msgid "ftsave: failed to write file"
 msgstr "mp3in: %s: no se puede abrir el archivo"
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, fuzzy, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr "error abriendo el dispositivo de salida %d: %s"
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, fuzzy, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr "error abriendo el dispositivo de salida %d: %s"
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 #, fuzzy
 msgid "fastab: incorrect table number"
 msgstr "copyTabElems: número inválido de tabla fuente"
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -7102,49 +7154,45 @@ msgstr "copyTabElems: número inválido de tabla fuente"
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, fuzzy, c-format
 msgid "tab off end %d"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 #, fuzzy
 msgid "tab_init: incorrect table number"
 msgstr "copyTabElems: número inválido de tabla fuente"
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 #, fuzzy
 msgid "adsynt2: wavetable not found!"
 msgstr "GEN32: tabla-f (ftable) fuente %d no encontrada"
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 #, fuzzy
 msgid "adsynt2: freqtable not found!"
 msgstr "GEN32: tabla-f (ftable) fuente %d no encontrada"
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 #, fuzzy
 msgid "adsynt2: amptable not found!"
 msgstr "Tabla %f no encontrada"
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 #, fuzzy
 msgid "adsynt2: not initialised"
 msgstr "adsynt: no ha sido inicializado"
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 #, fuzzy
 msgid "max_k: invalid imaxflag value"
 msgstr "%s valor de ksmps inválido"
@@ -7187,7 +7235,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 #, fuzzy
 msgid "vphaseseg: invalid num. of elements"
 msgstr "vecdelay : número inválido de argumentos"
@@ -7390,362 +7438,362 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr "vport : tabla inválida"
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, fuzzy, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, fuzzy, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, fuzzy, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, fuzzy, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, fuzzy, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, fuzzy, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, fuzzy, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, fuzzy, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, fuzzy, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, fuzzy, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, fuzzy, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, fuzzy, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, fuzzy, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, fuzzy, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, fuzzy, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, fuzzy, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, fuzzy, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, fuzzy, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, fuzzy, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr "GEN53: número inválido de tabla fuente"
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 #, fuzzy
 msgid "vectorop: invalid num of elements"
 msgstr "vectorop : número inválido de argumentos"
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 #, fuzzy
 msgid "vport: invalid table length or num of elements"
 msgstr "vport : tamaño inválido de tabla"
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 #, fuzzy
 msgid "vport: invalid table"
 msgstr "vport : tabla inválida"
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 #, fuzzy
 msgid "vport: invalid init table length or num of elements"
 msgstr "vport : tamaño inválido de tabla"
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 #, fuzzy
 msgid "vport: invalid init table"
 msgstr "vport : tabla inválida"
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 #, fuzzy
 msgid "vrandh: Invalid table."
 msgstr "vrandh: tabla inválida"
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 #, fuzzy
 msgid "vrandi: Invalid table."
 msgstr "vrandi : tabla inválida"
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 #, fuzzy
 msgid "vecdelay: invalid num of elements"
 msgstr "vecdelay : número inválido de argumentos"
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 #, fuzzy
 msgid "vecdly: invalid output table"
 msgstr "vecdly : tabla de modulador inválida"
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 #, fuzzy
 msgid "vecdly: invalid input table"
 msgstr "vecdly : tabla de ventana inválida"
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 #, fuzzy
 msgid "vecdly: invalid delay table"
 msgstr "vecdly : tabla de modulador inválida"
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 #, fuzzy
 msgid "vecdly: not initialised"
 msgstr "vecdly : no ha sido inicializado"
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 #, fuzzy
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr "vectorop : número inválido de argumentos"
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr "tableseg: no ha sido inicializado"
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr "tablexseg: no ha sido inicializado"
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 #, fuzzy
 msgid "vdelayk: not initialised"
 msgstr "vdelayk: no ha sido inicializado"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 #, fuzzy
 msgid "cella: invalid num of elements"
 msgstr "cella: número inválido de argumentos"
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 #, fuzzy
 msgid "cella: invalid output table"
 msgstr "cella: tabla de modulador inválida"
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 #, fuzzy
 msgid "cella: invalid initial state table"
 msgstr "cella: tabla de modulador inválida"
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 #, fuzzy
 msgid "cella: invalid rule table"
 msgstr "cella: tabla de modulador inválida"
@@ -7832,15 +7880,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7850,7 +7898,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr "grain4: no ha sido inicializado"
 
@@ -7866,54 +7914,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -8056,69 +8104,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -8153,15 +8221,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 #, fuzzy
 msgid "liveconv: not initialised"
 msgstr "vco: no ha sido inicializado"
@@ -8270,19 +8338,19 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr "mp3in: %s: no se puede abrir el archivo"
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, fuzzy, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 "mp3in: atención: tasa de muestreo del archivo (%d) != de tasa de muestreo de "
 "la orquesta (%d)\n"
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, fuzzy, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr "mp3in: %s: no se puede abrir el archivo"
@@ -8316,93 +8384,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr "grain3: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr "rnd31: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr "vco2ft: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr "vco2: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr "delayk: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr "vdel_k: no ha sido inicializado"
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8418,6 +8486,15 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+#, fuzzy
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr "El archivo PVOC-EX %s no está en formato AMP_FREQ"
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8485,37 +8562,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8523,7 +8600,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8594,8 +8671,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8618,16 +8694,16 @@ msgstr "transeg: no ha sido inicializado (arate)\n"
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr "median: no ha sido inicializado (arate)\n"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr "median no ha sido inicializado (krate)\n"
 
@@ -8641,12 +8717,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8659,18 +8735,10 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
-msgstr ""
+#: Opcodes/pluck.c:172
+#, fuzzy
+msgid "wgpluck:Could not allocate for initial shape"
+msgstr "pluck: no ha sido inicializado"
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
 msgid "psynth: first input not in TRACKS format\n"
@@ -8732,7 +8800,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8745,30 +8813,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8776,8 +8844,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr "pvbufread: no ha sido inicializado"
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8795,39 +8863,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr "pvinterp: no ha sido inicializado"
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr "pvcross: no ha sido inicializado"
 
@@ -8844,7 +8912,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8969,19 +9037,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -9022,12 +9090,12 @@ msgstr "no está soportado en esta terminal"
 msgid "fsig format not supported"
 msgstr " *** formato de archivo MIDI %d no está soportado\n"
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9327,125 +9395,125 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, fuzzy, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, fuzzy, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, fuzzy, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, fuzzy, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, fuzzy, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, fuzzy, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, fuzzy, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, fuzzy, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, fuzzy, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, fuzzy, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr "retirada instancia del instrumento %s\n"
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, fuzzy, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr "No se puede abrir el archivo de salida %s\n"
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9519,31 +9587,35 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr "sndwarpst: no ha sido inicializado"
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 #, fuzzy
 msgid "output array too small\n"
 msgstr "t-var no ha sido inicializado"
@@ -9568,21 +9640,21 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 #, fuzzy
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr "argumentos insuficientes por fareytable"
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, fuzzy, c-format
 msgid "%c: data type not supported\n"
 msgstr " *** formato de archivo MIDI %d no está soportado\n"
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9602,162 +9674,167 @@ msgstr "spat3d: no ha sido inicializado"
 msgid "spat3di: not initialised"
 msgstr "spat3di: no ha sido inicializado"
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr "specdisp: no ha sido inicializado"
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr "specptrk: no ha sido inicializado"
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr "specsum: no ha sido inicializado"
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr "specaddm: no ha sido inicializado"
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr "specdiff: no ha sido inicializado"
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr "specscal: no ha sido inicializado"
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 #, fuzzy
 msgid "spechist: local buffers not initialised"
 msgstr "spechist: no ha sido inicializado"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr "spechist: no ha sido inicializado"
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr "specfilt: no ha sido inicializado"
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr ""
@@ -9786,7 +9863,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9865,7 +9942,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9878,7 +9955,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9972,34 +10049,34 @@ msgstr "vibrato(krate): no ha sido inicializado"
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr "vcomb: no ha sido inicializado"
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr "valpass: no ha sido inicializado"
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -10008,12 +10085,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -10021,128 +10098,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr "ATSREAD: no ha sido inicializado"
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr "ATSREADNZ: no ha sido inicializado"
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr "ATSADD: no ha sido inicializado"
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -10206,7 +10283,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10220,117 +10297,118 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 #, fuzzy
 msgid "insufficient valid speakers"
 msgstr "términos insuficientes"
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, fuzzy, c-format
 msgid "could not find layout table no.%d"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 #, fuzzy
 msgid "Missing fields in vbapmove\n"
 msgstr "Falta endin"
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 #, fuzzy
 msgid "Output array not initialised"
 msgstr "t-var no ha sido inicializado"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 #, fuzzy
 msgid "could not find layout table no.0"
 msgstr "número de tabla fuente (srctable) desconocido"
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 #, fuzzy
 msgid "Output array in vpabmove not initalised"
 msgstr "t-variable no ha sido inicializado"
@@ -10339,34 +10417,69 @@ msgstr "t-variable no ha sido inicializado"
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr "vpvoc: no ha sido inicializado"
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+#, fuzzy
+msgid "vstinit: Error loading effect."
+msgstr "event: error creando el evento '%c'"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+#, fuzzy
+msgid "vstaudio: too many input args"
+msgstr "demasiados argumentos de entrada"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10394,61 +10507,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10494,830 +10607,867 @@ msgid "Error opening log file '%s': %s\n"
 msgstr " *** error abriendo archivo MIDI '%s': %s"
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
 #, fuzzy
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 "\n"
 "%d errores en la ejecución\n"
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
-msgstr ""
+#, fuzzy
+msgid "-n          no sound onto disk"
+msgstr "no se ecribió sonido en el disco\n"
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
-msgstr ""
+#, fuzzy
+msgid "-i fnam     sound input filename"
+msgstr "error: hay nombre del archivo de entrada"
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
-msgstr ""
+#: Top/argdecode.c:138
+#, fuzzy
+msgid "-h          no header on output soundfile"
+msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
-msgstr ""
-
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
-msgstr ""
-
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
-msgstr ""
+#: Top/argdecode.c:175
+#, fuzzy
+msgid "-Q dnam     select MIDI output device"
+msgstr "Dispositivo de salida MIDI '%s' abierto\n"
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
-msgstr ""
+#, fuzzy
+msgid "  Set output file format"
+msgstr "No fue posible abrir el archivo de salida %s"
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-#, fuzzy
-msgid "--nchnls=N\t\t override number of audio channels"
-msgstr "número de canales inválido"
+msgid "                          key number to pfield N as linear octave"
+msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
-msgstr ""
+#, fuzzy
+msgid "--nchnls=N              override number of audio channels"
+msgstr "número de canales inválido"
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
-msgstr ""
+#, fuzzy
+msgid "--nchnls_i=N            override number of input audio channels"
+msgstr "número de canales inválido"
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr ""
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
+msgstr ""
+
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr ""
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 #, fuzzy
 msgid "stdout not supported on this platform"
 msgstr "no está soportado en esta terminal"
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 #, fuzzy
 msgid "stdin not supported on this platform"
 msgstr "no está soportado en esta terminal"
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, fuzzy, c-format
 msgid "%d audio output devices \n"
 msgstr "Los dispositivos de salida disponibles son:\n"
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, fuzzy, c-format
 msgid "%d audio input devices \n"
 msgstr "Los dispositivos de entrada son:\n"
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, fuzzy, c-format
 msgid "%d MIDI output devices \n"
 msgstr "Dispositivo de salida MIDI '%s' abierto\n"
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, fuzzy, c-format
 msgid "%d MIDI input devices \n"
 msgstr "Dispositivo de entrada MIDI '%s' abierto\n"
@@ -11461,335 +11611,335 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, fuzzy, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr "Csound version %s beta (64-bit) %s\n"
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, fuzzy, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr "Csound version %s (64-bit) %s\n"
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, fuzzy, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr "Csound version %s beta (32-bit) %s\n"
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, fuzzy, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr "Csound version %s (32-bit) %s\n"
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr "ATENCION: "
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 #, fuzzy
 msgid "Title tag in output soundfile (no spaces)"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 #, fuzzy
 msgid "Short Copyright tag in output soundfile"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, fuzzy, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr "ATENCION: no se puede abrir el archivo csoundrc %s\n"
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr "Falla de lectura del archivo csd... deteniendo"
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr "nombre de la orquesta:  %s\n"
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, fuzzy, c-format
-msgid "Failed to open input file - %s\n"
+msgid "main: failed to open input file - %s\n"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: Top/main.c:254
+#: Top/main.c:255
 #, fuzzy
 msgid "cannot compile orchestra"
 msgstr "No es posible abrir el archivo de orquesta %s"
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr "fin de compilación de la orquesta"
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr "no es posible abrir el archivo de score %s"
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr "  ... extrayendo ...\n"
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr "Revisión de sintaxis completa.\n"
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11887,170 +12037,189 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+#, fuzzy
+msgid "missing \" to terminate string"
+msgstr "argumento sobrante o faltante"
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr "Creando %s (%p)\n"
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 #, fuzzy
 msgid "and cannot remove"
 msgstr "No fue posible reabrir %s"
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, fuzzy, c-format
 msgid "and cannot remove %s"
 msgstr "No fue posible reabrir %s"
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, fuzzy, c-format
 msgid "opened %s\n"
 msgstr "No es posible abrir %s"
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, fuzzy, c-format
 msgid "closing %s\n"
 msgstr "error cerrando el dispositivo de entrada"
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, fuzzy, c-format
 msgid "and cannot remove %s\n"
 msgstr "No fue posible reabrir %s"
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr "El archivo %s ya existe"
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr "**** Información de licencia ****\n"
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr "**** Fin de información de licencia ****\n"
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr "INCIANDO ARCHIVO\n"
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr "Creando opciones\n"
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr "Saltando <CsOptions>\n"
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr "Creando orquesta\n"
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr "Creando score\n"
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 #, fuzzy
 msgid "Skipping <CsMidifileB>\n"
 msgstr "Saltando <CsOptions>\n"
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr "Etiqueta CSD desconocida: %s\n"
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr "No se encontró la etiqueta <CsoundSynthesizer> en el archivo CSD.\n"
 
@@ -12063,26 +12232,78 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+#, fuzzy
+msgid "UDP: error creating socket"
+msgstr "event: error creando el evento '%c'"
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, fuzzy, c-format
+msgid "could not retrieve channel %s"
+msgstr "soundin: número inválido de canales"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+#, fuzzy
+msgid "error creating socket"
+msgstr "event: error creando el evento '%c'"
+
+#: Top/server.c:310
+#, fuzzy
+msgid "UDP Server: already running"
+msgstr "OSCrecv ya está corriendo"
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+#, fuzzy
+msgid "UDP Server: failed to allocate memory"
+msgstr "memoria insuficiente para inicializar globales remotas."
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr "Error: utilidad '%s' no encontrada"
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr "Error: utilidad no encontrada"
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr "Las utilidades disponibles son:\n"
 
@@ -12099,8 +12320,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr "salvando datos ATS..."
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr "listo!\n"
 
@@ -12227,170 +12448,170 @@ msgstr ""
 "\n"
 "ERROR: no es posible abrir %s para escritura\n"
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr "Error: sonido no optimizado !"
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr "atsa: no es posible abrir el archivo '%s'"
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr "atsa: el archivo tiene %d canales pero debe ser mono !"
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12418,48 +12639,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12594,125 +12815,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12720,7 +12941,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12856,87 +13077,87 @@ msgstr "Frecuencia de corte del filtro = %f\n"
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr "analizando armónico #%d\n"
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr "No fue posible escribir archivo SDIF\n"
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr "No se puede crear el archivo de salida\n"
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -13019,120 +13240,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -13144,13 +13365,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -13188,10 +13409,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13285,47 +13558,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13539,7 +13812,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13566,7 +13839,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13582,37 +13855,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr "No fue posible abrir el archivo de salida %s"
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr "No fue posible abrir %s"
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13775,35 +14048,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr "error de lectura del archivo de audio"
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13977,116 +14262,125 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr "Instrumento no definido"
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr "Instrumento no definido"
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "perf-pass statements illegal in header blk (%s)\n"
+#~ msgstr ""
+#~ "enunciados de ejecución (perf-pass) son ilegales en el bloque de "
+#~ "encabezado\n"
+
+#~ msgid "reverb: not intialised"
+#~ msgstr "reverb: no ha sido inicializado"
+
 #~ msgid "Macro expansion symbol ($) without macro name"
 #~ msgstr "Símbolo de expansión de macro ($) sin nombre de macro"
 
@@ -14184,9 +14478,6 @@ msgstr ""
 #~ msgid "unmatched quotes"
 #~ msgstr "comillas sin cerrar"
 
-#~ msgid "missing or extra arg"
-#~ msgstr "argumento sobrante o faltante"
-
 #, fuzzy
 #~ msgid "too many input args\n"
 #~ msgstr "demasiados argumentos de entrada\n"
@@ -14230,9 +14521,6 @@ msgstr ""
 #~ msgid "diskin: not initialised"
 #~ msgstr "diskin: no ha sido inicializado"
 
-#~ msgid "OSCrecv is already running"
-#~ msgstr "OSCrecv ya está corriendo"
-
 #, fuzzy
 #~ msgid "%s not found, %d opcodes"
 #~ msgstr "Tabla %f no encontrada"
@@ -14257,9 +14545,6 @@ msgstr ""
 #~ "nombre de salida usado previamente, el tipo '%c' debe estar definido una "
 #~ "sola vez"
 
-#~ msgid "bad value for 0dbfs: must be positive."
-#~ msgstr "valor incorrecto para 0dbfs: debe ser positivo."
-
 #~ msgid "schedule event ignored. instr %d undefined\n"
 #~ msgstr "evento de schedule ignorado. instr %d no definido\n"
 
@@ -14486,9 +14771,6 @@ msgstr ""
 #~ msgid "multiple uses of xout in the same opcode definition"
 #~ msgstr "uso de multiples xout en la misma definición de opcode"
 
-#~ msgid "too many input args"
-#~ msgstr "demasiados argumentos de entrada"
-
 #~ msgid "xin is allowed only in user defined opcodes"
 #~ msgstr ""
 #~ "xin solo está permitido dentro de opcodes definidos por el usuario (UDOs)"
diff --git a/po/french.po b/po/french.po
index 8b5a294..65ed615 100644
--- a/po/french.po
+++ b/po/french.po
@@ -35,8 +35,8 @@ msgstr "auxlist pour l'instr %d (%p) :\n"
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
-msgstr "\tauxch à %p : taille %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
+msgstr "\tauxch à %p : taille %zu, auxp %p, endp %p\n"
 
 #: Engine/auxfd.c:213
 #, c-format
@@ -102,7 +102,7 @@ msgid "(unknown error)"
 msgstr "(erreur inconnue)"
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr "Pas assez de mémoire\n"
 
@@ -110,11 +110,11 @@ msgstr "Pas assez de mémoire\n"
 msgid "Null file name in copy_to_corefile"
 msgstr "Nom de fichier nul dans copy_to_corefile"
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr "pas assez de mémoire (realloc a retourné NULL)\n"
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr "échec de curl_easy_perform() : %s\n"
@@ -124,43 +124,43 @@ msgstr "échec de curl_easy_perform() : %s\n"
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr "Impossible de trouver l'information sémantique pour l'instrument '%i'"
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr "Paramètre barrier NULL non valide"
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr "Paramètre non valide, thread_count doit être > 0"
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr "L'allocation de barrier a échoué"
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr "Paramètre set NULL non valide"
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr "L'allocation de set a échoué"
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr "Paramètre non valide, set n'est pas un ensemble"
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr "Paramètre data NULL non valide"
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr "Echec de l'allocation d'un élément de set."
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr "Paramètre set_element NULL non valide"
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr "Paramètre out_set_element NULL non valide"
 
@@ -173,11 +173,11 @@ msgstr "Index de verrou global faiblement spécifié : %i [max : %i]\n"
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr "Nom de paramètre NULL non valide pour une variable globale\n"
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr "Insertion de constructions du parallélisme dans AST\n"
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr "L'instr %d requiert des verrous"
@@ -215,48 +215,53 @@ msgstr "L'opcode est obsolète"
 msgid "Not a proper list of ints"
 msgstr "N'est pas une liste d'ints correcte"
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 "ERREUR : crochet non apparié dans la spécification du type d'argument de "
 "tableau\n"
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr "create_opcode : aucune règle pour traiter une instruction de type %d\n"
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr "%s taux d'échantillonnage non valide"
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr "%s taux de contrôle non valide"
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, c-format
+msgid "%s invalid number of samples"
+msgstr "%s nombre d'échantillons non valide"
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr "%s valeur de ksmps non valide"
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr "%s sr, kr, ksmps contradictoires\n"
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr "%s sr, kr, ksmps contradictoires\n"
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 "mauvaise valeur pour 0dbfs : elle doit être positive. Valeur par défaut."
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
@@ -265,188 +270,187 @@ msgstr ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "erreur :"
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr "%s sr, kr, ksmps contradictoires"
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 "redéfinition des taux d'échantillonnage : esr = %7.4f, ekr = %7.4f, ksmps = "
 "%d\n"
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr "les constantes du système ne peuvent être fixées qu'une fois\n"
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
-msgstr "create_instrument : numéro d'instrument %ld\n"
+msgid "create_instrument: instr num %d\n"
+msgstr "create_instrument : numéro d'instrument %d\n"
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr "-- instr supprimé de deadpool \n"
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr " -- déf libre d'instr %p %p\n"
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr " -- ajout du slot %d au deadpool \n"
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
-msgstr "instr %ld redéfini, précédente définition remplacée"
+msgid "instr %d redefined, replacing previous definition"
+msgstr "instr %d redéfini, précédente définition remplacée"
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr "pas d'instances actives\n"
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr "l'instr %s utilise le numéro d'instrument %d\n"
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr "instr %d redéfini\n"
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr "aucune instance active de l'instr %d \n"
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr "!!! csound->opcodeInfo est NULL !!!\n"
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr " fusion des constantes %d) %f\n"
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr " fusion de %p %d) %s : %s\n"
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr " ajout de %p %d) %s : %s\n"
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr "fusion de l'instr %d \n"
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr "fusion de l'instr %s \n"
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr "nom d'instrument non valide"
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr "instr %s redéfini"
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr "ERREUR : impossible de trouver l'OPCODINFO pour : %s\n"
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr "Noeud inconnu de type %d (%s) trouvé à la racine.\n"
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr "%d erreurs de syntaxe dans l'orchestre. Compilation non valide\n"
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
-msgstr ""
-"les instructions d'exécution sont interdites dans le bloc d'en-tête (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
+msgstr "%s : code d'exécution dans l'espace global, ignoré"
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr "i[fixme] pset args != pmax"
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr "Argument local manquant : %s\n"
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr "**non enregistré**"
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr "L'opcode \"%s\" est obsolète\n"
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr "erreur : fonction %s introuvable, ligne %d\n"
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr "erreur : opcode %s sans type de retour %s introuvable, ligne %d"
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr "ERREUR : ni if-goto ni if-then n'ont été trouvés ligne %d !!!"
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr "Type de fonction inconnue détecté : %d [%c]\n"
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr "Type d'expression booléenne inconnue détecté : %d\n"
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 "impossible de trouver un opérateur de tableau pour les types '%s ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 "expression non-booléenne détectée dans un opérateur ternaire, ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 "impossible de trouver un opérateur ternaire pour les types '%s ? %s : %s' "
 "ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr "L'utilisation de i() dans une expression est interdite, ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
@@ -454,7 +458,7 @@ msgstr ""
 "erreur : opcode '%s' dans l'expression avec types d'arg %s introuvable, "
 "ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
@@ -463,7 +467,7 @@ msgstr ""
 "Vérification des types d'arg impossible pour l'expression '%s'\n"
 "Ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
@@ -471,7 +475,7 @@ msgstr ""
 "erreur : opcode '%s' dans l'expression avec types d'arg %s introuvable, "
 "ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
@@ -480,14 +484,14 @@ msgstr ""
 "Impossible de vérifier les types d'arg dans l'expression booléenne'%s'\n"
 "Ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 "erreur : expression booléenne '%s' avec types d'arg %s introuvable, ligne "
 "%d\n"
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
@@ -496,17 +500,17 @@ msgstr ""
 "Variable '%s' utilisée avant d'être définie\n"
 "Lige %d\n"
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr "Type d'arg inconnu : %d\n"
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr "Impossible de déterminer le type de la variable %s.\n"
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
@@ -515,53 +519,53 @@ msgstr ""
 "Variable '%s' utilisée avant d'être définie\n"
 "Ligne %d"
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr "Opcode nommé %s introuvable\n"
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 "Aucune entrée pour l'opcode '%s' avec les types d'argument correspondants :\n"
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr "Trouvé : %s %s %s\n"
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr "Ligne : %d\n"
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 "l'expression de l'instruction until/while n'est pas booléenne, ligne %d\n"
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr "Plusieurs instructions xin trouvées. Une seule est permise."
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr "Plusieurs instructions xout trouvées. Une seule est permise."
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr "instruction xin non valide pour un UDO : '%s' défini, '%s' trouvé\n"
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr "instruction xout non valide pour un UDO : '%s' défini, '%s' trouvé\n"
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
@@ -570,7 +574,7 @@ msgstr ""
 "\n"
 "erreur : %s (symbole \"%s\")"
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
@@ -579,12 +583,12 @@ msgstr ""
 " ligne %d :\n"
 ">>>"
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr " depuis le fichier %s (%d)\n"
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr "arguments requis manquants pour l'opcode %s ligne %d :\n"
@@ -599,72 +603,60 @@ msgstr "impossible de créer la variable %s : type NULL"
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr "chaîne de caractères non close trouvée ligne %d >>%s<<\n"
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 msgid "No number following instr\n"
 msgstr "Aucun numéro ne suit instr\n"
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr "Macro non définie : '%s'"
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr "Plus de mémoire"
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr "Imbrication des macros/include trop profonde"
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr "Trop peu d'arguments pour la macro\n"
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
@@ -673,140 +665,143 @@ msgstr ""
 "Le terminateur d'argument est manquant\n"
 "%.98s"
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr "EOF inattendu !"
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr "Caractère %c(%.2x) inattendu, ligne %d\n"
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr "#else sans #if\n"
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr "#else après un #else\n"
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr "#end non apparié\n"
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr "#include incorrect ignoré"
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr "Imbrication des boucles trop profonde"
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr "%s est un répertoire ; pas inclus"
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr "Impossible d'ouvrir le fichier inclus (#include) %s\n"
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr "erreur de macro\n"
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr "define de macro disparu\n"
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr "caractère %c(0x%.2x) inattendu dans define de macro à la place de #\n"
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr "define de macro avec args : EOF inattendu"
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr "define de macro : EOF inattendu"
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr "la macro %s n'est pas définie\n"
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr "Libération de la macro non définie"
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr "#if%sdef non apparié\n"
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr "Définition de macro pour %*s\n"
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr "Nom de macro non valide pour --omacro"
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr "EOF inattendu !!\n"
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr "Imbrication des boucles trop profonde"
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr "{: nombre de répétitions non valide"
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr "%s BOUCLE imbriquée=%d, Niveau : %d\n"
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr "BOUCLE externe=%d, Niveau : %d\n"
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr "} non apparié dans la partition\n"
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr "Les boucles de section ne peuvent pas être imbriquées"
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr "r : nombre de répétitions non valide"
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr "r LOOP=%d\n"
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr "caractère %c(0x%.2x) inattendu dans define de macro à la place de #\n"
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr "Nom de macro non valide pour --smacro"
 
@@ -854,7 +849,7 @@ msgstr "erreur interne : csoundFileOpen() : type non valide : %d"
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr "erreur interne : csoundCreateFileHandle() : type non valide : %d"
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr "numéro d'instrument hors limites"
 
@@ -871,14 +866,14 @@ msgstr "la ftable n'existe pas"
 msgid "ftable %d now deleted\n"
 msgstr "la ftable %d est maintenant supprimée\n"
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr "nombre d'arguments de GEN insuffisant"
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr "Le GEN nommé \"%s\" n'est pas défini"
@@ -911,10 +906,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr "utilisation d'arguments étendus\n"
 
@@ -927,13 +922,13 @@ msgid "illegal x interval"
 msgstr "intervalle x interdit"
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr "pas assez d'arguments"
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr "numéro de srctable inconnu"
 
@@ -965,102 +960,102 @@ msgstr "valeur xint illégale"
 msgid "illegal xamp value"
 msgstr "valeur xamp illégale"
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr "nombre impair d'arguments"
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr "l'appel gen a des valeurs d'abscisse x illégales"
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr "nombre d'arguments incorrect"
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr "un intervalle donné excède la longueur de la table"
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr "une fonction d'entrée n'existe pas"
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr "Pas de fenêtre de cette sorte !"
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr "Nombre incorrect d'arguments en entrée"
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr "distribution inconnue"
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr "erreur à l'ouverture du fichier ASCII"
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr "%ld éléments dans %s\n"
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr "Nombre(s) alors que la table est pleine dans GEN23, %f démarre"
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr "la taille de la table doit être la même que celle de la table source"
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr "les coordonnées x doivent être toutes en ordre croissant"
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr "coordonnée x supérieure à la taille de la fonction"
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr "valeur d'entrée interdite (y <= 0) dans l'appel GEN, début :"
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr "GEN28 nécessite une longueur de table nulle"
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr "impossible d'ouvrir le fichier de spatialisation"
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr "Les valeurs de temps doivent être en ordre croissant"
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr "GEN30 : la ftable source n'a pas été trouvée"
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr "GEN31 : la ftable source n'a pas été trouvée"
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr "GEN32 : la ftable source %d n'a pas été trouvée"
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr "GEN33 : la ftable source n'a pas été trouvée"
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr "numéro de table source inconnu"
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr "Gen41 : probabilité négative interdite"
 
@@ -1080,7 +1075,7 @@ msgid "replacing previous ftable %d"
 msgstr "remplacement de la ftable précédente %d"
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1148,8 +1143,8 @@ msgid "GEN1 read error"
 msgstr "GEN1 erreur de lecture"
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
-msgstr "GEN1 : le fichier aiff a été tronqué à la taille de la table"
+msgid "GEN1: file truncated by ftable size"
+msgstr "GEN1 : le fichier a été tronqué à la taille de la table"
 
 #: Engine/fgens.c:2770
 #, c-format
@@ -1160,7 +1155,7 @@ msgstr "\tles échantillons audio %d dépassent la taille de la table (%d)"
 msgid "wrong number of ftable arguments"
 msgstr "nombre d'arguments incorrect pour la ftable"
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr "Le chargement du fichier PVOC-EX a échoué"
 
@@ -1173,57 +1168,65 @@ msgstr "numéro de canal illégal"
 msgid "ftable size too small"
 msgstr "taille de ftable trop petite"
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr "Pas assez de mémoire\n"
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr "GEN51 : nombre de p-champs non valide (pas assez de degrés)"
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr "nombre de canaux en contradiction avec le nombre d'arguments"
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr "GEN53 : nombre d'arguments de GEN non valide"
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr "GEN53 : longueur de table non valide"
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr "GEN53 : numéro de la table source non valide"
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr "GEN53 : le mode doit être compris entre 0 et 15"
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
 msgstr "GEN53 : longueur de la table source non valide"
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr "GEN53 : table de fenêtre non valide"
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr "GEN53 : réponse impulsionnelle en entrée, "
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr "GEN53 : réponse fréquentielle en entrée, "
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr "Le chargement différé de '%s' a échoué"
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
-msgstr "activation de l'instrument %s à %d\n"
+msgid "activating instr %s at %lld\n"
+msgstr "activation de l'instrument %s à %lld\n"
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
-msgstr "activation de l'instrument %d à %d\n"
+msgid "activating instr %d at %lld\n"
+msgstr "activation de l'instrument %d à %lld\n"
 
 #: Engine/insert.c:127
 #, c-format
@@ -1235,13 +1238,13 @@ msgstr "Instrument %s muet\n"
 msgid "Instrument %d muted\n"
 msgstr "Instrument %d muet\n"
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 "impossible d'allouer la dernière note car elle dépasse 100%% du temps cpu"
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 "impossible d'allouer la dernière note car le nombre maximum d'allocations "
@@ -1257,75 +1260,75 @@ msgstr "nouvelle allocation de l'instr %s :\n"
 msgid "new alloc for instr %d:\n"
 msgstr "nouvelle allocation de l'instr %d :\n"
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr "l'instr %s utilise %d p-champs alors qu'il n'en a reçu que %d"
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr "l'instr %d utilise %d p-champs alors qu'il n'en a reçu que %d"
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr "instr %s activé : \n"
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr "instr %d activé : \n"
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr "Activation de l'instr %s par le MIDI\n"
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr "Activation de l'instr %d par le MIDI\n"
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr "nouvelle allocation MIDI pour l'instr %s :\n"
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr "nouvelle allocation MIDI pour l'instr %d :\n"
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr "la note MIDI chevauche la touche %d sur le même canal"
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr "une instance de l'instrument %s a été enlevée\n"
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr "une instance de l'instrument %d a été enlevée\n"
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr "instance non valide \n"
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr "les allocation inactives ont été rendues à l'espace libre\n"
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr "impossible de trouver l'instr actif %f\n"
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
@@ -1333,68 +1336,68 @@ msgstr ""
 "\n"
 "ERREUR D'INITIALISATION : "
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr "ERREUR D'INITIALISATION dans l'instr %d (opcode %s) : "
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr "ERREUR D'INITIALISATION dans l'instr %d (subinstr %d) : "
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr "ERREUR D'INITIALISATION dans l'instr %d : "
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr "ERREUR D'EXECUTION dans l'instr %d (opcode %s) : "
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr "ERREUR D'EXECUTION dans l'instr %d (subinstr %d) : "
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr "ERREUR D'EXECUTION dans l'instr %d :"
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr "    note interrompue\n"
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr "subinstr : nombre d'arguments de sortie supérieur à nchnls"
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr "subinstr : trop de p-champs"
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr "%s : valeur locale de ksmps non valide : %d"
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s : non initialisé"
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr "setksmps : valeur de ksmps non valide : %d, valeur originale : %d"
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr "subinstr : non initialisé"
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
@@ -1403,102 +1406,97 @@ msgstr ""
 "instr %d alloué à %p\n"
 "\tlclbas %p, opds %p\n"
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr "op (%s) alloué à %p\n"
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr "iopadr null"
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr "opadr null"
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr "A CORRIGER : type d'arg en sortie non supporté : %d\n"
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr "A CORRIGER : argument inattendu : %d\n"
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr "total d'opds non cohérent"
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr "L'instrument %s est toujours actif"
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr "L'instrument %d est toujours actif"
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr "-L stdin fcntl a échoué"
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr "Impossible d'ouvrir %s"
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr "stdmode = %.8x Linefd = %d\n"
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
 msgstr "Echec de la fixation de l'état du fichier\n"
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr "message d'entrée kcount, %d, %d.%06d\n"
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr "Dépassement du Tampon de Ligne - Les données en entrée sont perdues"
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr "opcode %c inconnu"
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr "le point de report de valeur (carry) n'a pas de référence"
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr "impossible de reporter un p-champ chaîne de caractères"
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr "pas assez de p-champs (%d)"
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr "-L avec un p2 négatif est illégal"
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr "trop de p-champs"
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1509,65 +1507,75 @@ msgstr ""
 "%s\n"
 "%*s"
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 "event : le paramètre 1 doit être \"a\", \"i\", \"q\", \"f\", \"d\" ou \"e\""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 "event : un identifiant sous forme de chaîne n'est permis qu'avec les "
 "évènements \"i\", \"d\" et \"q\""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr "event : erreur en créant l'évènement '%c'"
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr "event_i: erreur en créant l'évènement '%c'"
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr "instance : erreur en créant l'évènement"
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
-msgstr "échec de l'allocation de mémoire pour %lu"
+msgid "memory allocate failure for %zu"
+msgstr "échec de l'allocation de mémoire pour %zu"
+
+#: Engine/memfiles.c:48
+#, c-format
+msgid "failed to open file %s\n"
+msgstr "L'ouverture du fichier %s a échoué\n"
+
+#: Engine/memfiles.c:54
+#, c-format
+msgid "failed to read file %s\n"
+msgstr "impossible de lire le fichier %s\n"
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr "Fichier CV non conforme\n"
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr "Fichier LPC non conforme\n"
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr "impossible de charger %s\n"
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr "impossible de charger %s, ou SADIR n'est pas défini\n"
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr "erreur en traitant le fichier %s\n"
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr "le fichier %s (%ld octets) a été chargé en mémoire\n"
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
@@ -1575,62 +1583,68 @@ msgstr ""
 "PVOCEX_LoadFile() : erreur :\n"
 "    "
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr "Nom de fichier vide ou NULL"
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr "impossible d'ouvrir le fichier pvocex %s : %s"
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr "le fichier pvoc-ex %s n'est pas au format floats sur 32 bit"
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr "le fichier pvoc-ex %s n'est pas au format AMP_FREQ"
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr "le fichier pvoc-ex %s est vide !"
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr "erreur de lecture sur le fichier pvoc-ex %s"
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr "erreur de lecture sur le fichier pvoc-ex %s après %d trames"
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr "srate de %s = %8.0f, srate de l'orchestre = %8.0f"
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr "le fichier %s (%d octets) a été chargé en mémoire\n"
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr "csoundLoadSoundFile() : l'ouverture de '%s' a échoué"
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr "csoundLoadSoundFile() : erreur de lecture sur '%s'"
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
-"Le fichier '%s' (sr = %d Hz, %d voix, %lu trames d'échantillons) a été "
+"Le fichier '%s' (sr = %d Hz, %d voix, %lld trames d'échantillons) a été "
 "chargé en mémoire\n"
 
 #: Engine/musmon.c:72
@@ -1683,7 +1697,7 @@ msgstr "impossible de réouvrir cscore.srt"
 msgid "sorting cscore.out ..\n"
 msgstr "tri de cscore.out ..\n"
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr "\t... fait\n"
 
@@ -1691,8 +1705,8 @@ msgstr "\t... fait\n"
 msgid "playing from cscore.srt\n"
 msgstr "exécution à partir de cscore.srt\n"
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr "SECTION %d :\n"
@@ -1702,11 +1716,11 @@ msgstr "SECTION %d :\n"
 msgid "%c\tbeep!\n"
 msgstr "%c\tsignal sonore !\n"
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr "fin de la partition.\t\t   amplitudes maximales :"
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
@@ -1714,7 +1728,7 @@ msgstr ""
 "\n"
 "\t   Nombre d'échantillons hors limites :"
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
@@ -1723,90 +1737,90 @@ msgstr ""
 "\n"
 "%d erreurs dans l'exécution\n"
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr "fin de l'exécution"
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr "aucun son n'a été écrit sur le disque\n"
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr "\t nombre d'échantillons hors limites :"
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr "fin de la section %d\tamplitudes maximales de la section :"
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr "fin de la liste d'évènements lplay\t      amplitudes maximales :"
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr " - note affacée. instr %s non défini"
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr "Lancement de l'instrument  %s %s\n"
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr "arrêt"
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr "marche"
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr " - note affacée. instr %d(%d) non défini"
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr "Lancement de l'instrument %d %s\n"
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr " - note affacée.  i%d (%s) a eu %d erreurs d'initialisation"
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr " - note affacée.  i%d a eu %d erreurs d'initialisation"
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr "le temps a avancé de %5.3f pulsations à la demande de la partition\n"
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr "\t\t   T%7.3f - note affacée. "
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr "l'instr %s a eu %d erreurs d'initialisation\n"
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr "l'instr %d a eu %d erreurs d'initialisation\n"
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr "terminaison.\n"
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr "erreur dans la partition.  L'opcode %c (ASCII %d) est illégal\n"
@@ -1816,30 +1830,30 @@ msgstr "erreur dans la partition.  L'opcode %c (ASCII %d) est illégal\n"
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr "insert_score_event() : numéro ou nom d'instrument non valide %d\n"
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr "insert_score_event() : opcode inconnu : %c\n"
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr "insert_score_event() : pas assez de p-champs\n"
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr "impossible de reprendre la partition : pas de partition en mémoire\n"
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr "instr %s non trouvé"
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr "Impossible de trouver l'instrument %d"
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr "impossible de trouver l'instrument ou l'opcode spécifié"
 
@@ -1848,10 +1862,10 @@ msgstr "impossible de trouver l'instrument ou l'opcode spécifié"
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr "** trouvé CS_USO_DIR=%s\n"
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, c-format
-msgid "Failed to open input file %s\n"
-msgstr "L'ouverture du fichier de sortie %s a échoué\n"
+msgid "parser: failed to open input file %s\n"
+msgstr "parser : l'ouverture du fichier d'entrée %s a échoué\n"
 
 #: Engine/new_orc_parser.c:187
 msgid "Unmatched #ifdef\n"
@@ -1874,29 +1888,29 @@ msgstr "Echec de l'analyse par manque de méloire !\n"
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr "Echec de l'analyse, %d erreurs de syntaxe %s !\n"
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr "Echec de l'analyse, %d erreurs sémantiques %s !\n"
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr "Echec de l'analyse à cause d'erreurs de syntaxe\n"
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr "Echec de l'analyse par manque d'entrée !\n"
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr "Arrêt sur échec du parseur"
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr "ERREUR : caractère illégal %c(%.2x) dans la ligne de partition :"
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
@@ -1904,204 +1918,208 @@ msgstr ""
 "\n"
 "\tle reste de la ligne a été ignoré\n"
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr "ERREUR : trop de p-champs"
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr "sort : opcode illégal %c(%.2x)\n"
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr "sread : dépassement de l'espace de texte, augmenter MARGIN"
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr "sread: "
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr "erreur de partition :  "
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr "  section %d : position %d%s"
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr "Erreur interne dans print_input_backtrace()"
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr "  inclus depuis la ligne %d de la macro %s%s"
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr "  appelé depuis la ligne %d de la macro %s%s"
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr "  dans la ligne %d de la macro %s%s"
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr "Erreur interne op=%c"
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr "Base de l'horloge = %f\n"
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr "m section nommée >>>%s<<<\n"
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
-msgstr "%d : %s position %ld\n"
+msgid "%d: %s position %d\n"
+msgstr "%d : %s position %d\n"
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr "Nom %s non trouvé"
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr "Facteur de déformation = %f\n"
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr "sread hésite sur des opcodes légaux %c(%.2x)\n"
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr "Pas d'évènement précédent pour ^"
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr "espace illégal après %s, remplacé par zéro"
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr "'%s' a été ignoré dans l'évènement '%c'"
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr "! non valide dans p1, p2 ou p3"
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr "      le reste de la ligne a été ignoré\n"
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr "caractère illégal après !: '%c'"
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr "AVERTISSEMENT : instr %s non trouvé, on suppose que insno = -1\n"
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr "sread : utilisation illégale du report,   remplacé par 0\n"
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr "opcode %c illégal"
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr "placement illégal d'un nombre dans l'expression []"
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr "placement illégal de l'opérateur ~ dans l'expression []"
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr "placement illégal des opérateurs @ ou @@ dans l'expression []"
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr "placement illégal de l'opérateur %c dans l'expression []"
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr "placement illégal de '(' dans l'expression []"
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr "il manque un opérande avant ')' dans l'expression []"
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr "placement illégal de '[' dans l'expression []"
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr "il manque un opérande avant le crochet fermant dans []"
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr "caractère %c(%.2x) illégal dans l'expression []"
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr "caractère %c inattendu"
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr "sread : chaîne placée illégalement"
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr "guillemet non apparié"
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr "sread : format de nombre illégal :"
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr "   remplacé par zéro.\n"
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr "swrite : opcode inattendu %c, sect %d ligne %d\n"
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 "swrite : la sortie, sect %d ligne %d p%d fait illégalement référence à "
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr "   Remplacé par zéro\n"
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr "swrite : sortie, sect %d ligne %d p%d a un symbole de rampe illégal\n"
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
@@ -2109,14 +2127,14 @@ msgstr ""
 "swrite : sortie, sect %d ligne %d p%d, la rampe a une réf avant ou arrière "
 "illégale\n"
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 "swrite : sortie, sect %d ligne %d p%d a un symbole de rampe exponentielle "
 "illégal\n"
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
@@ -2125,18 +2143,18 @@ msgstr ""
 "swrite : sortie, sect %d ligne %d p%d, la rampe exponentielle a une réf "
 "avant ou arrière illégale\n"
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 "swrite : sortie, sect %d ligne %d p%d a une chaîne terminée illégalement   "
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr "swrite : sortie, sect %d ligne %d p%d a un numéro illégal  "
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr "    Chaîne tronquée\n"
 
@@ -2187,11 +2205,11 @@ msgstr "erreur :  "
 msgid "twarp: illegal opcode\n"
 msgstr "twarp : opcode illégal\n"
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr "twarp : t a une valeur de pulsation en trop ou désordonnée\n"
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr "twarp : t a un tempo non positif\n"
 
@@ -2222,80 +2240,80 @@ msgstr "sortie pas encore implémentée dans CoreMIDI\n"
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr "rtmidi : module CoreMIDI activé\n"
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr "Le démarrage de WSA a échoué\n"
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr "Erreur lors de la création du socket"
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr "Erreur lors de la liaison du socket à l'interface : %s"
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr "Erreur lors d'une adhésion à l'interface : %s "
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr "greffon temps réel ipMIDI pour Csound\n"
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr "ipmidi : module ipMIDI activé\n"
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr "erreur : pas de nom de fichier d'entrée"
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr "L'initialisation de l'entrée audio en temps réel a échoué"
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr "isfinit : impossible d'ouvrir %s -- %s"
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr "isfinit : impossible d'ouvrir %s"
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr "l'entrée audio %s a sr = %d, l'orchestre a sr = %d"
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr "l'entrée audio_in %s a %d voix, l'orchestre a %d voix"
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
-msgstr "lecture de %d blocs d'échantillons de flottants sur %d bit depuis %s\n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
+msgstr "lecture de %d blocs d'échantillons de flottants sur %lu bit depuis %s\n"
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr "lecture de blocs de %d octets de %s à partir de %s (%s)\n"
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr "Type du fichier de sortie changé en %s pour utilisation dans un pipe\n"
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr "L'initialisation de la sortie audio en temps réel a échoué"
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
@@ -2304,12 +2322,12 @@ msgstr ""
 "sfinit : impossible d'ouvrir fd %d\n"
 "%s"
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr "sfinit : impossible d'ouvrir %s"
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, c-format
 msgid ""
 "sfinit: cannot open %s\n"
@@ -2318,37 +2336,37 @@ msgstr ""
 "sfinit : impossible d'ouvrir %s\n"
 "%s"
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
-msgstr "écriture de %d blocs d'échantillons de flottants sur %d bit vers %s\n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
+msgstr "écriture de %d blocs d'échantillons de flottants sur %lu bit vers %s\n"
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr "écriture de blocs de %2$s de %1$d octets vers %3$s"
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr " (raw)\n"
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
-msgstr "%ld %d blocs d'échantillons de flottants sur %d bit écrits vers %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
+msgstr "%d %d blocs d'échantillons de flottants sur %lu bit écrits vers %s\n"
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
-msgstr "%ld %d blocs d'échantillons de %s écrits vers %s"
+msgid "%d %d sample blks of %s written to %s"
+msgstr "%d %d blocs d'échantillons de %s écrits vers %s"
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 "l'écriture du fichier son a retourné un compte de %d octets au lieu de %d"
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
@@ -2356,11 +2374,11 @@ msgstr ""
 "(disque peut-être plein...\n"
 " fermeture du fichier ...)"
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr "\t... fermé\n"
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr "pas d'écriture vers un sound disk\n"
 
@@ -2532,133 +2550,133 @@ msgstr " *** terminaison anormale de piste MIDI\n"
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr " *** données de longueur dynamique non valides dans le fichier MIDI\n"
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr " *** évènement anormal 0x%02X\n"
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr " *** données de fichier MIDI non valides\n"
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr " *** terminaison anormale d'un message system exclusive\n"
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr " *** message system exclusive non valide dans le fichier MIDI\n"
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr "  Message : "
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr "  Information de Copyright : "
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr "  Nom de piste : "
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr "  Nom d'instrument : "
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr "  Parole de chanson : "
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr " *** tempo non valide\n"
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr " *** terminaison d'un évènement de piste non valide\n"
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr " *** données incohérentes en fin de piste MIDI\n"
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr " *** message MIDI inconnu : 0x%02X\n"
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr " *** en-tête de piste MIDI non valide\n"
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr " *** erreur à l'ouverture du fichier MIDI '%s' : %s"
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr "Lecture du fichier MIDI '%s'...\n"
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr " *** en-tête de fichier MIDI non valide\n"
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr " *** le format de fichier MIDI %d n'est pas supporté\n"
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr " *** nombre de pistes non valide\n"
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr "AVERTISSEMENT : fichier MIDI 0 avec plusieurs pistes\n"
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr " *** time code non valide : %d\n"
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr " *** format non valide de liste de pistes muettes\n"
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr " Piste %2d\n"
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr " La piste %2d est muette\n"
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr "fait.\n"
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr "fin de la piste midi dans '%s'\n"
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr "%d chutes forcées, %d extra noteoffs\n"
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr " *** dépassement de tampon en lisant les évènements du fichier MIDI\n"
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr "Le chargement du fichier MIDI a échoué."
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr "Impossible de reprendre la partition MIDI\n"
 
@@ -2974,288 +2992,288 @@ msgstr "Impossible de fixer le format d'échantillon demandé sur la carte son"
 msgid "Unable to set number of channels on soundcard"
 msgstr "Impossible de fixer le nombre de canaux sur la carte son"
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr "Impossible de fixer le taux d'échantillonnage sur la carte son"
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr " *** taux fixé à %d\n"
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr "ALSA : -B %d interdit sur ce périphérique ; utiliser plutôt %d\n"
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr "ALSA : -b %d interdit sur ce périphérique ; utiliser plutôt %d\n"
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr "Erreur de réglage des paramètres logiciels pour l'audio en temps réel"
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr "ALSA %s : taille de tampon totale : %d, période : %d\n"
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr "Erreur de réglage des paramètres logiciels pour l'audio en temps réel"
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr "Echec de l'allocation mémoire"
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 " *** ALSA : il faut spécifier un nom de périphérique, pas un numéro (ex. -"
 "odac:hw:0,0)"
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr " *** ALSA : %s : échec de l'allocation mémoire"
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr "Saturation du tampon dans l'entrée audio en temps réel"
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr "Entrée audio en temps réel suspendue"
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr "Erreur en lisant des données sur le périphérique d'entrée audio"
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr "Déficit de remplissage du tampon sur la sortie audio en temps réel"
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr "Sortie audio en temps réel suspendue"
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr "Erreur en écrivant des données sur la sortie audio"
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr "ALSA MIDI : échec de l'allocation mémoire"
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr "ALSA : erreur en ouvrant le périphérique d'entrée MIDI : '%s'"
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr "ALSA : périphérique d'entrée MIDI '%s' ouvert\n"
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr "ALSA midi : aucune chaîne de caractères\n"
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr "ALSA midi : utilisation de tous les périphériques.\n"
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr "ALSA midi : erreur en ouvrant le périphérique : %s\n"
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr "ALSA midi : aucun périphérique trouvé.\n"
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr "ALSA : erreur en ouvrant le périphérique de sortie MIDI : '%s'"
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr "ALSA : périphérique de sortie MIDI '%s' ouvert\n"
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr "-M stdin fcntl a échoué"
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr "impossible d'ouvrir %s"
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr "MIDI receive : impossible d'obtenir l'information de termios"
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr "MIDI receive : impossible de règler le taux d'entrée en baud"
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr "MIDI receive : impossible de règler termios."
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr "Le fichier '%s' est ouvert comme source d'entrée MIDI\n"
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr "sensMIDI : retval erreur numéro %d"
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr "Erreur en ouvrant le fichier '%s' comme destination de la sortie MIDI"
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr "Le fichier '%s' est ouvert comme destination de la sortie MIDI\n"
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr "ALSASEQ : la connexion %s %s (%s) a échoué"
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr "ALSASEQ : connecté %s %d:%d\n"
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr "ALSASEQ : connexion échouée %s %s, port %d (%s)"
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr "entrée ALSASEQ : échec de l'allocation mémoire"
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr "ALSASEQ : erreur en ouvrant le périphérique (%s)"
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr "ALSASEQ : entrée MIDI du séquenceur ouverte\n"
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr "ALSASEQ : impossible de fixer le nom du client '%s' (%s)"
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr "ALSASEQ : impossible de créer le port d'entrée (%s)"
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr "ALSASEQ : impossible de créer le port d'entrée '%s' %d:%d\n"
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr "ALSASEQ : impossible de créer l'évènement midi (%s)"
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr "sortie ALSASEQ : échec de l'allocation mémoire"
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr "ALSASEQ : sortie MIDI du séquenceur ouverte\n"
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr "ALSASEQ : impossible de créer le port de sortie (%s)"
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr "ALSASEQ : port de sortie '%s' %d:%d créé\n"
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr "avertissement... impossible de créer une variable globale\n"
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr "priorité de l'organisation TR, module alsa"
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr "nom de client ALSASEQ (Csound par défaut)"
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 "Modules ALSA audio en temps réel et MIDI pour Csound par Istvan Varga\n"
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr "Impossible de déterminer le numéro de carte : %s"
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr "aucune carte son"
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr "impossible d'ouvrir un contrôle pour la carte %d: %s"
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr "impossible de déterminer le numéro de périphérique : %s"
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr "impossible de lire l'information rawmidi %d:%d:%d %s\n"
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr "impossible d'ouvrir le séquenceur\n"
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr "rtalsa : mauvaise fonction de rappel"
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr "rtaudio : module ALSA activé\n"
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr "rtmiDi : module ALSA Raw MIDI activé\n"
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr "rtmidi : module ALSASEQ activé\n"
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr "rtmidi : module devfile activé\n"
 
@@ -3274,11 +3292,16 @@ msgstr "Module AuHAL : %d périphérique(s) de sortie trouvé(s) :\n"
 msgid "%d: %s (%d channels) \n"
 msgstr "%d: %s (%d canaux)\n"
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr "Le périphérique requis %d est hors limites"
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr "Le périphérique requis %d (%s) est hors limites"
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3312,10 +3335,10 @@ msgstr "rtaudio : module AuHAL activé\n"
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr " *** AVERTISSEMENT : désactivation de --sched dans le mode freewheel\n"
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr "échec de l'allocation mémoire"
 
@@ -3384,12 +3407,12 @@ msgstr "erreur en fixant le callback de xrun"
 msgid "error activating JACK client"
 msgstr "erreur à l'activation du client JACK"
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr "connexion du canal %d à %s\n"
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
@@ -3398,7 +3421,7 @@ msgstr ""
 "pas de connexion automatique du canal d'entrée %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3409,7 +3432,7 @@ msgstr ""
 "pas de connexion automatique du canal d'entrée %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
@@ -3418,11 +3441,11 @@ msgstr ""
 "pas de connexion automatique du canal d'entrée %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
 msgstr "port d'entrée non connecté\n"
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
@@ -3431,7 +3454,7 @@ msgstr ""
 "pas de connexion automatique du canal de sortie %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3442,7 +3465,7 @@ msgstr ""
 "pas de connexion automatique du canal de sortie %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
@@ -3451,139 +3474,139 @@ msgstr ""
 "pas de connexion automatique du canal de sortie %d\n"
 "(il faut une connexion manuelle)"
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
 msgstr "port de sortie non connecté\n"
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr "les paramètres d'entrée et de sortie ne sont pas consistants"
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr "la taille de la période (-b) doit être un multiple entier de ksmps"
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr "le taux d'échantillonnage doit être entier"
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr "le taux d'échantillonnage de JACK a changé"
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr "pas de connexion au serveur JACK"
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 " *** rtjack : la connexion au serveur JACK a été perdue, reconnexion..."
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr "rtjack : dépassement de temps sur l'entrée audio"
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr "rtjack : xrun en audio temps réel"
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr "Module audio en temps réel JACK pour Csound\n"
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr " *** rtjack : erreur d'allocation des variables globales"
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr "Nom du client JACK (par défaut : csound6)"
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr "Préfixe du nom du port d'entrée de JACK (par défaut : input)"
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr "Préfixe du nom du port de sortie de JACK (par défaut : output)"
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr "Obsolète"
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr "Module JACK MIDI pour Csound\n"
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr " *** rtjack MIDI : erreur d'allocation des variables globales"
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr "Préfixe du nom du client JACK MIDI (par défaut : csound6_midi)"
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr "Nom du port d'entrée JACK MIDI (par défaut : port)"
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr "Préfixe du nom du port de sortie de JACK (par défaut : output)"
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr "Module MIDI Jack : dépassement de tampon"
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr "Module MIDI Jack : échec de la création du client en entrée"
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr "Module MIDI Jack : échec de l'enregistrement du port d'entrée"
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 "Module MIDI Jack : échec de la fixation du callbackdu processus d'entrée"
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr "Module MIDI Jack : échec de l'activation de l'entrée"
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr "Module MIDI Jack : échec de la connexion à : %s"
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr "Module MIDI Jack : dépassement du tampon de sortie"
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr "Module MIDI Jack : échec de la création du client en sortie"
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr "Module MIDI Jack : échec de l'enregistrement du port de sortie"
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr "Module MIDI Jack : échec de l'activation de la sortie"
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr "Module MIDI Jack : échec de la connexion à : %s"
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr "rtaudio : module JACK activé\n"
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr "rtmidi : module JACK activé\n"
 
@@ -3591,45 +3614,45 @@ msgstr "rtmidi : module JACK activé\n"
 msgid " *** PortAudio: error: "
 msgstr " *** PortAudio : erreur :"
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr "Le numéro %2$d du périphérique %1$s est hors limites"
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr "sortie"
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr "entrée"
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr "PortAudio : %s périphérique sélectionné '%s'\n"
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr "PortAudio : l'obtention d'information sur le périphérique a échoué.\n"
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr "Il faut spécifier un numéro de périphérique, pas un nom"
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr "Aucun périphérique de son n'est disponible"
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr "Tailles de tampon full-duplex contradictoires"
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr "Taux d'échantillonnage full-duplex contradictoires"
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
@@ -3637,24 +3660,24 @@ msgstr ""
 "AVERTISSEMENT : la taille de tampon doit être un multiple entier de ksmps en "
 "mode full-duplex\n"
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr "fermeture du périphérique\n"
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr "PortAudio : utilisation du périphérique ALSA '%s'\n"
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr "rtaudio : module PortAudio activé ...\n"
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr "utilisation de l'interface bloquante\n"
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr "utilisation de l'interface de callback\n"
 
@@ -3835,7 +3858,7 @@ msgstr "virtual_keyboard.cpp : erreur lors de l'allocation des options FLTK"
 msgid "Error registering opcode '%s'"
 msgstr "Erreur en enregistrant l'opcode '%s'"
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
@@ -3843,19 +3866,19 @@ msgstr ""
 "Instantané non valide. Peut-être avez-vous modifié le code d'un widget de "
 "l'orchestre après avoir sauvegardé la banque d'instantanés."
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr "Pas de nom pour FLbutbank"
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr "FLsetsnap : table non valide"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr "setsnap enregistre\n"
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
@@ -3863,11 +3886,11 @@ msgstr ""
 "La sauvegarde écrasera l'ancien fichier.\n"
 " Etes-vous sûr ?"
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr "Avertissement"
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
@@ -3875,23 +3898,23 @@ msgstr ""
 "La sauvegarde écrasera l'ancien fichier\n"
 "Etes-vous certain de vouloir sauvegarder ?"
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr "Non"
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr "Oui"
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr "FLsavesnap : impossible d'ouvrir le fichier"
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr "FLloadsnap : impossible d'ouvrir le fichier"
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
@@ -3900,27 +3923,27 @@ msgstr ""
 "La modification d'un orchestre le rend incompatible avec les anciens "
 "fichiers d'instantanés"
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr "fin du thread de widget\n"
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr "FLrun a déjà été appelé"
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr "FL_run : échec de l'allocation mémoire"
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr "Erreur : Impossible de lancer le processus\n"
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr "FLpanel_end : pointeur de pile non valide : vérifier sa position"
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
@@ -3928,11 +3951,11 @@ msgstr ""
 "FLpanel_end : compte de la pile non valide : vérifier le nombre de FLpanel/"
 "FLpanel_end et leurs positions"
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr "FLscroll_end : pointeur de pile non valide : vérifier sa position"
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
@@ -3940,18 +3963,18 @@ msgstr ""
 "FLscroll_end : compte de la pile non valide : vérifier le nombre de FLscroll/"
 "FLscroll_end et leurs positions"
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 "FLtabs_end : pointeur de pile non valide : vérifier le nombre de FLtabs/"
 "FLtabs_end et leurs positions"
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr "FLgroup_end : pointeur de pile non valide : vérifier sa position"
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
@@ -3959,154 +3982,154 @@ msgstr ""
 "FLgroup_end : compte de la pile non valide : verifier le nombre de FLgroup/"
 "FLgroup_end et leurs positions"
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr "FLpack_end : pointeur de pile non valide : vérifier sa position"
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 "FLpack_end : compte de la pile non valide : vérifier le nombre de FLpack/"
 "FLpack_end et leurs positions"
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr "Erreur système : méthode value() appelée depuis un objet non-valueur"
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr "FLvalue ne peut pas être rempli par FLsetVal.\n"
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr "(fl_setWidgetValuei) : pas encore totalement implémenté ; exp=%d"
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr "FLvalue ne peut pas être rempli par FLsetVal\n"
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr "(fl_setWidgetValue_set) : pas encore totalement implémenté ; exp=%d"
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr "FLslider exponentiel, utilisation d'une règlette sans étiquette"
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
 msgstr "FLslider : type de règlette non valide"
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr "FLslider : zéro est interdit dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr "espace d'allocation ZAK non valide"
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr "FLslidBnk : zéro est interdit dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr "FLjoy axe X : zéro est interdit dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
 msgstr "FLknob : type de bouton rotatif non valide"
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr "FLknob : zéro est interdit dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr "FLbutton \"%s\" ignore les instantanés de capture et de restitution"
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr "FLbutton : type de bouton non valide"
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr "FLcloseButton : pointeur de pile non valide : vérifier sa position"
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr "Commande trouvée : %s\n"
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr "A propos"
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr "FLbuttonBank : type de bouton non valide"
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr "FLcount \"%s\" ignore les instantanés de capture et de restitution"
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
 msgstr "FLroller : type de molette non valide"
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 "FLhvsBox : une surface carrée doit être délimitée par au moins 2 lignes"
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
 msgstr "FLkeyIn : numéro de table non valide"
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr "FLkeyIn : table trop courte !"
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr "FLvslidBnk : zéro est illégal dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr "FLsliderBank : zéro est illégal dans les opérations exponentielles"
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 "FLslidBnk2 : FLslider exponentiel, utilisant une règlette sans étiquette"
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
 msgstr "FLsldBnkSet : numéro de table non valide"
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr "FLslidBnkSetk : table trop courte !"
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
 msgstr "FLsldBnkSet : numéro de outable non valide"
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr "FLslidBnkSet : trop de règlettes à réinitialiser !"
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr "FLslidBnkSet : type de fonction (lin. ou exp.) non disponible"
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
@@ -4114,36 +4137,36 @@ msgstr ""
 "FLslidBnk2Setk : valeur hors limites : le mappage de fonction nécessite en "
 "entrée l'intervalle de 0 à 1"
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
 msgstr "FLslidBnkSetk : numéro de table non valide"
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr "FLslidBnkSetk : table trop courte !"
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr "FLslidBnkSetk : numéro de outable non valide"
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr "FLslidBnkSetk : trop de règlettes à réinitialiser !"
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
 msgstr "FLslidBnkSetk : numéro de table non valide"
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr "FLslidBnkSetk : numéro de outable non valide"
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 "FLxyin : aucune des limites de X ne peut être zéro en mode exponentiel !"
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 "FLxyin : aucune des limites de Y ne peut être zéro en mode exponentiel !"
@@ -4178,7 +4201,7 @@ msgstr "widgets.cpp : erreur lors de l'allocation des options de FLTK"
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr "%s\t%ld points, échelle max %5.3f\n"
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr "l'opcode xyin est devenu obsolète dans Csound6"
 
@@ -4199,69 +4222,69 @@ msgstr "supprimé"
 msgid "not supported on this terminal"
 msgstr "pas supporté sur ce terminal"
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr "Il ne peut y avoir plus d'arguments In que Out dans init (%d,%d)"
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr "Division par zéro"
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr "son échantillonné sans boucle"
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr "Pas de table d'accordage %d"
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr "cpstun : table non valide"
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr "Canal d'entrée %d trop grand ; ignoré"
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr "Canal d'entrée %d non valide ; ignoré"
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr "Les nombres d'arguments d'entrée et de sortie différent dans inch"
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr "Canal supérieur à nchnls"
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr "Canaux en excès ignorés\n"
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr "Appel de fonction inconnue"
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr "nombre d'arguments != nchnls"
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 "outrg : le numéro de canal ne peut pas être < 1 (1 est le premier canal)"
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr "nombre de canaux matériels en sortie non disponible"
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr "nombre de canaux matériels en entrée non disponible"
 
@@ -4297,35 +4320,35 @@ msgstr "pvsout : index non valide"
 msgid "pvsout error %d:channel not found or not right type"
 msgstr "pvsout erreur %d : canal intouvable ou type non conforme"
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr "paramètre de mode non valide"
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr "paramètres de canal non valides"
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr "le canal existe déjà"
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr "variable d'export non valide"
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr "échec de la lecture dans sensekey\n"
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr "erreur de sensekey : "
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr "InputChannelCallback non défini"
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr "OutputChannelCallback non défini"
 
@@ -4333,7 +4356,7 @@ msgstr "OutputChannelCallback non défini"
 msgid "NaN in pow\n"
 msgstr "NaN dans pow\n"
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr "Graine à partir de l'horloge %u\n"
@@ -4343,12 +4366,12 @@ msgstr "Graine à partir de l'horloge %u\n"
 msgid "Seeding with %u\n"
 msgstr "Graine à partir de %u\n"
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr "compileorc : impossible d'ouvrir %s\n"
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr "compileorc : impossible de lire %s\n"
@@ -4380,31 +4403,31 @@ msgstr ""
 "diskin2 : avertissement: taux d'échantillonnage (%d) du fichier != sr (%d) "
 "de l'orchestre\n"
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
-"diskin2 : '%s' ouvert (asynchrone) :\n"
-"          %d Hz, %d voix, %ld trames d'échantillons\n"
+"diskin2 : '%s' ouvert (en asynchrone) :\n"
+"          %d Hz, %d voix, %lld trames d'échantillons\n"
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 "diskin2 : '%s' ouvert :\n"
-"          %d Hz, %d voix, %ld trames d'échantillons\n"
+"          %d Hz, %d voix, %lld trames d'échantillons\n"
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr "diskin2 : non initialisé"
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr "diskin2 : descripteur de fichier fermé ou non valide\n"
 
@@ -4441,20 +4464,20 @@ msgstr "soundouts : non initialisé"
 msgid "diskin2: %s: failed to open file"
 msgstr "diskin2 : %s: l'ouverture du fichier a échoué"
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr "soundin : nombre de canaux non valide"
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr "soundin : format d'échantillon inconnu"
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr "soundin : %s : l'ouverture du fichier a échoué"
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
@@ -4463,19 +4486,19 @@ msgstr ""
 "soundin: '%s' ouvert :\n"
 "         %d Hz, %d voix, %ld trames d'échantillons\n"
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 "soundin : le nombre d'arguments en sortie est en contradiction avec le "
 "nombre de canaux du fichier"
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr "soundin : taux d'échantillonnage (%d) != sr (%d) de l'orchestre\n"
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr "soundin : non initialisé"
 
@@ -4538,7 +4561,7 @@ msgstr "tfr"
 msgid "dispfft: not initialised"
 msgstr "dispfft : non initialisé"
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr "iperiod illégal"
 
@@ -4618,11 +4641,11 @@ msgstr " *** fftlib.x : erreur interne : taille de TFR non valide : %d"
 msgid "negative time period"
 msgstr "durée négative"
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr "turnoff2 : numéro d'instrument non valide"
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr "turnoff2 : paramètre de mode non valide"
 
@@ -4657,11 +4680,11 @@ msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 "Mode arp sélectionné non valide: %d. Les modes autorisés sont 0, 1, 2 et 3\n"
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr "argument de mrtmsg illégal"
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr "out contr14 msb :%x lsb :%x\n"
@@ -4675,165 +4698,165 @@ msgstr ""
 "\n"
 "erreur - le paramètre n de tfr a plus de 15 facteurs : %d"
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr "csoundRealFFTnp2() : taille de TFR non valide, %d"
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr "csoundInverseRealFFTnp2() : taille de TFR non valide"
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr "csoundRealFFTnp2() : taille de TFR non valide"
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr "tablexkt : non initialisé"
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr "La version glissante n'est pas encore disponible"
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr "pvadsyn : mauvaise valeur de inoscs\n"
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr "pvadsyn : le format doit être amp-fréq (0).\n"
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr "pvsadsyn : le paramètre ibin est hors limites.\n"
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr "pvsadsyn : la somme ibin + inoscs est trop grande.\n"
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr "pvsadsyn : l'expression ibin + (inoscs * ibinoffset) est trop grande"
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr "pvsynth : non initialisé.\n"
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 "pvscross : les signaux source et destination doivent avoir le même format\n"
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr "pvscross : non initialisé\n"
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr "pvscross : disparités dans le format de fsrc\n"
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr "pvscross : disparités dans le format de fdest\n"
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr "pvsfread : le fichier est vide !\n"
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr "pvsfread : le fichier n'a qu'une trame (= réponse impulsionnelle).\n"
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr "pvsfread : le chevauchement des trames d'analyse doit être >= ksmps\n"
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr "pvsfread : la valeur de ichan dépasse le nombre de canaux.\n"
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr "pvsfread : ichan ne peut pas être négatif.\n"
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr "pvsfread : non initialisé.\n"
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr "pvsmaska : le format du signal doit être amp-phase ou amp-fréq."
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr "pvsmaska : ftable trop petite.\n"
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr "pvsmaska : non initialisé\n"
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr "pvsmaska : valeur de kdepth négative ; ramenée à zéro.\n"
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr "pvsmaska : kdepth > 1 : limité.\n"
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr "pvsftw : le format du signal doit être amp-phase ou amp-fréq.\n"
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr "pvsftw : mauvaise valeur de ifna.\n"
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr "pvsftw : mauvaise valeur de ifnf.\n"
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr "pvsftw : la ftable des amps est trop petite.\n"
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr "pvsftw : la ftable des fréqs est trop petite.\n"
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr "pvsftw : non initialisé\n"
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr "pvsftw : pas de ftable d'amps !\n"
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr "pvsftw : pas de ftable de fréqs !\n"
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr "pvsftr : le format du signal doit être amp-phase ou amp-fréq.\n"
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr "pvsftr : mauvaise valeur de ifna.\n"
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr "pvsftr : mauvaise valeur de ifnf.\n"
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr "pvsftr : ftable d'amps trop petite.\n"
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr "pvsftr : ftable des fréqs trop petite.\n"
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr "pvsftr : non initialisé\n"
 
@@ -5190,31 +5213,35 @@ msgstr "type de fenêtre non valide"
 msgid "ftable for window not found"
 msgstr "la ftable de la fenêtre n'a pas été trouvée"
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr "Taille de fenêtre non valide"
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr "pvsanal : une taille de tfr à 32 est trop petite !\n"
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr "pvsanal : taille fenêtre trop petite pour la taille de tfr"
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr "pvsanal : taille de chevauchement trop grande pour la taille de tfr\n"
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr "pvsanal : le chevauchement doit être >= ksmps\n"
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr "pvsanal : non initialisé.\n"
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr "Type de fenêtre inconnu ; remplacé par rectangulaire\n"
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr "pvsynth : non initialisé.\n"
 
@@ -5286,17 +5313,17 @@ msgstr "socket créé \n"
 msgid "setting socket option to reuse the address\n"
 msgstr "réglage de l'option du socket pour réutiliser l'adresse \n"
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr "la liaison a échoué"
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr "l'écoute a échoué"
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr "l'acceptation a échoué"
 
@@ -5363,107 +5390,107 @@ msgstr ""
 "*** Cette version de Csound n'a pas été compilée avec le support des "
 "évènements distants ***\n"
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr "LFO : type d'oscillateur inconnu %d"
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr "schedkwhen ignoré. L'instrument %d n'est pas défini\n"
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr "schedkwhen avertissement : kwhen négatif ramené à zéro"
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr "trigseq : numéro de table incorrect"
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr "pas de fichier d'entrée spécifié dans la ligne de commande"
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr "diskinfo ne peut pas ouvrir %s"
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 "%s : aucun bloc PEAK n'a été trouvé, parcours du fichier pour déterminer "
 "l'amplitude maximale"
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 "Le canal d'entrée pour le pic dépasse le nombre de canaux dans le fichier"
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr "filepeak: erreur lors de l'obtention de la valeur de pic"
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr "index de strset illégal"
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr "index de strset en conflit à %d"
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr "valeur précédente : '%s', remplacée par '%s'"
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr "--strset : format non valide"
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr "chaîne nulle\n"
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr "Les arguments de taux-a sont interdits"
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr "trop d'arguments"
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
 msgstr "arguments insuffisants pour le format"
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr "l'argument de sortie ne peut pas être le même qu'un argument d'entrée"
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr "format de chaîne de caractères non valide"
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr "trop d'arguments pour le format"
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr "chaîne de caractères vide"
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
 msgstr "format non valide"
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr "code d'option non valide : %g"
@@ -5480,91 +5507,97 @@ msgstr "arg2 vaut zéro"
 msgid "unlike signs"
 msgstr "signes différents"
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr "nombre incorrect d'arguments en entrée"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr "Point charnière %d non valide"
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr "linseg non initialisé (taux-k)\n"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr "linseg : non initialisé (taux-a)\n"
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr "durée de la note de l'ADSR trop courte"
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr "ival%d vaut zéro"
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr "ival%d conflit de signe"
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr "Date %f du point charnière non valide"
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr "durée de la note de l'XADSR trop courte"
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr "expseg (taux-k) : non initialisé"
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr "expseg (taux-a) : non initialisé"
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr "p3 trop court dans linen"
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr "iatdec non positif"
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr "ixmod hors limites"
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr "p3 trop court dans envlpx"
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr "la fonction d'attaque se termine par zéro"
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr "la fonction d'attaque de envlpx se termine zéro"
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr "envlpx(taux-k) : non initialisé"
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr "cosseg non initialisé (taux-k)\n"
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr "cosseg : non initialisé (taux-a)\n"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr "cosseg : non initialisé (taux-a)\n"
 
@@ -5647,11 +5680,6 @@ msgstr "oscil3(taux-k) : non initialisé"
 msgid "oscil3: not initialised"
 msgstr "oscil3 : non initialisé"
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr "Décalage d'écriture dans la table %f < 0 ou > longueur de la table"
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr "foscil : non initialisé"
@@ -5668,42 +5696,42 @@ msgstr "pas de fréquence de base légale"
 msgid "loscil: sustain defers to non-looping source"
 msgstr "loscil : entretien différé à une source sans boucle"
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr "un loscil mono ne peut pas lire à partir d'une ftable stéréo"
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr "un loscil stéréo ne peut pas lire à partir d'une ftable mono"
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr "données de boucle d'entretien illégales"
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr "données de boucle de relâchement illégales"
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr "ADSYN ne peut pas charger %s"
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr "code %d illégal rencontré"
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr "%d pistes d'amp, %d pistes de fréq"
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr "le nombre de partiels dépasse MAXPTLS"
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr "adsyn : non initialisé"
 
@@ -5743,121 +5771,116 @@ msgstr "pluck : non initialisé"
 msgid "pluck: kcps more than sample rate"
 msgstr "pluck : kcps supérieur au taux d'échantillonnage"
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr "Graine à partir de l'horloge %lu\n"
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr "valeur illégale de iscl dans reson, %f"
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr "LPREAD ne peut pas charger %s"
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr "Utilisation du type de fichier %s.\n"
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr "pôle"
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr "coefficient du filtre"
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr "l'en-tête du fichier prend le pas sur les paramètres"
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr "taux d'échantillonnage du fichier != sr de l'orch"
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr "dans le fichier %s les octets ne sont pas dans le bon ordre"
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr "nombre d'arguments insuffisant et pas d'en-tête de fichier"
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
-msgstr "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
+msgstr "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr "magnitude : %f   Phase : %f\n"
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr "Partie réelle : %f   Partie imaginaire : %f\n"
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr "Impossible de traiter actuellement un nombre impair de pôles\n"
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr "lpread : non initialisé"
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr "lpread : timpnt < 0"
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr "lpread : ktimpnt tronqué à la dernière trame"
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr "L'interpolation a échoué"
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 "cet opcode ne fonctionne qu'avec le type d'analyse de pôle par CPL (-a)\n"
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr "Fichier de pôles non supporté par cet opcode !"
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr "frqratio illégal, %5.2f"
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr "le numéro de lpslot doit être positif"
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr "le slot LPC n'est pas alloué"
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr "lpinterpol ne travaille qu'avec des fichiers de pôles.."
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr "Les fichiers de pôles ont un nombre de pôles différent"
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr "erreur de padding"
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr "lpinterpol : non initialisé"
 
@@ -5915,8 +5938,8 @@ msgstr "deltapn : non initialisé"
 msgid "deltap3: not initialised"
 msgstr "deltap3 : non initialisé"
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr "durée de boucle illégale"
 
@@ -5936,11 +5959,11 @@ msgstr "alpass : non initialisé"
 msgid "revlpsiz inconsistent\n"
 msgstr "revlpsiz incohérent\n"
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
 msgstr "reverb : non initialisé"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr "pan : non initialisé"
 
@@ -6073,195 +6096,194 @@ msgstr "printk n'est pas initialisé"
 msgid "time %11.5f: "
 msgstr "temps %11.5f :"
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr "chaîne nulle\n"
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr "printks : non initialisé"
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+msgid "Insufficient arguments in formatted printing"
+msgstr "Arguments insuffisants dans l'impression formatée"
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr "Chaîne de formatage trop longue : %s"
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr "inz : index > isizea. Pas d'écriture."
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr "inz : index < 0. Pas d'écriture."
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr "outz : index > isizea. Pas de sortie."
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr "outz : index < 0. Pas de sortie."
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr "La valeur iscl de resonk est illégale, %f"
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, c-format
 msgid "table: could not find ftable %d"
 msgstr "table : ftable %d introuvable"
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr "table : type de l'indice en contradiction avec la sortie"
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr "tablekt : type de l'indice en contradiction avec la sortie"
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr "table : ftables %d et/ou %d introuvables"
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr "table : impossible de lire à la position négative %d"
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr "vdelay : non initialisé"
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr "vdelay3 : non initialisé"
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr "Mauvais nombre d'entrées dans multitap\n"
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr "multitap : non initialisé"
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr "La diffusion de haute fréquence n'est pas dans ]0, 1[\n"
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 "reverbx ; la ftable des filtres en peigne doit avoir %d valeurs de temps et "
 "%d valeurs de gain"
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 "reverbx ; la ftable des filtres passe-tout doit avoir %d valeurs de temps et "
 "%d valeurs de gain"
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr "Diffusion de haute fréquence > 1\n"
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr "Diffusion de haute fréquence < 0\n"
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr "Durée de réverbération non positive\n"
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr "reverbx : non initialisé"
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr "Trop d'arguments pour OSCsend"
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
 msgstr "Echec du réglage de la multidiffusion"
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr "Le timestamp comprend deux valeurs"
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr "la ftable %.2f n'existe pas"
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr "l'argument %d n'est pas un tableau"
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr "Type OSC inconnu %c\n"
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr "OSC : échec de l'allocation des variables globales"
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr "OSC dé-initialisé\n"
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr "impossible de démarrer l'écouteur OSC sur le port %s\n"
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr "Ecouteur OSC #%d démarré sur le port %s\n"
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr "Ecouteur multidiffusion OSC #%d démarré sur le port %s\n"
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr "OSC n'est pas actif"
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr "descripteur non valide"
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr "nombre d'arguments non valide"
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr "liste d'arguments inconsistante avec le format chaîne"
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr "type non valide"
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, c-format
 msgid "Invalid ftable no. %d"
 msgstr "Numéro de ftable %d non valide."
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr "Erreur interne OSC"
 
@@ -6342,7 +6364,7 @@ msgstr "Le nombre de canaux de sortie ne correspond pas à la valeur de isetup."
 msgid "bformdec1 output array not initilised"
 msgstr "tableau de sortie de bformdec1 non initialisé"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr "second tableau d'entrée trop petit\n"
 
@@ -6354,182 +6376,197 @@ msgstr "Erreur : aucune dimension donnée à l'initialisation du tableau"
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr "Erreur : les tailles doivent être > 0 à l'initialisation d'un tableau"
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr "fillarray : les tableaux de dim > 2 ne sont pas encore supportés\n"
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr "Impossible de fixer un tableau-i au taux-k\n"
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr "Erreur : aucun indice fixé pour écrire dans le tableau\n"
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr "La dimension %d du tableau est hors limites pour les dimensions %d\n"
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr "Indice %d du tableau hors limites (0, %d) pour la dimension %d"
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr "Erreur : aucun indice fixé pour lire dans le tableau"
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr "La dimension %d du tableau est hors limites pour les dimensions %d"
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr "Les dimensions ne correspondent pas dans l'arithmétique des tableaux"
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
 msgstr "tableau : non initialisé"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr "La dimension ne correspond pas dans l'arithmétique des tableaux"
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr "division par zéro dans le tableau à l'indice %d"
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr "puissance indéfinie dans le tableau à l'indice %d"
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr "division par zéro dans le tableau"
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr "division par zéro dans le tableau à l'indice %d/%d"
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
 msgstr "tableau pas un vecteur"
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
 msgstr "les dimensions du tableau ne correspondent pas"
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
 msgstr "les types du tableau ne correspondent pas"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
 msgstr "tableau non initialisée"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr "Pas de table pour copy2ftab"
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr "paramètres début, fin et incrément inconstistants"
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr "paramètres début, fin inconsistants"
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr "intervalle plus grand que la taille d'origine"
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr "le paramètre de coupure doit être positif"
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr "%s non trouvé"
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr "fn de map introuvable au taux-k"
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr "rfft : seuls les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr "rifft : seuls les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
 msgstr "les tailles de tableau ne correspondent pas\n"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr "fft : seuls les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr "fftinv : seuls les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr "dans array les tailles ne correspondent pas : %d et %d\n"
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr "non puissance de deux pas encore implémentée\n"
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr "Taille de TFR trop petite (min 64 échantillons)\n"
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr "dans array pas de 2-dimension\n"
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr "ligne demandée hors limites\n"
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr "colonne demandée hors limites\n"
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
 msgstr "Erreur : index hors limites\n"
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr "tableau d'entrée trop petit\n"
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr "dct : seuls les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr "dct : tailles non puissance de deux pas encore implémentées"
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr "dctinv : seul les tableaux unidimensionnels sont permis"
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr "dctinv : tailles non puissance de deux pas encore implémentées"
 
@@ -6555,10 +6592,10 @@ msgstr "vco : non initialisé"
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 "DLineN : longueur de délai trop grande ... réglée à la longueur maximale de "
-"%ld.\n"
+"%d.\n"
 
 #: Opcodes/bowedbar.c:98
 msgid "unknown lowest frequency for bowed bar -- assuming 50Hz\n"
@@ -6646,21 +6683,21 @@ msgstr "Passe-haut elliptique pas encore implémenté. Désolé !"
 msgid "code error, ihilo out of range"
 msgstr "erreur de code, ihilo hors limites"
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr "control : échec de l'allocation des variables globales"
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr "Fermeture de wish(%d)\n"
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr "Réglette %d fixé à %s\n"
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr "Contrôle %d inconnu"
@@ -6700,139 +6737,139 @@ msgstr "readf : la lecture a échoué"
 msgid "readi failed to initialise"
 msgstr "readi, l'initialisation a échoué"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr "DSSI4CS : le chargement de %s a échoué"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr "Erreur lors de la création de la variable globale '$DSSI4CS'"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr "DSSI4CS : chargement de la première instance.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr "Pas de descripteur ladspa\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
-"DSSI4CS : impossible de trouver la fonction ladspa_descriptor() ou\n"
-"la fonction dssi_descriptor() dans le fichier de greffon \"%s\" : %s.\n"
+"DSSI4CS : impossible de trouver la fonction ladspa_descriptor(%lu) ou\n"
+"la fonction dssi_descriptor(%lu) dans le fichier de greffon \"%s\" : %s.\n"
 "Etes-vous sûr que c'est un fichier de greffon LADSPA ou DSSI ?"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
-"DSSI4CS : impossible de trouver la fonction ladspa_descriptor() ou\n"
-"la fonction dssi_descriptor() dans le fichier de greffon \"%s\".\n"
+"DSSI4CS : impossible de trouver la fonction ladspa_descriptor(%lu) ou\n"
+"la fonction dssi_descriptor(%lu) dans le fichier de greffon \"%s\".\n"
 "Etes-vous sûr que c'est un fichier de greffon LADSPA ou DSSI ?"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr "DSSI4CS : pas d'indice de greffon %lu dans %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr "DSSI4CS : impossible d'instancier le greffon : %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr "DSSI4CS : pas de fonction run() dans : %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr "DSSI4CS : greffon non valide : %i (MAX = %i)."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr "DSSI4CS : nombre de canaux audio en entrée supérieur à %d"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr "DSSI4CS : nombre de canaux audio en sortie supérieur à %d"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr "DSSI4CS : dssiaudio : descripteur de greffon non valide"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr "DSSI4CS : le greffon '%s' a %i ports audio en entrée désactivés.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr "DSSI4CS : le greffon '%s' a %i ports audio en entrée."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr "DSSI4CS : le greffon '%s' a %i ports audio en sortie."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr "DSSI4CS : descripteur de greffon non valide"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr "DSSI4CS : ports de contrôle du taux audio pas encore implémentés."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr "DSSI4CS : le port %lu de '%s' n'existe pas"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr "DSSI4CS : le port %lu de '%s' est un port de sortie."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr "DSSI4CS : non initialisé ou types d'argument incorrects."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr "DSSI4CS : dssinote pas encore implémentée"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr "DSSI4CS : dssievent pas encore implémentée"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr "DSSI4CS : variable d'environnement LADSPA_PATH pas fixée.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr "DSSI4CS : variable d'environnement DSSI_PATH pas fixée.\n"
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr "Le chargement du plugin \"%s\" a échoué : %s"
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6843,7 +6880,7 @@ msgstr ""
 "bibliothèque de plugin \"%s\" : %s.\n"
 "Etes-vous sûr que c'est un fichier de plugin LADSPA ?"
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
@@ -6853,22 +6890,30 @@ msgstr ""
 "bibliothèque de plugin \"%s\".\n"
 "Etes-vous sûr que c'est un fichier de plugin LADSPA ?"
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 "Impossible de trouver l'étiquette \"%s\" dans le fichier de bibliothèque de "
 "plugin \"%s\"."
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr "linlin.k : division par zéro"
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr "caractère a attendu entre A et G, mais %c obtenu\n"
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr "format non compris\n"
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr "cmp : opérateur incompris. <, <=, >, >= ou == attendu \n"
+
 #: Opcodes/fareygen.c:116
 msgid "insufficient arguments for fareytable"
 msgstr "arguments insuffisants pour une table de Farey"
@@ -6878,10 +6923,10 @@ msgstr "arguments insuffisants pour une table de Farey"
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr "Farey : No de table < 1 dft=%.2f  sft=%.2f"
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
-msgstr "Farey : Type de filtre < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
+msgstr "Farey : type de filtre < 1 ftype=%.2f"
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
 #, c-format
@@ -6893,10 +6938,6 @@ msgstr "Farey : Table dft de destination %.2f introuvable"
 msgid "Farey: Source sft table %.2f not found."
 msgstr "Farey : Table sft source %.2f introuvable"
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr "Farey : Type de filtre < 1"
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6907,7 +6948,7 @@ msgstr "Numéro de table < 1 sft=%.2f"
 msgid "Source sft table %.2f not found."
 msgstr "La table %.2f de la source sft n'a pas été trouvée"
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6918,12 +6959,12 @@ msgstr ""
 "Problème de compilation de Faust : \n"
 "ligne %s\n"
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, c-format
 msgid "could not find DSP %p for deletion"
 msgstr "impossible de trouver le DSP %p pour suppression"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
@@ -6931,42 +6972,42 @@ msgstr ""
 "Le code Faust n'a pas été compilé proprement.\n"
 "Verifier ci-dessus les messages d'erreur du compilateur Faust\n"
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr "aucune fabrique n'est disponible\n"
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr "fabrique non trouvée %d\n"
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr "Problème d'instanciation de Faust\n"
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
 msgstr "nombre incorrect d'arguments en entrée\n"
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
 msgstr "nombre incorrect d'arguments en sortie\n"
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr "Problème de compilation de Faust : %s\n"
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr "aucune iinstance de DSP n'est disponible\n"
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr "instance de DSP introuvable %d\n"
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr "contrôle de DSP %s introuvable\n"
@@ -6985,16 +7026,16 @@ msgstr ""
 "wguide2 : les arguments xfreq1 et xfreq2 doivent être tous les deux de taux-"
 "a ou de taux-k et i"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr "erreur à l'allocation du moteur fluid\n"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr "fluid : impossible d'ouvrir le fichier %s"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
@@ -7003,15 +7044,15 @@ msgstr ""
 "résultat : %d \n"
 " Note off : c:%3d k:%3d\n"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr "Méthode d'interpolation illégale : doit valoir 0, 1, 4 ou 7.\n"
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr "Pas de table pour VibWaveato"
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr "Pas de table pour FM40p"
 
@@ -7028,7 +7069,7 @@ msgstr "Fermeture du fichier '%s'...\n"
 msgid "invalid file handle"
 msgstr "descripteur de fichier non valide"
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
 msgstr "nom de fichier non valide"
 
@@ -7037,30 +7078,30 @@ msgstr "nom de fichier non valide"
 msgid "error opening file '%s'"
 msgstr "erreur en ouvrant le fichier '%s'"
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr "erreur en ouvrant le fichier son '%s'"
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 "impossible de fermet '%s' : il n'a pas été trouvé dans la liste des fichiers "
 "ouverts"
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 "impossible de fermer le fichier #%d : ce n'est pas un descripteur valide"
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr "le fichier #%d (%s) est utilisé, il sera fermé à sa libération"
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 msgid "fouti: invalid file handle"
 msgstr "fouti : descripteur de fichier non valide"
 
@@ -7130,7 +7171,7 @@ msgstr ""
 "olabuffer : erreur, le facteur de superposition doit être un multiple entier "
 "de la taille du tableau de taux-k"
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
@@ -7138,7 +7179,7 @@ msgstr ""
 "olabuffer : erreur, la taille du tableau de taux-k divisée par le facteur de "
 "superposition doit être supérieure ou égale à ksmps"
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr "freeverb : non initialisé"
 
@@ -7165,12 +7206,12 @@ msgstr "ftconv : non initialisé"
 msgid "Error deleting ftable %d"
 msgstr "Erreur en supprimant la ftable %d"
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr "ftgen : argument chaîne interdit"
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr "erreur de ftgen"
 
@@ -7217,30 +7258,30 @@ msgstr "ftsave : impossible d'ouvrir le fichier"
 msgid "ftsave: failed to write file"
 msgstr "ftsave : impossible d'ouvrir le fichier"
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr ""
 "Impossible de charger le fichier. Erreur d'ouverture du répertoire : %s\n"
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr "Erreur : il faut donner le nom d'un répertoire."
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr "Erreur : le second paramètre du répertoire doit être une chaîne"
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr "Répertoire introuvable. Erreur d'ouverture du répertoire : %s\n"
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr "fastab : numéro de table incorrect"
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr "tabw hors-limite"
 
@@ -7266,47 +7307,43 @@ msgstr "tabw_i : numéro de table incorrect"
 msgid "tabw_i off end"
 msgstr "tabw_i hors-limite"
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr "tab hors-limite %d"
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr "tab_init : numéro de table incorrect"
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr "printi : le paramètre n'était pas une \"chaîne entre guillemets\""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr "adsynt2 : la table d'onde n'a pas été trouvée !"
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr "adsynt2 : la table de fréq n'a pas été trouvée !"
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 "adsynt2 : le nombre de partiels est supérieur à la taille de la table de "
 "fréq !"
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr "adsynt2 : la table d'amp n'a pas été trouvée !"
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 "adsynt2 : le nombre de partiels est supérieur à la taille de la table d'amp !"
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
 msgstr "adsynt2 : non initialisé"
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr "max_k : valeur de imaxflag non valide"
 
@@ -7346,7 +7383,7 @@ msgstr "vphaseseg : la première fonction est non valide ou manquante"
 msgid "Failed to find ftable"
 msgstr "ftable introuvable"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
 msgstr "vphaseseg : nombre d'éléments non valide"
 
@@ -7543,345 +7580,345 @@ msgstr "vmult : la longueur de ifn1 a été dépassée"
 msgid "vpow_i: invalid table number %i"
 msgstr "vpow_i : numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr "vpow_i : la longueur de ifn a été dépassée"
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr "vpow : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr "vexp_i : numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr "vexp_i : la longueur de ifn a été dépassée"
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr "vexp : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr "vectorsop : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr "vectorsop : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr "vcopy : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr "vcopy : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr "vcopy_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr "vcopy_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr "vcopy_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr "vcopy_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr "vaddv : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr "vaddv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr "vaddv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr "vaddv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr "vaddv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr "vaddv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr "vsubv :  la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr "vsubv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr "vsubv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr "vsubv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr "vsubv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr "vsubv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr "vmultv : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr "vmultv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr "vmultv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr "vmultv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr "vmultv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr "vmultv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr "vdivv : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr "vdivv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr "vdivv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr "vdivv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr "vdivv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr "vdivv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr "vpowv : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr "vpowv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr "vpowv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr "vpowv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr "vpowv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr "vpowv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr "vexpv : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr "vexpv : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr "vexpv_i : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr "vexpv_i : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr "vexpv_i : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr "vexpv_i : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr "vmap : Erreur : ifn1 et ifn2 ne peuvent pas être les mêmes"
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr "vmap : ifn1 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr "vmap : ifn2 numéro de table %i non valide"
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr "vmap : la longueur de ifn1 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr "vmap : la longueur de ifn2 a été dépassée"
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
 msgstr "vectorop : nombre d'éléments non valide"
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
 msgstr "vport : longueur de table ou nombre d'éléments non valides"
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
 msgstr "vport : table non valide"
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
 msgstr "vport : longueur de table init ou nombre d'éléments non valides"
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
 msgstr "vport : table non valide"
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
-msgstr "vrandh : graine à partir de l'horloge %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
+msgstr "vrandh : graine à partir de l'horloge %u\n"
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
 msgstr "vrandh : table non valide."
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr "vrandh : idstoffset est supérieur à la longueur de la table."
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr "randh : longeur de la table dépassée, derniers éléments ignoré."
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
-msgstr "vrandi : graine à partir de l'horloge %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
+msgstr "vrandi : graine à partir de l'horloge %u\n"
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
 msgstr "vrandi : table non valide."
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr "vrandi : idstoffset est supérieur à la longueur de la table."
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr "vrandi : longueur de la table dépassée, derniers éléments ignorés."
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
 msgstr "vecdelay : nombre d'éléments non valide"
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
 msgstr "vecdly : table de sortie non valide"
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
 msgstr "vecdly : table d'entrée non valide"
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
 msgstr "vecdly : table de délai non valide"
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
 msgstr "vecdly : non initialisé"
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr "vlinseg/vexpseg : nombre d'éléments non valide"
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr "tableseg : non initialisé"
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr "tablexseg : non initialisé"
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
 msgstr "vdelayk : non initialisé"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
 msgstr "cella : nombre d'éléments non valide"
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
 msgstr "cella : table de sortie non valide"
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
 msgstr "cella : table d'état initial non valide"
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
 msgstr "cella : table de règle non valide"
 
@@ -7970,15 +8007,15 @@ msgstr "granule_set : kgsize doit être supérieur à 0"
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr "granule_set : igsize_os doit être entre 0%% et 100%%"
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr "granule_set : valeur illégale de iatt et/ou de idec"
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr "granule_set : combinaison illégale de igskip et de ilength"
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7993,7 +8030,7 @@ msgstr ""
 "              prendre en considération igsize_os et igskip_os.\n"
 "ilength vaut %f sec, kgsize vaut %f sec\n"
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr "grain4 : non initialisé"
 
@@ -8009,31 +8046,31 @@ msgstr "le signal de l'harmonizer a une conduite négative\n"
 msgid "harmon234: out of range\n"
 msgstr "harmon234 : hors limites\n"
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 "hdf5write : erreur, le premier argument doit être une chaîne de caractères, "
 "abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr "hdf5write : erreur, impossible d'identifier le type de l'argument %zd"
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr "Ceci ne devrait pas arriver, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr "hdf5read : erreur, plus d'arguments en entrée qu'en sortie, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr "hdf5read : erreur, plus d'arguments en sortie qu'en entrée, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
@@ -8041,29 +8078,29 @@ msgstr ""
 "hdf5read : erreur, l'arg d'entrée %zd n'est pas une chaîne de caractères, "
 "abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr "hdf5read : erreur, l'arg d'entrée %zd est de type inconnu, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 "hdf5read : erreur, l'arg de sortie %zd est une chaîne de caractères, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr "hdf5read : erreur, l'arg de sortie %zd est de type inconnu, abandon"
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 "hdf5read : erreur, ensemble de données inexistant ou introuvable dans le "
 "fichier"
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 "hdf5read : erreur, impossible de lire le type de l'ensemble de données, "
@@ -8242,7 +8279,7 @@ msgstr "jacktransport : arrêté.\n"
 msgid "jacktransport: invalid parameter.\n"
 msgstr "jacktransport : paramètre non valide.\n"
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
@@ -8251,62 +8288,82 @@ msgstr ""
 "Impossible de créer le client Jack \"%s\" -- le serveur Jack \"%s\" est-il "
 "actif ? Etat : %d\n"
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr "Client Jack \"%s\" créé pour le serveur Jack \"%s\".\n"
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr "Taille du tampon Jack %d != Csound ksmps %d, sortie...\n"
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr "Taux d'échantillonnage de Jack %d != Csound sr %d, sortie...\n"
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr "Client Jack activé \"%s\".\n"
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr "L'activation du client Jack \"%s\" a échoué : état %d.\n"
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr "Jacko conduit maintenant l'exécution de Csound...\n"
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr "Jacko ne conduit plus l'exécution de Csound.\n"
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr "Exécution de jacko terminée.\n"
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr "DEBUT de JackoState::close()...\n"
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr "Client Jack désactivé.\n"
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr "Ports jack désenregistrés.\n"
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr "FIN de JackoState::close().\n"
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr "La mise de Jack en mode roue libre \"%s\" a échoué : erreur %d.\n"
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr "Jack mis en mode roue libre \"%s\".\n"
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr "Connexions Jack \"%s\".\n"
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr "Impossible de créer le port de Jack \"%s\".\n"
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr "Impossible de créer la connexion Jack de \"%s\" à \"%s\" : état %d.\n"
@@ -8347,18 +8404,18 @@ msgstr "joystick linux : le lecteur %d ferme le joystick"
 msgid "unknown joystick event type %i"
 msgstr "type %i d'évènement de joystick inconnu"
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 "liveconv : longueur de partition de la réponse impulsionnelle non valide"
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 "liveconv : longueur non valide, ou pas assez de données de RI pour la "
 "convolution"
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
 msgstr "liveconv : non initialisé"
 
@@ -8468,18 +8525,18 @@ msgstr "Pas de table pour l'excitation d'Agogobell"
 msgid "modmatrix: "
 msgstr "modmatrix : "
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr "mp3in : %s : l'ouverture du fichier a échoué"
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 "mp3in : taux d'échantillonnage du fichier (%d) != sr de l'orchestre (%d)\n"
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr "mp3scale : %s : l'ouverture du fichier a échoué"
@@ -8512,96 +8569,96 @@ msgstr "grain3 : durée de grain non valide"
 msgid "grain3: invalid grain density"
 msgstr "grain3 : densité de grain non valide"
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr "grain3 : non initialisé"
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr "grain3 nécessite plus de chevauchements"
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr "rnd31 : non initialisé"
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr "redéfinition de la table pour la forme d'onde %d\n"
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr "vco2init : numéro de forme d'onde non valide : %f"
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr "vco2init : numéro de la ftable de base non valide"
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr "vco2init : multiplicateur du nombre d'harmoniques non valide"
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr "vco2init : taille min de table non valide"
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr "vco2init : taille max de table non valide"
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr "vco2init : ftable source non valide"
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 "vco2ft : le tableau de tables pour cette forme d'onde n'a pas été trouvé"
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr "vco2ft : non initialisé"
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr "vco2 : trop d'arguments en entrée"
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr "vco2 : pas assez d'arguments requis"
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 "vco2 : le tableau de tables pour la forme d'onde définie par l'utilisateur "
 "n'a pas été trouvé"
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr "vco2 : non initialisé"
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr "delayk : durée de délai non valide (doit être >= 0)"
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr "delayk : non initialisé"
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr "vdel_k : durée de délai max non valide (doit être >= 0)"
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr "vdel_k : non initialisé"
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr "vdel_k : durée de délai non valide (doit être >= 0)"
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr "rbjeq : type de filtre non valide"
 
@@ -8617,6 +8674,15 @@ msgstr "Pas de gant ouvert"
 msgid "Unknown panning type"
 msgstr "Type de panoramique inconnu"
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr "partials : la première entrée n'est pas au format AMP_FREQ\n"
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+"partials : pas d'entrée de phase, les pistes ne contiendront que amp & fréq\n"
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr "partikkel :"
@@ -8688,37 +8754,37 @@ msgstr "Pas de table pour Brass"
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr "Pas de fréquence de base pour brass -- on suppose qu'elle vaut 50 Hz\n"
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr "les vitesses négatives sont interdites !!, correction\n"
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr "Enveloppe : valeur=%f cible=%f vitesse=%f état=%d\n"
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr "Niveau d'entretien hors limites !!, correction\n"
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr "les valeurs de temps négatives sont interdites !!, correction\n"
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr "iprd illégal"
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr "iocts illégal"
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr "ifrqs illégal"
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr "nombre de partiels illégal"
 
@@ -8726,7 +8792,7 @@ msgstr "nombre de partiels illégal"
 msgid "per octave rolloff too steep"
 msgstr "pente par octave trop raide"
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr "valeurs lo-hi illégales"
 
@@ -8801,11 +8867,10 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 "pinkish : la méthode de Gardner nécessitre 4-%d bandes. La valeur par défaut "
-"%ld a été substituée à %d.\n"
+"%d a été substituée à %d.\n"
 
 #: Opcodes/pitch.c:1685
 msgid "Incorrect argument count in transeg"
@@ -8827,16 +8892,16 @@ msgstr "transeg : non initialisé (taux-a)\n"
 msgid "Incorrect argument count in transegr"
 msgstr "Nombre d'arguments incorrect dans transegr"
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr "median : non initialisé (taux-a)\n"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr "median : fenêtre (%d) plus grande que le maximum (%d) ; tronquée"
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr "median non initialisé (taux-k)\n"
 
@@ -8850,12 +8915,12 @@ msgstr "Muting des nouvelles instances de l'instr %d\n"
 msgid "Allowing instrument %d to start\n"
 msgstr "L'instrument %d est autorisé à démarrer\n"
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr "ptrack : taille de TFR hors limites ; on utilise %d\n"
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8869,18 +8934,9 @@ msgstr "Table d'entrée manquante ou trop courte !"
 msgid "Missing output table or too short"
 msgstr "Table de sortie manquante ou trop courte !"
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr "Impossible d'allouer la forme initiale"
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr "Mémoire tampon non allouée !"
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
-msgstr "Erreur : %s, %s"
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
+msgstr "wgpluck : impossible d'allouer la forme initiale"
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
 msgid "psynth: first input not in TRACKS format\n"
@@ -8942,8 +8998,8 @@ msgstr "pvoc-ex fichier %s : la taille de TFR %d est trop grande pour Csound"
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
-msgstr "La trame PV %ld semble trop petite dans %s"
+msgid "PV frame %d seems too small in %s"
+msgstr "La trame PV %d semble trop petite dans %s"
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
 #, c-format
@@ -8955,30 +9011,30 @@ msgstr "pvoc-ex : le fichier %s n'est pas mono"
 msgid "PVBUFREAD cannot load %s"
 msgstr "PVBUFREAD ne peut pas charger %s"
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr "La trame PVOC %ld est plus grande que %ld dans %s"
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr "La trame PVOC %ld semble trop petite dans %s"
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr "%d canaux (pas 1) dans le fichier PVOC %s"
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr "Un ksmps de %d necécessite une fenêtre de %d, max vaut %d pour pv %s"
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr "PVOC ktimpnt a été tronqué à la dernière trame"
 
@@ -8986,8 +9042,8 @@ msgstr "PVOC ktimpnt a été tronqué à la dernière trame"
 msgid "pvbufread: not initialised"
 msgstr "pvbufread : non initialisé"
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr "PVOC timpnt < 0"
 
@@ -9007,41 +9063,41 @@ msgstr ""
 "pvinterp : %s : la taille de trame %d ne correspond pas à la taille de trame "
 "%d de pvbufread\n"
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr "pvinterp : non initialisé"
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr "PVOC transpose trop bas"
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr "PVOC transpose trop haut"
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr "pvcross : pas de pvbufread associé"
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr "PVCROSS ne peut pas charger %s"
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 "pvcross : %s : la taille de trame %d ne correspond à la taille de trame %d "
 "de pvbufread\n"
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr "PVOC debuf : une trame est passée\n"
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr "pvcross : non initialisé"
 
@@ -9057,7 +9113,7 @@ msgstr "filescal : nombres de canaux différents. %d sorties, %d entrées\n"
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr "Il est risqué d'avoir le même fsig en entrée et en sortie"
 
@@ -9184,20 +9240,20 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr "SDFT pas encore implémentée"
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr "erreur... impossible de créer une var globale pour le descripteur\n"
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 "erreur... impossible de lire le descripteur dans les variables globales\n"
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr "Descripteur de tampon non valide"
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr "longueur de table trop petite : %d attendu, %d obtenu\n"
@@ -9235,12 +9291,12 @@ msgstr "slidng non supporté"
 msgid "fsig format not supported"
 msgstr "format fsig non supporté"
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr "Réflexion non valide (%f)\n"
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr "Pickup hors limites (%f)\n"
@@ -9554,54 +9610,54 @@ msgstr "erreur... impossible de créer les globales de sfont\n"
 msgid "powershape: ifullscale must be strictly positive"
 msgstr "powershape : la ftable ifullscale doit être entirèrement positive"
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr "Création de l'instance 0x%x des %d instances de l'outlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr "Suppression de l'instance 0x%x des %d instances de l'outleta %s\n"
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr "Création de l'instance 0x%x de l'inlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr "Instances de l'outlet %s connectées à l'instance 0x%x de l'inlet %s.\n"
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr "Suppression de 0x%x des %d instances de l'outletk %s\n"
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr "Instances de l'outlet %s connectées à l'instance 0x%x de l'inlet %s.\n"
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr "Création de l'instance 0x%x de l'outlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr "Suppression de 0x%x des %d instances de l'outletf %s\n"
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr "inletf : le format de signal doit être amp-phase ou amp-fréq."
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
@@ -9610,12 +9666,12 @@ msgstr ""
 "Création de l'instance 0x%x des %d instances de l'outlet %s (out arraydat: 0x"
 "%x dims: %2d taille: %4d [%4d] données: 0x%x (0x%x))\n"
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr "Sppression de 0x%x des %d instances de l'outletv %s\n"
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
@@ -9624,59 +9680,59 @@ msgstr ""
 "Instance 0x%x de l'inlet %s créée (dans arraydat : 0x%x dims: %2d taille: "
 "%4d [%4d] données: 0x%x (0x%x))\n"
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr "Instances de l'outlet %s connectées à l'instance 0x%x de l'inlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr "Suppression de 0x%x des %d instances de l'outletkid %s\n"
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr "Outlet %s connectée à l'inlet %s.\n"
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr "ftgenonce : réutilisation d'une fonction existante : %f\n"
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr "erreur ftgenonce"
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr "ftgenonce : nouvelle fonction créée : %d\n"
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr "Aucune table pour Modulatr"
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr "Aucune table pour Singwave"
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr "SingWave : rate=%f sweepRate=%f mytime=%f\n"
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr "Le formant %s (numéro %i) a été trouvé\n"
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr "Cette note est trop haute !!\n"
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr "Fixation du phonème : %d %f\n"
@@ -9751,31 +9807,35 @@ msgstr "Nombre de sorties incorrect dans sndwarpst ; doit valoir 2 ou 4"
 msgid "sndwarpst: not initialised"
 msgstr "sndwarpst : non initialisé"
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr "OSCraw : fermeture du socket\n"
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr "Le démarrage de winsock2 a échoué : %d"
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr "Impossible de positionner nonblock"
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr "création du socket"
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr "la lecture depuis le socket a échoué"
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
 msgstr "tableau de sortie trop petit\n"
 
@@ -9798,20 +9858,20 @@ msgstr "la connexion a échoué (%d)"
 msgid "Expected %d got %d\n"
 msgstr "%d attendu, %d obtenu\n"
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr "arguments insuffisants pour les types de message OSC\n"
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr "argument chaîne de caractères attendu\n"
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr "%c : type de donnée non supporté\n"
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr "OSCsend2 a échoué"
 
@@ -9831,20 +9891,20 @@ msgstr "spat3d : non initialisé"
 msgid "spat3di: not initialised"
 msgstr "spat3di : non initialisé"
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr "valeur de Q illégale"
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr "code de dbout inconnu"
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr "spectrum : fenêtre %s, sortie %s, fabrication des tables ...\n"
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
@@ -9853,56 +9913,56 @@ msgstr ""
 "\tcps haut %7.1f\n"
 "\t cps bas  %7.1f\n"
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 "\tQ %4.1f utilise une fenêtre de %d échantillons à chaque octave "
 "descendante\n"
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr "spectrum : sinus fenêtrées : "
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
-"\tle délai de la fenêtre d'analyse de l'oct %d est égal à %ld échantillons "
+"\tle délai de la fenêtre d'analyse de l'oct %d est égal à %d échantillons "
 "(%d ms)\n"
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr "tampons d'octaves descendantes :"
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr "specdisp : non initialisé"
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr "instr %d %s, tfd (%s), %d octaves (%d - %d Hz) :"
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr "instr %d %s, tfd (%s), %d octaves (%3.1f - %3.1f Hz) :"
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr "pente par octave trop raide"
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr "specptrk : %d fréqs, %d%s partiels à "
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr " impair"
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
@@ -9910,7 +9970,7 @@ msgstr ""
 "\n"
 "\t\tvaleurs de rolloff :"
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
@@ -9919,83 +9979,88 @@ msgstr ""
 "\n"
 "\tdbthresh %4.1f : X-corr %s threshon %4.1f, threshoff %4.1f\n"
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr "specptrk : non initialisé"
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr "specsum : non initialisé"
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr "les entrées ont des tailles différentes"
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr "les entrées ont des périodes temporelles différentes"
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr "les entrées ont des résolutions en fréquence différentes"
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr "les entrées ont des types d'amplitude différents"
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr "specaddm : non initialisé"
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr "specdiff: tampons locaux non initialisés"
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr "specdiff : non initialisé"
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr "specscal: tampon local non initialisé"
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr "la table de fscale est manquante"
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr "specscal : non initialisé"
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
 msgstr "spechist : tampons locaux non initialisés"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr "spechist : non initialisé"
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr "specfilt: tampons locaux non initialisés"
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr "la ftable htim est manquante"
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr "la ftable htim doit être entirèrement positive"
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr "intervalle de coef : %6.3f - %6.3f\n"
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr "specfilt : non initialisé"
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr "squinewave iminsweep compris entre 4 et sr/100. Mis à %d par défaut"
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr "fsig = : le signal source n'est pas initialisé"
@@ -10024,7 +10089,7 @@ msgstr "la pile est déjà allouée"
 msgid "stdopcod.c: error: globals already allocated"
 msgstr "stdopcod.c : erreur : les variables globales sont déjà allouées"
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -10108,8 +10173,8 @@ msgstr "CONVOLVE ne peut pas charger %s"
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
-msgstr "%s n'est pas un fichier CONVOLVE (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
+msgstr "%s n'est pas un fichier CONVOLVE (magic %d)"
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
 msgid "CONVOLVE: output channels not equal to number of channels in source"
@@ -10123,8 +10188,8 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
-msgstr "format de données CONVOLVE %ld dans %s non supporté"
+msgid "unsupported CONVOLVE data format %d in %s"
+msgstr "format de données CONVOLVE %d dans %s non supporté"
 
 #: Opcodes/ugens9.c:367
 msgid "convolve: not initialised"
@@ -10215,34 +10280,34 @@ msgstr "vibrato(taux-k) : non initialisé"
 msgid "No table for dconv"
 msgstr "Pas de table pour dconv"
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr "impossible d'allouer la mémoire"
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr "vcomb : non initialisé"
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr "valpass : non initialisé"
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr "ftmorf : iresfn n'existe pas"
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr "iftfn pour ftmorf n'existe pas"
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr "ftmorf : la table iftfn n'a pas la bonne taille"
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr "ftmorf : la table iftfn n'existe pas"
 
@@ -10251,12 +10316,12 @@ msgstr "ftmorf : la table iftfn n'existe pas"
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr "%s : le fichier ATS %s n'a pas été lu (existe-t-il ?)"
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr "%s : soit %s n'est pas un fichier ATS soit l'endianness est incorrect"
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -10268,150 +10333,150 @@ msgstr ""
 "\tles fichiers en octets inversés ne produiront pas de résultat audio\n"
 "\tdifférent, mais leur traitement pourra être plus lent."
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 "ATSINFO : emplacement hors limites : les seules sélections possibles sont 0-8"
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 "ATSREAD : le partiel %i est hors limites, la valeur max autorisée est %i"
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr "Type non implémenté"
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 "ATSREAD : seules les valeurs de pointeur temporel positives sont admises, "
 "fixée à zéro\n"
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 "ATSREAD : pointeur temporel hors limites, tronqué à la dernière trame\n"
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr "ATSREAD : non initialisé"
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 "ATSREADNZ : bande %i hors limite, les valeurs de bande valides sont 1-25"
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 "ATSREADNZ : soit le type n'est pas implémenté soit il ne contient pas de "
 "bruit"
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 "ATSREADNZ : seules les valeurs de pointeur temporel positives sont admises, "
 "fixée à zéro\n"
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 "ATSREADNZ : pointeur temporel hors limites, tronqué à la dernière trame\n"
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr "ATSREADNZ : non initialisé"
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 "ATSADD : le numéro de la table de fonction pour la forme d'onde de synthèse "
 "n'est pas valide"
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr "ATSADD : le numéro de la table de fonction gate n'est pas valide"
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr "ATSADD : partiel(s) hors limites, le partiel max autorisé est %i"
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr "ATSADD : type non implémenté"
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 "ATSADD : seules les valeurs de pointeur temporel positives sont admises, "
 "fixée à zéro\n"
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr "ATSADD : pointeur temporel hors limites, tronqué à la dernière trame\n"
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr "ATSADD : non initialisé"
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr "ATSADDNZ : ce type de fichier ne contient pas de bruit"
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 "ATSADDNZ : ce type de fichier n'a pas encore été implémenté dans ce code."
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr "ATSADDNZ : bande(s) hors limites, la bande maximale autorisée est 25"
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 "ATSADDNZ : seules les valeurs de pointeur temporel positives sont admises, "
 "fixée à zéro\n"
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 "ATSADDNZ : pointeur temporel hors limites, tronqué à la dernière trame\n"
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr "ATSSINNOI : partiel(s) hors limites, le partiel max autorisé est %i"
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr "ATSSINNOI : type non implémenté"
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 "ATSSINNOI : seules les valeurs de pointeur temporel positives sont admises, "
 "fixée à zéro\n"
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 "ATSSINNOI : pointeur temporel hors limites, tronqué à la dernière trame\n"
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr "ATSBUFREAD : partiel hors limites, le partiel max est %i"
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr "ATSBUFREAD : type non implémenté"
 
@@ -10485,7 +10550,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr "ATSCROSS : il faut avoir un atsbufread avant un atsinterpread"
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr "Le mode du phaser doit valoir 1 ou 2"
 
@@ -10499,11 +10564,11 @@ msgstr "Hors limites dans vaget (%d)"
 msgid "Out of range in vaset (%d)"
 msgstr "Hors limites dans vaset (%d)"
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr "vbap : erreur lors de l'allocation de la table de haut-parleurs"
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
@@ -10511,24 +10576,25 @@ msgstr ""
 "Le nombre de haut-parleurs est zéro\n"
 "Fin du traitement"
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
-msgstr "Erreur dans la dimension de haut-parleur."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
+msgstr "Erreur dans la dimension de haut-parleur, %d est interdit."
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr "Trop peu de haut-parleurs"
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
-msgstr "Trop peu de données de haut-parleurs (%n)\n"
+msgid "Too little data speakers (%d)\n"
+msgstr "Trop peu de données de haut-parleurs (%d)\n"
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr "Non valide en configuration 3-D"
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
@@ -10536,40 +10602,40 @@ msgstr ""
 "\n"
 "Haut-parleurs configurés\n"
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr "Haut-parleurs triplet %d : "
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr "La paire de haut-parleurs en %f et %f est ignorée\n"
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
 msgstr "nombre de haut-parleurs insuffisant"
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr "Haut-parleurs Paire %d : "
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr "Avertissement : l'élévation est tronquée vers un plan 2-D\n"
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, c-format
 msgid "could not find layout table no.%d"
 msgstr "la table de disposition no.%d est introuvable"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
@@ -10577,31 +10643,31 @@ msgstr ""
 "vbap : système NON configuré.                \n"
 "L'opcode vbaplsinit manque-t-il dans l'orchestre ?"
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr "Il manque des champs dans vbapmove\n"
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr "Avertissement : transition ambiguë de 180 degrés.\n"
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr "Il faut au moins %d directions dans vbapmove"
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr "Dimension incorrecte"
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
 msgstr "Tableau de sortie non initialisé"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
@@ -10609,11 +10675,11 @@ msgstr ""
 "vbap : système NON configuré.                \n"
 "L'opcode vbaplsinit manque-t-il dans l'orchestre ?"
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
 msgstr "la table de disposition nO.0 est introuvable"
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
 msgstr "Tableau de sortie de vpabmove non initialisé"
 
@@ -10621,34 +10687,67 @@ msgstr "Tableau de sortie de vpabmove non initialisé"
 msgid "Missing fields in vbapzmove\n"
 msgstr "Il manque des champs dans vbapzmove\n"
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr "Il faut au moins %d directions dans vbapzmove"
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr "vpvoc : la table ifnmagctrl %f n'a pas été trouvée"
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr "vpvoc : tableseg associé non trouvé"
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr "VPVOC ne peut pas charger %s"
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr "vpvoc : non initialisé"
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr "vstinit : erreur lors du chargement de l'effet."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr "vstaudio : trop d'arguments en entrée"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr "Erreur : BeginLoadBank."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr "L'ID de la banque chargée ne correspond pas à l'ID du greffon."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr "La banque chargée contient un format de chunk que l'effet ne gère pas."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr "Problème au chargement de la banque."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr "VSTprogset : programme %d traité comme 1\n"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr "vstnote_init : pas de programmation de note à durée nulle.\n"
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr "wterrain : ftable non trouvée"
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 "La table source doit avoir la même taille ou être plus petite que la table "
@@ -10678,12 +10777,12 @@ msgstr "Scantable : la table de vélocité n'a pas été trouvée"
 msgid "Table lengths do not agree!!"
 msgstr "Les longueurs des tables ne concordent pas !!"
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr "websocket : données de la variable %s non envoyées, tampon saturé\n"
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
@@ -10693,7 +10792,7 @@ msgstr ""
 "réception est supportée\n"
 "Sortie"
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
@@ -10703,7 +10802,7 @@ msgstr ""
 "initialisée\n"
 "Sortie"
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
@@ -10712,7 +10811,7 @@ msgstr ""
 "websocket : erreur, la variable tableau %s n'a pas été initialisée\n"
 "Sortie"
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
@@ -10720,7 +10819,7 @@ msgstr ""
 "websocket : erreur, argument incompatible détecté\n"
 "Sortie"
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
@@ -10729,24 +10828,24 @@ msgstr ""
 "websocket : le message reçu a une taille incorrecte pour la variable %s, "
 "message éliminé"
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 "websocket : la chaîne de caractères reçue de %s est trop grande, message "
 "supprimé"
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr "websocket : élimination du message reçu de %s, tampon saturé"
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr "websocket : connexion établie pour %s\n"
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr "websocket : impossible d'initialiser websocket. Sortie"
 
@@ -10792,662 +10891,711 @@ msgid "Error opening log file '%s': %s\n"
 msgstr "Erreur en ouvrant le fichier journal '%s' : %s\n"
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
-msgstr "--help\taffiche les noms d'option longs "
+msgid "--help      print long usage options"
+msgstr "--help      affiche les noms d'option longs "
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
-msgstr "--version\taffiche les détails de version"
+msgid "--version   print version details"
+msgstr "--version   affiche les détails de version"
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
-msgstr "-U unam\tlance l'utilitaire unam"
+msgid "-U unam     run utility program unam"
+msgstr "-U unam     lance l'utilitaire unam"
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
-msgstr "-C\tutilisation du traitement de partition Cscore"
+msgid "-C          use Cscore processing of scorefile"
+msgstr "-C          utilisation du traitement de partition Cscore"
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
-msgstr "-j N\tutiliser N threads pendant l'exécution"
+msgid "-j N        use N threads in performance"
+msgstr "-j N        utiliser N threads pendant l'exécution"
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
-msgstr "-I\tn'exécuter que la passe de temps-I de l'orchestre"
+msgid "-I          I-time only orch run"
+msgstr "-I          n'exécuter que la passe de temps-I de l'orchestre"
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
-msgstr "-n\tpas de son vers le disque"
+msgid "-n          no sound onto disk"
+msgstr "-n          pas de son vers le disque"
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
-msgstr "-i fnam\tnom du fichier son en entrée"
+msgid "-i fnam     sound input filename"
+msgstr "-i fnam     nom du fichier son en entrée"
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
-msgstr "-o fnam\tnom du fichier son en sortie"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
+msgstr "-o fnam     nom du fichier son en sortie"
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
-"-b N\tnombre de trames d'échantillonnage (ou -kprds) par tampon logiciel d'E/"
-"S"
+"-b N        nombre de trames d'échantillonnage (ou -kprds) par tampon "
+"logiciel d'E/S"
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
-msgstr "-B N\tnombre d'échantillons par tampon physique d'E/S"
+msgid "-B N        samples per hardware sound I/O buffer"
+msgstr "-B N        nombre d'échantillons par tampon physique d'E/S"
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
-msgstr "-A\tcréation d'un fichier de sortie au format AIFF"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
+msgstr "-A          création d'un fichier de sortie au format AIFF"
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
-msgstr "-W\tcréation d'un fichier de sortie au format WAV"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
+msgstr "-W          création d'un fichier de sortie au format WAV"
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
-msgstr "-J\tcréation d'un fichier de sortie au format IRCAM"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
+msgstr "-J          création d'un fichier de sortie au format IRCAM"
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
-msgstr "-h\tpas d'en-tête dans le fichier de sortie"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
+msgstr "-h          pas d'en-tête dans le fichier de sortie"
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
-msgstr "-c\téchantillons en caractères signés sur 8 bit"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
+msgstr "-c          échantillons en caractères signés sur 8 bit"
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
-msgstr "-a\téchantillons alaw"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
+msgstr "-a          échantillons alaw"
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
-msgstr "-8\téchantillons en caractères non signés sur 8 bit"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
+msgstr "-8          échantillons en caractères non signés sur 8 bit"
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
-msgstr "-u\téchantillons ulaw"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
+msgstr "-u          échantillons ulaw"
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
-msgstr "-s\téchantillons en entiers courts"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
+msgstr "-s          échantillons en entiers courts"
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
-msgstr "-l\téchantillons en entiers longs"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
+msgstr "-l           échantillons en entiers longs"
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
-msgstr "-f\téchantillons en nombres flottants"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
+msgstr "-f          échantillons en nombres flottants"
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
-msgstr "-3\téchantillons sur 24 bit"
+msgid "-3          24bit sound samples"
+msgstr "-3          échantillons sur 24 bit"
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
-msgstr "-r N\tredéfinition du srate de l'orchestre"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
+msgstr "-r N        redéfinition du srate de l'orchestre"
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
-msgstr "-k N\tredéfinition du krate de l'orchestre"
+msgid "-k N        orchestra krate override"
+msgstr "-k N        redéfinition du krate de l'orchestre"
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
-msgstr "-K\tNe générer aucun bloc PEAK"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
+msgstr "-K          ne générer aucun bloc PEAK"
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
-msgstr "-v\ttraduction détaillée de l'orchestre"
+msgid "-v          verbose orch translation"
+msgstr "-v          traduction détaillée de l'orchestre"
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
-msgstr "-m N\tniveau de message du tty. Somme de :"
+msgid "-m N        tty message level. Sum of:"
+msgstr "-m N        niveau de message du tty. Somme de :"
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
-msgstr "\t\t1=amp des notes, 2=msg dépassement limites, 4=avertissements"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
+msgstr ""
+"              1=amp des notes, 2=msg dépassement limites, 4=avertissements"
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
-msgstr "\t\t0/32/64/96=format d'amp de note (brut, dB, couleurs)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
+msgstr "              0/32/64/96=format d'amp de note (brut, dB, couleurs)"
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
-msgstr "\t\t128=affichage de tests de performance"
+msgid "              128=print benchmark information"
+msgstr "              128=affichage de tests de performance"
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
-msgstr "-d\taucun affichage"
+msgid "-d          suppress all displays"
+msgstr "-d          aucun affichage"
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
-msgstr "-g\tpas de graphiques, affichage ascii"
+msgid "-g          suppress graphics, use ascii displays"
+msgstr "-g          pas de graphiques, affichage ascii"
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
-msgstr "-G\tpas de graphiques, affichage PostScript"
+msgid "-G          suppress graphics, use Postscript displays"
+msgstr "-G          pas de graphiques, affichage PostScript"
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
-msgstr "-x nomfic\textraire les données de score.srt dans le fichier 'nomfic'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
+msgstr ""
+"-x nomfic     extraire les données de score.srt dans le fichier 'nomfic'"
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
-"-t N\tutiliser les pulsations non interprétées de la partition, au tempo "
-"initial N"
+"-t N        utiliser les pulsations non interprétées de la partition, au "
+"tempo initial N"
 
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+#: Top/argdecode.c:163
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
-"-t 0\tutiliser score.srt pour la partition triée au lieu d'un fichier "
+"-t 0        utiliser score.srt pour la partition triée au lieu d'un fichier "
 "temporaire"
 
-#: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+#: Top/argdecode.c:164
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
-"-L dnam\tLire des évènements de partition en temps-réel à partir du "
+"-L dnam     Lire des évènements de partition en temps-réel à partir du "
 "périphérique d'entrée en ligne 'dnam'"
 
-#: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
-"-M dnam\tlire des évènements MIDI en temps-réel à partir du périphérique "
+"-M dnam     lire des évènements MIDI en temps-réel à partir du périphérique "
 "'dnam'"
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
-msgstr "-F nomfic\tlire un flux d'évènements MIDI à partir du fichier 'nomfic'"
-
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
-msgstr ""
-"-R\tréécrire l'en-tête continuellement lors de l'écriture d'un fichier son "
-"(WAV/AIFF)"
-
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
-"-H#\taffiche une pulsation de style 1, 2 ou 3 à chaque écriture dans le "
-"fichier son"
+"-F nomfic     lire un flux d'évènements MIDI à partir du fichier 'nomfic'"
 
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
-"-N\tavertir (par un beep) quand la partition ou la piste MIDI est terminée"
-
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
-msgstr "-T\tterminer l'exécution quand la fin du fichier MIDI est atteinte"
+"-R           réécrire l'en-tête continuellement lors de l'écriture d'un "
+"fichier son (WAV/AIFF)"
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
-"-D\tdifférer le chargement de fichier son par GEN01 jusqu'au moment de "
-"l'exécution"
+"-H#         affiche une pulsation de style 1, 2 ou 3 à chaque écriture dans "
+"le fichier son"
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
-msgstr "-Q dnam\tsélectionner le périphérique de sortie MIDI"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
+msgstr ""
+"-N          avertir (par un beep) quand la partition ou la piste MIDI est "
+"terminée"
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
-msgstr "-z\tLister les opcodes de cette version"
+msgid "-T          terminate the performance when miditrack is done"
+msgstr ""
+"-T          terminer l'exécution quand la fin du fichier MIDI est atteinte"
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
-msgstr "-Z\tSortie avec dithering"
+msgid "-D          defer GEN01 soundfile loads until performance time"
+msgstr ""
+"-D          différer le chargement de fichier son par GEN01 jusqu'au moment "
+"de l'exécution"
+
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
+msgstr "-Q dnam     sélectionner le périphérique de sortie MIDI"
 
 #: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
+msgstr "-z          lister les opcodes de cette version"
+
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
+msgstr "-Z          sortie avec dithering"
+
+#: Top/argdecode.c:179
 msgid "--sched     set real-time priority and lock memory"
 msgstr "--sched     fixer la priorité au temps-réel et verrouiller la mémoire"
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
-msgstr "            (nécessite -d et l'audio en temps-réel (-iadc/-odac))"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
+msgstr "              (nécessite -d et l'audio en temps-réel (-iadc/-odac))"
 
-#: Top/argdecode.c:178
+#: Top/argdecode.c:181
 msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr "--sched=N   fixer une priorité spécifique, et verrouiller la mémoire"
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
-msgstr "\t\t\tFixer le format du fichier de sortie"
-
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
-msgstr "--aiff\t\t\tFixer le format AIFF"
-
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
-msgstr "--au\t\t\tFixer le format AU"
-
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
-msgstr "--wave\t\t\tFixer le format WAV"
+msgid "  Set output file format"
+msgstr "  Fixer le format du fichier de sortie"
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
-msgstr "--ircam\t\t\tFixer le format IRCAM"
+msgid "--aiff                  set AIFF format"
+msgstr "--aiff                  fixer le format AIFF"
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
-msgstr "--ogg                   Fixer le format OGG/VORBIS"
+msgid "--au                    set AU format"
+msgstr "--au                    fixer le format AU"
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
-msgstr "--noheader\t\tFormat brut"
+msgid "--wave                  set WAV format"
+msgstr "--wave                  fixer le format WAV"
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
-msgstr "--nopeaks\t\tNe pas écrire d'information de crête"
+msgid "--ircam                 set IRCAM format"
+msgstr "--ircam                 fixer le format IRCAM"
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
+msgstr "--ogg                   fixer le format OGG/VORBIS"
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
-msgstr "--displays\t\tUtilisation des affichages graphiques"
+msgid "--noheader              raw format"
+msgstr "--noheader              format brut"
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
-msgstr "--nodisplays\t\tsuppression de tout affichage"
-
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
-msgstr "--asciidisplay\t\tpas de graphiques, affichage ascii"
+msgid "--nopeaks               do not write peak information"
+msgstr "--nopeaks               ne pas écrire d'information de crête"
 
 #: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
-msgstr "--postscriptdisplay\tpas de graphiques, affichage PostScript"
+msgid "--displays              use graphic displays"
+msgstr "--displays              utilisation des affichages graphiques"
+
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
+msgstr "--nodisplays            suppression de tout affichage"
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
-msgstr ""
-"--defer-gen1\t\tdifférer le chargement de fichier son par GEN01 jusqu'au "
-"moment de l'exécution"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
+msgstr "--asciidisplay          pas de graphiques, affichage ascii"
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
-msgstr ""
-"--iobufsamps=N\t\tnombre de trames d'échantillon (ou -kprds) par tampon "
-"logiciel d'E/S"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
+msgstr "--postscriptdisplay     pas de graphiques, affichage PostScript"
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr "--hardwarebufsamps=N\tnombre d'échantillons par tampon physique d'E/S"
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
-msgstr "--cscore\t\ttraitement du fichier de partition par Cscore"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
+msgstr ""
+"--defer-gen1            différer le chargement de fichier son par GEN01 "
+"jusqu'au moment de l'exécution"
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
-"--orc                   Utilisation d'un fichier orchestre sans partition"
+"--iobufsamps=N          nombre de trames d'échantillon (ou -kprds) par "
+"tampon logiciel d'E/S"
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
-msgstr "--midifile=FNAME\tlire un flot d'évènements MIDI depuis un fichier"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
+msgstr ""
+"--hardwarebufsamps=N    nombre d'échantillons par tampon physique d'E/S"
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
-msgstr "--midioutfile=NOMFIC\técrire la sortie MIDI dans le fichier NOMFIC"
+msgid "--cscore                use Cscore processing of scorefile"
+msgstr "--cscore                traitement du fichier de partition par Cscore"
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
-"--midi-device=DNAME\tlire les évènements MIDI temps-réel depuis le "
-"périphérique"
+"--orc                   Utilisation d'un fichier orchestre sans partition"
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
-"--terminate-on-midi\tterminer l'exécution lorsque la fin de la piste MIDI "
-"est atteinte"
+"--midifile=FNAME        lire un flot d'évènements MIDI depuis un fichier"
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
+msgstr "--midioutfile=NOMFIC    écrire la sortie MIDI dans le fichier NOMFIC"
+
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
-"--heartbeat=N\t\taffiche un battement de coeur de style 1, 2 ou 3 à chaque "
-"écriture dans le fichier son"
+"--midi-device=DNAME     lire les évènements MIDI temps-réel depuis le "
+"périphérique"
 
 #: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+msgid ""
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
-"--notify\t\tavertir (par un beep) quand la partition ou la piste MIDI est "
-"terminée"
+"--terminate-on-midi     terminer l'exécution lorsque la fin de la piste MIDI "
+"est atteinte"
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:219
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
-"--rewrite\t\tréécrire l'en-tête continuellement lors de l'écriture d'un "
-"fichier son (WAV/AIFF)"
-
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
-msgstr "--input=FNAME\t\tnom du fichier son en entrée"
+"--heartbeat=N           affiche un battement de coeur de style 1, 2 ou 3 à "
+"chaque écriture dans le fichier son"
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr "--output=FNAME\t\tnom du fichier son en sortie"
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
-msgstr "--logfile=FNAME\t\tcompte-rendu en sortie dans un fichier"
-
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
-msgstr "--nosound\t\tpas de son en sortie disque ou périphérique"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
+msgstr ""
+"--notify                avertir (par un beep) quand la partition ou la piste "
+"MIDI est terminée"
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
-"--tempo=N\t\tutiliser les pulsations non interprétées de la partition, au "
-"tempo initial N"
+"--rewrite               réécrire l'en-tête continuellement lors de "
+"l'écriture d'un fichier son (WAV/AIFF)"
+
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
+msgstr "--input=FNAME           nom du fichier son en entrée"
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
-msgstr "--i-only\t\tn'exécute que la passe de temps-I de l'orchestre"
+msgid "--output=FNAME          sound output filename"
+msgstr "--output=FNAME          nom du fichier son en sortie"
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-"--syntax-check-only\tarrêt après vérification de la syntaxe de l'orchestre "
-"et de la partition"
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
-msgstr "--control-rate=N\tredéfinition du krate de l'orchestre"
+msgid "--logfile=FNAME         log output to file"
+msgstr "--logfile=FNAME         compte-rendu en sortie dans un fichier"
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
-msgstr "--sample-rate=N\t\tredéfinition du srate de l'orchestre"
+msgid "--nosound               no sound onto disk or device"
+msgstr "--nosound               pas de son en sortie disque ou périphérique"
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
-"--score-in=DNAME\tLire des évènements de partition en temps-réel à partir du "
-"périphérique d'entrée en ligne"
+"--tempo=N               utiliser les pulsations non interprétées de la "
+"partition, au tempo initial N"
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
-msgstr "--messagelevel=N\tniveau de message tty, somme de :"
+msgid "--i-only                I-time only orch run"
+msgstr ""
+"--i-only                n'exécute que la passe de temps-I de l'orchestre"
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr "--messageolevel=O\tniveau de message tty en octal, de :"
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
-msgstr "\t\t\t\t1=amp des notes, 2=msg dépassement limites, 4=avertissements"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
+msgstr ""
+"--syntax-check-only     arrêt après vérification de la syntaxe de "
+"l'orchestre et de la partition"
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
-msgstr "\t\t\t\t0/32/64/96=format d'amp de note (brut, dB, couleurs)"
+msgid "--control-rate=N        orchestra krate override"
+msgstr "--control-rate=N        redéfinition du krate de l'orchestre"
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
-msgstr "\t\t\t\t128=affichage de tests de performance"
+msgid "--sample-rate=N         orchestra srate override"
+msgstr "--sample-rate=N         redéfinition du srate de l'orchestre"
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
-msgstr "--m-amps=[01]\tmessages sur les amps de note"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
+msgstr ""
+"--score-in=DNAME        lire des évènements de partition en temps-réel à "
+"partir du périphérique d'entrée en ligne"
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
-msgstr "--m-range=[01]\tmessages sur les erreurs de dépassement"
+msgid "--messagelevel=N        tty message level, sum of:"
+msgstr "--messagelevel=N        niveau de message tty, somme de :"
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
-msgstr "--m-warnings=[01]\tmessages d'avertissement"
+msgid "--messageolevel=O       tty message level in octal, of:"
+msgstr "--messageolevel=O       niveau de message tty en octal, de :"
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
-msgstr "--m-raw=[01]\tmessages d'amp brute"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
+msgstr "1=amp des notes, 2=msg hors limites, 4=avertissements"
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
-msgstr "--m-dB=[01]\tmessages d'amp en dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
+msgstr "0/32/64/96=format d'amp de note (brut, dB, couleurs)"
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr "--m-colours=[01]\tmessages d'amp en couleur"
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
-msgstr "--m-benchmarks=[01]\taffichage de tests de performance"
+msgid "                          128=print benchmark information"
+msgstr "                          128=affichage de tests de performance"
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
-msgstr ""
-"--csd-line-nums=[01]\tcontrôle comment les numéros de ligne des erreurs sont "
-"affichés"
+msgid "--m-amps=[01]           messages on note amps"
+msgstr "--m-amps=[01]           messages sur les amps de note"
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
-msgstr ""
-"\t\t\t1=numéros de ligne CSD (par défaut), 0=numéros de ligne relatifs ORC/"
-"SCO"
+msgid "--m-range=[01]          messages on range errors"
+msgstr "--m-range=[01]          messages sur les erreurs de dépassement"
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
-msgstr "--extract-score=NOMFIC\textraire à partir de score.srt vers le fichier"
+msgid "--m-warnings=[01]       mesage on warnings"
+msgstr "--m-warnings=[01]       messages d'avertissement"
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
-msgstr "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
+msgstr "--m-raw=[01]            messages d'amp brute"
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
-msgstr "--env:NOM=VALEUR\técrire VALEUR dans la variable d'environnement NOM"
+msgid "--m-dB=[01]             amp messages in dB"
+msgstr "--m-dB=[01]             messages d'amp en dB"
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
-msgstr "--env:NOM+=VALEUR\tajouter VALEUR à la variable d'environnement NAME"
+msgid "--m-colours=[01]        colour amp messages"
+msgstr "--m-colours=[01]        messages d'amp en couleur"
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
-msgstr "--strsetN=VALEUR\t\técrire VALEUR à la position N de la table strset"
+msgid "--m-benchmarks=[01]     print benchmark information"
+msgstr "--m-benchmarks=[01]     affichage de tests de performance"
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
-msgstr "--utility=NOM\t\texécuter un programme utilitaire"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
+msgstr ""
+"--csd-line-nums=[01]    contrôle comment les numéros de ligne des erreurs "
+"sont affichés"
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr "--verbose\t\ttraduction détaillée de l'orchestre"
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
-msgstr "--list-opcodes\t\tLister les opcodes de cette version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
+msgstr ""
+"                          1=numéros de ligne CSD (par défaut), 0=numéros de "
+"ligne relatifs ORC/SCO"
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
-msgstr "--list-opcodesN\t\tListe au format N des opcodes de cette version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
+msgstr "--extract-score=NOMFIC  extraire à partir de score.srt vers le fichier"
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
-msgstr "--dither\t\tSortie avec dithering"
+msgid "--keep-sorted-score"
+msgstr "--keep-sorted-score"
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
-"--dither-triangular\t\tDithering en sortie avec une distribution triangulaire"
+"--env:NOM=VALEUR        écrire VALEUR dans la variable d'environnement NOM"
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
-"--dither-uniform\t\tDithering en sortie avec une distribution rectangulaire"
+"--env:NOM+=VALEUR       ajouter VALEUR à la variable d'environnement NAME"
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
-"--sched\t\t\tfixer la priorité du partage temps-réel et verrouiller la "
-"mémoire"
+"--strsetN=VALEUR        écrire VALEUR à la position N de la table strset"
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
-msgstr "--sched=N\t\tfixer la priorité N et verrouiller la mémoire"
+msgid "--utility=NAME          run utility program"
+msgstr "--utility=NOM           exécuter un programme utilitaire"
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
-msgstr "--opcode-lib=NOMS\tBibliothèques dynamiques à charger"
+msgid "--verbose               verbose orch translation"
+msgstr "--verbose               traduction détaillée de l'orchestre"
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
-msgstr "--opcode-omit=NOMS\tBibliothèques dynamiques à ne pas charger"
+msgid "--list-opcodes          list opcodes in this version"
+msgstr "--list-opcodes          lister les opcodes de cette version"
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
-msgstr "--omacro:XXX=YYY\tFixer la macro de l'orchestre XXX à la valeur YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
+msgstr "--list-opcodesN         liste au format N des opcodes de cette version"
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
-msgstr "--smacro:XXX=YYY\tFixer la macro de la partition XXX à la valeur YYY"
+msgid "--dither                dither output"
+msgstr "--dither                sortie avec dithering"
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
-msgstr "--midi-key=N\t\tLire un message MIDI note on"
+msgid "--dither-triangular     dither output with triangular distribution"
+msgstr ""
+"--dither-triangular     dithering en sortie avec une distribution "
+"triangulaire"
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
-msgstr "\t\t\tnuméro de touche vers le p-champ N comme valeur MIDI [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
+msgstr ""
+"--dither-uniform        dithering en sortie avec une distribution "
+"rectangulaire"
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr "--midi-key-cps=N\tLire un message MIDI note on"
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
-msgstr "\t\t\tnuméro de touche vers le p-champ N en cycles par seconde"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
+msgstr ""
+"--sched                 fixer la priorité du partage temps-réel et "
+"verrouiller la mémoire"
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
-msgstr "--midi-key-oct=N\tLire un message MIDI note on"
+msgid "--sched=N               set priority to N and lock memory"
+msgstr "--sched=N               fixer la priorité N et verrouiller la mémoire"
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
-msgstr "\t\t\tnuméro de touche vers le p-champ N en octave linéaire"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
+msgstr "--opcode-lib=NOMS       bibliothèques dynamiques à charger"
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
-msgstr "--midi-key-pch=N\tLire un message MIDI note on"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
+msgstr "--opcode-omit=NOMS      bibliothèques dynamiques à ne pas charger"
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
-msgstr "\t\t\tnuméro de touche vers le p-champ N en oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
+msgstr ""
+"--omacro:XXX=YYY        fixer la macro de l'orchestre XXX à la valeur YYY"
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
-msgstr "--midi-velocity=N\tLire un message MIDI note on"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
+msgstr ""
+"--smacro:XXX=YYY        fixer la macro de la partition XXX à la valeur YYY"
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
-msgstr "\t\t\t vélocité vers le p-champ N comme valeur MIDI [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
+msgstr "--midi-key=N            router un message MIDI note on"
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr "--midi-velocity-amp=N\tLire un message MIDI note on"
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
-msgstr "\t\t\t vélocité vers le p-champ N comme amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
+msgstr "numéro de touche vers le p-champ N comme valeur MIDI [0-127]"
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
-msgstr "--no-default-paths\tdésactiver les chemins relatifs depuis CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
+msgstr "--midi-key-cps=N        router un message MIDI note on"
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
-msgstr ""
-"--sample-accurate\t\tutiliser une précision de sample-accurate pour les "
-"évènements de partition"
+msgid "                          key number to pfield N as cycles per second"
+msgstr "numéro de touche vers le p-champ N en cycles par seconde"
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
-msgstr "--realtime \t\tmode temps réel prioriataire"
+msgid "--midi-key-oct=N        route MIDI note on message"
+msgstr "--midi-key-oct=N        router un message MIDI note on"
 
 #: Top/argdecode.c:281
-msgid "--nchnls=N\t\t override number of audio channels"
-msgstr "--nchnls=N\t\t écrase le nombre de canaux audio"
+msgid "                          key number to pfield N as linear octave"
+msgstr "numéro de touche vers le p-champ N en octave linéaire"
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
-msgstr "--nchnls_i=N\t\t écrase le nombre de canaux audio en entrée"
+msgid "--midi-key-pch=N        route MIDI note on message"
+msgstr "--midi-key-pch=N        router un message MIDI note on"
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
-msgstr "--Odbfs=N\t\t écrase 0dbfs (amplitude positive max du signal)"
+msgid "                          key number to pfield N as oct.pch"
+msgstr "numéro de touche vers le p-champ N en oct.pch"
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
-msgstr "--sinesize\t\tlongueur de la table de sinus interne"
+msgid "--midi-velocity=N       route MIDI note on message"
+msgstr "--midi-velocity=N       router un message MIDI note on"
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
-"--daemon\t\t daemon mode : n'existe pas si un CSD/orchestre n'est pas donné, "
-"est vide ou ne compile pas"
+"                          vélocité vers le p-champ N comme valeur MIDI "
+"[0-127]"
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
-msgstr ""
-"--port=N\t\t écoute sur le port UDP N pour du code d'instruments/orchestre "
-"(implique --daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr "--midi-velocity-amp=N   router un message MIDI note on"
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
+msgstr "                          vélocité vers le p-champ N comme amplitude"
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
-"--vbr-quality=Ft\t fixe la qualité du taux variable de compression bit0rate"
+"--no-default-paths      désactiver les chemins relatifs depuis CSD/ORC/SCO"
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
-"--devices[=in|out] \t\t liste les périphériques MIDI disponibles et termine"
+"--sample-accurate       utiliser une précision de sample-accurate pour les "
+"évènements de partition"
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
-msgstr ""
-"--midi-devices[=in|out] \t\t liste les périphériques disponibles et termine"
+msgid "--realtime              realtime priority mode"
+msgstr "--realtime              mode temps réel prioriataire"
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
-msgstr "--get-system-sr \t\t affiche le sr du système et termine"
+msgid "--nchnls=N              override number of audio channels"
+msgstr "--nchnls=N              remplace le nombre de canaux audio"
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
-msgstr "--ksmps=N \t\t écrase ksmps"
+msgid "--nchnls_i=N            override number of input audio channels"
+msgstr "--nchnls_i=N            remplace le nombre de canaux audio en entrée"
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
 msgstr ""
-"-fftlib=N \t\t bib de TFR réelle à utiliser (FFTLIB=0, PFFFT = 1, vDSP =2)"
+"--Odbfs=N               remplace 0dbfs (amplitude positive max du signal)"
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
+msgstr "--sinesize              longueur de la table de sinus interne"
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
-msgstr "--help\t\t\tAide détaillée"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+"--daemon                daemon mode : n'existe pas si un CSD/orchestre n'est "
+"pas donné, est vide ou ne compile pas"
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+"--port=N                écoute sur le port UDP N pour du code d'instruments/"
+"orchestre (implique --daemon)"
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+"--vbr-quality=Ft        fixe la qualité de compression du débit binaire "
+"variable"
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+"--devices[=in|out]      liste les périphériques MIDI disponibles et termine"
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr "--midi-devices[=in|out] liste les périphériques disponibles et termine"
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr "--get-system-sr         affiche le sr du système et termine"
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr "--ksmps=N               remplace ksmps"
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+"--fftlib=N              bib de TFR réelle à utiliser (FFTLIB=0, PFFFT = 1, "
+"vDSP =2)"
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+"--udp-echo              affiche les commandes UPD en écho sur le terminal"
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr "--aft-zero              fixe l'aftertouch à 0, pas 127 (par défaut)"
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr "--help                  aide détaillée"
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
-msgstr "options par défaut : csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
+msgstr ""
+"options par défaut : csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
-msgstr "Utilisation : \tcsound [-options] fichierorch fichierpartition\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
+msgstr "Utilisation :     csound [-options] fichierorch fichierpartition\n"
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr "Les options légales sont :\n"
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
@@ -11455,222 +11603,228 @@ msgstr ""
 "Format long :\n"
 "\n"
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 "\n"
 "Format court :\n"
+"\n"
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
-msgstr "ERREUR de la commande csound :\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
+msgstr "Utilisation :      csound [-options] fichierorch fichierpartition\n"
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr "ERREUR de la commande csound :    "
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr "format de sortie inconnu : '%s'"
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr "pas de iobufsamps"
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr "pas de bufsamps matériels"
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr "pas de nom de fichier midi"
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr "-F : stdin n'est pas supporté sur cette plateforme"
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr "pas de nom de fichier midi en sortie"
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr "syntaxe de définition de variable python non valide"
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr "pas de nom de fichier en entrée"
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr "l'entrée ne peut pas être stdout"
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr "l'audio sur stdin n'est pas supporté"
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr "pas de taux de contrôle"
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr "pas de ksmps"
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr "pas de nom de périphérique d'entrée pour la partition"
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr "pas de niveau de message"
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr "pas de messages d'amplitude"
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr "pas de messages de dépassement"
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr "pas de messages d'avertissement"
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr "pas de messages d'amplitude brute"
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr "pas de messages d'amplitude en dB"
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr "pas de messages d'amplitude colorés"
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr "pas de niveau de test de performance"
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr "pas de valeur pour --csd-line-nums"
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr "pas de nom de périphérique midi"
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr "-M : stdin n'est pas supporté sur cette plateforme"
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr "pas de nom de fichier de sortie"
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr "-o ne peut pas être stdin"
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr "audio sur stdout non supporté"
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr "pas de fichier journal"
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr "l'option expression-opt n'a aucun effet\n"
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr "l'option no-expression-opt n'a aucun effet\n"
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr "pas de nom d'utilitaire"
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr "pas de nom de fichier d'extraction de partition"
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr "mode temps réel activé\n"
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr "option longue inconnue : '--%s'"
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr "pas de taux d'échantillonnage"
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr "pas de valeur de tempo"
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr "tempo illégal"
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr "pas de périphérique de sortie MIDI"
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr "Pas de fichier d'indirection"
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr "Impossible d'ouvrir le fichier d'indirection %s\n"
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr "aucun numéro de thread"
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr "option -%c inconnue"
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 "erreur : les noms d'orchestre et de partition sont interdits dans .csound6rc"
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr "stdout n'est pas supporté sur cette plateforme"
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr "stdin n'est pas supporté sur cette plateforme"
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr "%d périphériques de sortie audio \n"
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr "%d périphériques d'entrée audio \n"
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr "%d périphériques de sortie MIDI \n"
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr "%d périphériques d'entrée MIDI \n"
@@ -11823,7 +11977,7 @@ msgstr "Erreur au démarrage du module '%s'"
 msgid "Error de-initialising module '%s'"
 msgstr "Erreur de dé-initialisation du module '%s'"
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
@@ -11832,7 +11986,7 @@ msgstr ""
 "--Csound version %s beta (échantillons en format double) %s\n"
 "[commit : %s]\n"
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
@@ -11841,7 +11995,7 @@ msgstr ""
 "--Csound version %s (échantillons en format double) %s\n"
 "[commit : %s]\n"
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
@@ -11850,7 +12004,7 @@ msgstr ""
 "--Csound version %s beta (échantillons en format float) %s\n"
 "[commit : %s]\n"
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
@@ -11859,264 +12013,264 @@ msgstr ""
 "--Csound version %s (échantillons en format float) %s\n"
 "[commit : %s]\n"
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr "Erreur lors de l'allocation de la liste d'opcodes"
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
-msgstr "Exécution multithread : insno : %3d  démarrage du thread %d sur %d.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
+msgstr "Exécution multithread : démarrage du thread %d sur %d.\n"
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr "Mauvais ThreadId"
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 "Csound n'est pas prêt pour l'exécution : csoundStart() n'a pas été appelée\n"
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr "La partition est finie dans csoundPerformKsmps() avec %d.\n"
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr "Retour prématuré de csoundPerformKsmps().\n"
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr "La partition est finie dans csoundPerformKsmpsInternal().\n"
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr "Retour prématuré de csoundPerformBuffer().\n"
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr "Retour prématuré de csoundPerform().\n"
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr "La partition est finie dans csoundPerform().\n"
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr "csoundPerform() : arrêté.\n"
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr "AVERTISSEMENT : "
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr "rtdummy : l'allocation des variables globales a échoué"
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr "rtaudio : module factice activé\n"
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr " *** erreur : le module rtaudio est fixé par une chaîne vide"
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr " module rtaudio inconnu : '%s', utilisation d'un module factice"
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 "AVERTISSEMENT : l'entrée midi en temps réel est désactivée, utilisation de "
 "fonctions factices\n"
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr "erreur : -+rtmidi contient une chaîne vide"
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr "erreur : -+rtmidi='%s' : module inconnu"
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 "AVERTISSEMENT : la sortie midi en temps réel est désactivée, utilisation de "
 "fonctions factices\n"
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr "Erreur MIDI inconnue"
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr "Echec de l'allocation d'une nouvelle entrée d'opcode."
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr "Echec de l'allocation d'une entrée d'opcode pour %s."
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr "mise en place d'une interface factice\n"
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr "Echec dans csoundInitEnv"
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr "Echec dans csoundInitStaticModules"
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr "Echec dans csoundLoadModules"
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr "Nom du module audio en temps réel"
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr "Nom du module MIDI en temps réel"
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 "Ignorer les évènements (autres que les changements de tempo) dans les pistes "
 "définies par le modèle"
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr "Ne pas traiter les contrôleurs MIDI spéciaux (pédale sustain, etc)"
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr "Champ titre dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr "Champ copyright dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr "Champ copyright court dans le fichier son de sortie"
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr "Champ du logiciel dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr "Champ artiste dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr "Champ commentaire dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr "Champ date dans le fichier son de sortie (pas d'espaces)"
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr "Activer les attributs de message (couleurs, etc)"
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 "Démarrer la restitution de la partition au temps spécifié, en ignorant les "
 "évènements antérieurs"
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr "Ignorer <CsOptions> dans les fichiers CSD (non par défaut)"
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr "Impossible d'ouvrir /proc/cpuinfo. RDTSC n'est pas supporté.\n"
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr "Aucune entrée de fréq CPU valide n'a été trouvée dans /proc/cpuinfo.\n"
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr "csoundDestroyMessageBuffer : tampon de message non alloué."
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr "csound : erreur interne : dépassement du tampon de messages\n"
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr "AVERTISSEMENT : impossible d'ouvrir le fichier csound6rc %s\n"
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr "Lecture des options depuis $CSOUND6RC : %s \n"
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr "Lecture des options depuis $HOME/.csound6rc\n"
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr "Lecture des options depuis le .csound6rc du répertoire local\n"
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 "Csound a déjà démarré, appeler csoundReset()\n"
 "avant de redémarrer\n"
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr "aucun nom d'orchestre"
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr "La lecture du CSD a échoué ... arrêt"
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr "erreur : utilisations multiples de stdin"
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr "erreur : utilisations multiples de stdout"
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 "exécution en temps réel en utilisant un fichier de partition numérique "
 "factice\n"
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr "nom de l'orchestre :   %s\n"
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, c-format
-msgid "Failed to open input file - %s\n"
-msgstr "L'ouverture du fichier d'entrée %s a échoué\n"
+msgid "main: failed to open input file - %s\n"
+msgstr "main : l'ouverture du fichier d'entrée %s a échoué\n"
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr "impossible de compiler l'orchestre"
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
@@ -12124,55 +12278,55 @@ msgstr ""
 "Impossible de compiler l'orchestre.\n"
 "Csound va démarrer sans instruments"
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr "fin de la compilation de l'orchestre"
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr "utilisation du %s précédent\n"
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr "impossible d'ouvrir le fichier de partition %s"
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr "tri de la partition ...\n"
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr "impossible d'ouvrir le fichier d'extraction %s"
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr "  ... extraction ...\n"
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr "fin du tri de la partition"
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr "Vérification de la syntaxe accomplie.\n"
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr "%s n'est pas un réglage d'env SFOUTYP reconnu"
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
-msgstr "Exécution en \"temps réel\" (engineStatus : %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
+msgstr "Evènements de partition en temps réel (engineStatus : %d).\n"
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
-msgstr "Exécution en \"différé\" (engineStatus : %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
+msgstr "Partition compilée (engineStatus : %d).\n"
 
 #: Top/new_opts.c:58
 msgid "<integer>"
@@ -12271,169 +12425,187 @@ msgstr "Arguments non valides dans <CsOptions> : %s"
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr "Arguments non valides dans .csoundrc ou dans le fichier -@ : %s"
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr "La balise fermante </CsOptions> est absente"
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr "\" manquant à la fin de la chaîne de caractères"
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr "La balise fermante </CsInstruments> est absente"
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr "La balise fermante </CsScore> est absente"
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr "La balise fermante </CsScore> est absente"
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr "Création de %s (%p)\n"
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr "La génération externe a échoué"
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr "et effaçage impossible"
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr "et impossible d'effacer %s"
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr "%s ouvert\n"
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr "fermeture de %s\n"
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr "et impossible d'effacer %s\n"
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr "Le caractère %c(%2x) n'est pas en base64"
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr "Octet tronqué à la fin du flux base64"
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr "Impossible d'ouvrir le fichier temporaire (%s) comme sous-fichier MIDI"
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr "La balise fermante </CsMidifileB> est absente"
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr "Le fichier %s existe déjà"
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr "Impossible d'ouvrir le sous-fichier du fichier d'échantillons (%s)"
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr "La balise fermante </CsSampleB> est absente"
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr "Impossible d'ouvrir le sous-fichier du fichier (%s)"
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr "La balise fermante </CsFileB> est absente"
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr "La balise fermante </CsFileC> est absente"
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr "La balise fermante </CsFile> est absente"
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr "Ce fichier CSD nécessite une version de Csound antérieure à la %d.%02d"
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr "Ce fichier CSD nécessite une version de Csound ultérieure à la %d.%02d"
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr "Ce fichier CSD nécessite Csound version %d.%02d ou ultérieure"
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr "Ce fichier CSD nécessite la version %d.%02d de Csound"
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr "La balise fermante </CsVersion> est absente"
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr "**** Information de Licence ****\n"
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr "**** Fin de l'Information de Licence ****\n"
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr "La balise fermante </CsLicence> est absente"
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr "La balise fermante </CsShortLicence> est absente"
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr "DEBUT DU FICHIER\n"
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr "Création des options\n"
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr "On ignore <CsOptions>\n"
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr "Création de l'orchestre\n"
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr "Création de la partition\n"
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr "On ignore <CsMidifileB>\n"
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr "La balise fermante </CsMidifileB> est absente"
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 "CsFile est obsolète et pourrait ne pas fonctionner ; utiliser CsFileB\n"
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr "balise CSD inconnue : %s\n"
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 "La balise <CsoundSynthesizer> n'a pas été trouvée dans le fichier CSD.\n"
@@ -12447,26 +12619,74 @@ msgstr "Erreur lors de la création de la liste d'opcodes"
 msgid "%d opcodes\n"
 msgstr "%d opcodes\n"
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr "UDP : le démarrage de winsock2 a échoué : %d"
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr "UDP: erreur lors de la création du socket"
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr "Serveur UDP : impossible de positionner nonblock"
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr "UDP : la fin du socket a échoué"
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr "Serveur UDP démarré sur le port %d\n"
+
+#: Top/server.c:184
+#, c-format
+msgid "could not retrieve channel %s"
+msgstr "Impossible de retrouver le canal %s"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr "Serveur UDP sur le port %d arrêté\n"
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr "erreur lors de la création du socket"
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr "Serveur UDP : s'exécute déjà"
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr "Serveur UDP : n'a pas pu démarrer"
+
+#: Top/server.c:324
+msgid "UDP Server: failed to allocate memory"
+msgstr "Serveur UDP : échec de l'allocation mémoire"
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr "%s() n'est pas implémenté sur cette plateforme.\n"
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr "utilitaire %s :\n"
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr "Erreur : l'utilitaire '%s' n'a pas été trouvé"
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr "Erreur : utilitaire non trouvé"
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr "Les utilitaires disponibles sont :\n"
 
@@ -12483,8 +12703,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr "sauvegarde des données ATS..."
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr "fini !\n"
 
@@ -12614,58 +12834,58 @@ msgstr ""
 "\n"
 "ERREUR : impossible d'ouvrir le fichier %s en écriture\n"
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr "Erreur : le son n'est pas optimisé !"
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr "L'écriture a échoué\n"
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr "atsa : impossible d'ouvrir le fichier '%s' en entrée"
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr "atsa : le fichier a %d voix, doit être mono !"
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr "pistage...\n"
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr "le début %f est hors limites, corrigé à 0.0"
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr "la durée %f est hors limites, limitée à la durée du fichier"
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr "début : %f, durée : %f, durée du fichier : %f\n"
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 "fréq. la plus basse %f hors limites, forcée à la valeur par défaut : %f"
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 "fréq. la plus haute %f hors limites, forcée à la valeur par défaut : %f"
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
@@ -12674,7 +12894,7 @@ msgstr ""
 "dév. de fréq. %f hors limites, doit être > 0.0 et <= 1.0, forcée à la valeur "
 "par défaut : %f"
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
@@ -12683,7 +12903,7 @@ msgstr ""
 "cycles par fenêtre %d hors limites, doivent être entre 1 et 8, forcés à la "
 "valeur par défaut : %d"
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
@@ -12692,7 +12912,7 @@ msgstr ""
 "type de fenêtre %d hors limites, doit être entre 0 et 3, forcé à la valeur "
 "par défaut : %d"
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
@@ -12700,7 +12920,7 @@ msgstr ""
 "taille de saut %f hors limites, doit être > 0.0 et <= 1.0, forcée à la "
 "valeur par défaut : %f"
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
@@ -12709,28 +12929,28 @@ msgstr ""
 "magnitude la plus faible %f hors limites, doit être >= 0.0 et <= 1.0, forcée "
 "à la valeur par défaut : %f"
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 "atsa : %d trames ne suffisent pas pour l'analyse, il en faut au moins %d"
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr "longueur de trajectoire %d hors limites, forcée à : %d"
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr "longueur min. de segment %d hors limites, forcée à : %d"
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr "longueur de blanc min. %d hors limites, forcée à : %d"
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
@@ -12739,7 +12959,7 @@ msgstr ""
 "seuil de SMR %f hors limites, doit être >= 0.0 et < %f dB SPL, forcé à la "
 "valeur par défaut : %f"
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
@@ -12748,7 +12968,7 @@ msgstr ""
 "SMR min. de seg. %f hors limites, doit être >= %f et < %f dB SPL, forcé à la "
 "valeur par défaut : %f"
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
@@ -12757,7 +12977,7 @@ msgstr ""
 "contribution du dernier pic %f hors limites, doit être >= 0.0 et <= 1.0, "
 "forcé à la valeur par défaut : %f"
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
@@ -12766,39 +12986,39 @@ msgstr ""
 "contribution du SMR %f hors limites, doit être >= 0.0 et <= 1.0, forcé à la "
 "valeur par défaut : %f"
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr "Initialisation des données ATS..."
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr "Calcul des résiduels..."
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr "Analyse des résiduels..."
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr "pistage complet.\n"
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr "Remplissage des blancs..."
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr "Elimination des partiels courts..."
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr "Calcul des moyennes..."
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr "Aucun partiel à pister -- arrêt\n"
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr "Analyse du fichier son pour les opcodes ATS"
 
@@ -12826,38 +13046,38 @@ msgstr "pas de durée"
 msgid "unrecognised switch option"
 msgstr "option non reconnue"
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr "nombre illégal de fichiers"
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr "erreur en ouvrant %s"
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr "cvanal : erreur d'allocation de l'en-tête\n"
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr "impossible de créer un fichier de sortie"
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr "impossible d'écrire l'en-tête"
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr "cvanal a fini\n"
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr "cvanal erreur : %s\n"
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
@@ -12866,11 +13086,11 @@ msgstr ""
 "<fichier son en entrée> <fichier de la TFR de la réponse impulsionnelle en "
 "sortie> \n"
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr "moins de son que ce qui était attendu !\n"
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr "Analyse du fichier son pour convolve"
 
@@ -13007,125 +13227,125 @@ msgstr "dnoise : L trop grand\n"
 msgid "writing %u-byte blks of %s to %s"
 msgstr "écriture de blocs de %2$s de %1$u octets vers %3$s"
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr "dnoise : mémoire insuffisante\n"
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr "dnoise : la date de début est supérieure au EOF du fichier de bruit !"
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr "dnoise : pas assez d'échantillons de bruit de référence\n"
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr "%5.1f secondes en entrée\n"
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr "traitement achevé\n"
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr "utilisation : dnoise [options] fichier d'entrée"
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr "options :"
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr "i = fichier son du bruit de référence"
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr "o = fichier de sortie"
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr "N = nombre de filtres passe-bande (1024)"
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 "w = facteur de chevauchement de filtre : {0, 1, (2), 3} NE PAS UTILISER -w "
 "ET -M"
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 "M = longueur de la fenêtre d'analyse (N-1 à moins que -w ne soit spécifié)"
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr "L = longueur de la fenêtre de synthèse (M)"
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr "D = facteur de décimation (M/8)"
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr "b = date de début dans le fichier son du bruit de référence (0)"
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 "B = échantillon de départ dans le fichier son du bruit de référence (0)"
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr "e = date de fin dans le fichier son du bruit de référence (fin)"
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr "E = échantillon de fin dans le fichier son du bruit de référence (fin)"
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr "t = seuil au-dessus du bruit de référence en dB (30)"
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr "S = raideur de la coupure du noise-gate (1) (1 à 5)"
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr "n = nombre de trames de TFR à moyenner (5)"
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr "m = gain minimum du noise-gate pour la fermeture, en dB (-40)"
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr "V : commenté - affichage de l'info d'état"
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr "A : format de sortie AIFF"
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr "W : format de sortie WAV"
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr "J : format de sortie IRCAM"
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 "l'écriture du fichier son a retourné un nombre d'échantillons de %d, au lieu "
 "de %d\n"
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
@@ -13133,7 +13353,7 @@ msgstr ""
 "(le disque est peut-être plein...\n"
 " fermeture du fichier ...)\n"
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr "Nettoie le bruit d'un fichier son"
 
@@ -13141,7 +13361,7 @@ msgstr "Nettoie le bruit d'un fichier son"
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr "Utilisation : \tenvext [-options] fichierson\n"
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr "-o nomfic\tnom du fichier son de sortie\n"
 
@@ -13277,35 +13497,35 @@ msgstr "Fréq. de coupure du filtre = %f\n"
 msgid "input and begin times cannot be less than zero"
 msgstr "les dates d'entrée et de début ne peuvent pas être inférieures à zéro"
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr "Erreur de lecture sur %s\n"
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr "le nombre de points de sortie est trop grand"
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr "analyse de l'harmonique numéro %d\n"
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr "fréq estimée à %6.1f, "
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr " max trouvé %6.1f, amp rel %6.1f\n"
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr "Impossible d'écrire dans le fichier SDIF\n"
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
@@ -13314,53 +13534,53 @@ msgstr ""
 "hetro:  %s\n"
 "\tanalyse interrompue"
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr "impossible de créer le fichier de sortie\n"
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr "scale = %f\n"
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 "harmonique %d :\tpoints d'amp %d,\tpoints de frq %d,\tamp de crête %d\n"
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr "%ld octets écrits vers %s\n"
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr "OOPS : SDIF ne fonctionne pas sur cette machine !\n"
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr "Erreur en créant %s\n"
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr "Erreur en écrivant un en-tête de trame SDIF.\n"
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr "Erreur en écrivant un en-tête de matrice SDIF.\n"
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr "Erreur en écrivant des données SDIF.\n"
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr "%d trames 1TRC on été écrites vers %s\n"
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr "Analyse du fichier son pour adsyn"
 
@@ -13447,132 +13667,132 @@ msgstr "Utilisation de la méthode de stockage de pôle\n"
 msgid "Using filter coefficient storage method\n"
 msgstr "utilisation de la méthode de stockage de coefficient de filtre\n"
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 "erreur de lecture du fichier son, impossible de remplir la première trame"
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr "Démarrage d'une nouvelle trame ...\n"
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr "Seulement %d pôles ont été trouvés... désolé\n"
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr "%d poles sont demandés\n"
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr "Erreur dans le coef %d : %f <> %f \n"
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr "erreur d'écriture"
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr "%d trames lpc écrites vers %s\n"
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr "analyse interrompue"
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr "UTILISATION : \tlpanal [options] nomfich_entree nomfich_sortie"
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr "\toù les options sont :"
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 "-s<srate>\ttaux d'échantillonnage en entrée (par défaut celui de l'en-tête "
 "sinon 44100)"
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr "-c<chnlreq>\tcanal du son demandé (canal 1 par défaut)"
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 "-b<begin>\tdate de début dans le fichier son en secondes 0.0 par défaut)"
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 "-d<duree>\tnombre de secondes du fichier son à analyser par défaut jusqu'à "
 "EOF)"
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr "-p<npoles>\tnombre de pôles pour l'analyse (par défaut 34)"
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 "-h<hopsize>\tdécalage en échantillons entre les trames (par défaut 200)"
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr "\t\t\t(la taille de trame vaudra deux fois <hopsize>)"
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr "-C<string>\tchamp commentaire de l'en-tête lp (vide par défaut)"
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 "-P<mincps>\tlimite inférieure pour la détection de hauteur par défaut 70 Hz)"
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr "\t\t\t(-P0 désactive la détection de hauteur"
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 "-Q<maxcps>\tlimite supérieure pour la détection de hauteur (par défaut 200 "
 "Hz)"
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 "-v<verblevel>\tverbosité de l'affichage : 0=aucun, 1=verbeux, 2=déboguage "
 "(par défaut 0)"
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr "-g\taffichage graphique des résultats"
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr "-a\t\tfichier de stockage alternatif (pôles)"
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr "-- nomfic\tCompte-rendu en sortie dans le fichier"
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr "voir aussi : Appendice du Manuel de Csound"
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr "LPTRKFNS : appelé avec un Windsiz trop grand"
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr "Analyse par prédiction linéaire pour lpread"
 
@@ -13584,13 +13804,13 @@ msgstr "Utilisation : lpc_export fichier_lpc fichier_cstext\n"
 msgid "Failed to read LPC header\n"
 msgstr "La lecture de l'en-tête LPC a échoué\n"
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr "La lecture a échoué\n"
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 "traduction du fichier de codage de prédiction linéaire en fichier texte"
@@ -13629,12 +13849,67 @@ msgstr "Utilisation :\tmixer [-options] fichierson [-options] fichierson ..."
 msgid "Legal flags are:"
 msgstr "Les options légales sont :"
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr "-o fnam\tnom du fichier son en sortie"
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr "-A\tcréation d'un fichier de sortie au format AIFF"
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr "-W\tcréation d'un fichier de sortie au format WAV"
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr "-h\tpas d'en-tête dans le fichier de sortie"
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr "-8\téchantillons en caractères non signés sur 8 bit"
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr "-c\téchantillons en caractères signés sur 8 bit"
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr "-a\téchantillons alaw"
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr "-u\téchantillons ulaw"
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr "-s\téchantillons en entiers courts"
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr "-l\téchantillons en entiers longs"
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr "-f\téchantillons en nombres flottants"
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+"-R\tréécrire l'en-tête continuellement lors de l'écriture d'un fichier son "
+"(WAV/AIFF)"
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 "-H#\taffiche une pulsation de style 1, 2 ou 3 à chaque écriture dans le "
 "fichier son"
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+"-N\tavertir (par un beep) quand la partition ou la piste MIDI est terminée"
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr "-F fpnum\ttaux de pondération de l'amplitude pour l'entrée suivante"
@@ -13729,47 +14004,47 @@ msgstr "Pas d'entrée à mixer"
 msgid "Input formats not the same"
 msgstr "Les formats d'entrée ne sont pas les mêmes"
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr "mixer : erreur en ouvrant le fichier '%s'"
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr "écriture de blocs de %2$s de %1$d octets vers %3$s (%4$s)\n"
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr "Impossible d'ouvrir le fichier de la table de pondération %s"
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr "mixage de %ld trames d'échantillons (%3.1f secs)\n"
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr "Val max %d à l'index %ld (temps %.4f, canal %d) %d fois\n"
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr "Val min %d à l'index %ld (temps %.4f, canal %d) %d fois\n"
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr "%d échantillons %s hors limites\n"
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr "Facteur d'échelle max = %.3f\n"
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr "Mélange des fichiers son (max. %d)"
@@ -13992,7 +14267,7 @@ msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 " -i     affiche les valeurs en entiers [par défaut en virgule flottante]"
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -14022,7 +14297,7 @@ msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 "-P fpnum\tpondère le fichier au pourcentage de la valeur maximale donné"
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr "-- nomfic\tcompte-rendu en sortie dans le fichier"
 
@@ -14038,37 +14313,37 @@ msgstr "Si l'échelle vaut 0.0, l'échelle maximale possible est retournée"
 msgid "No maximum"
 msgstr "Pas de maximum"
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr "L'ouverture du fichier de sortie %s a échoué"
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr "écriture de blocs de %2$s de %1$d octets vers %3$s %4$s\n"
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr "L'ouverture de %s a échoué"
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr "mise à l'échelle de %ld trames d'échantillons (%3.1f secs)\n"
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr "Val max %.3f à l'index %ld (temps %.4f, canal %d) %d fois\n"
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr "Val min %.3f à l'index %ld (temps %.4f, canal %d) %d fois\n"
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr "Rapporte et/ou ajuste le gain maximum"
 
@@ -14242,11 +14517,11 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr "libsndfile : erreur : %s\n"
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr "Ne pas utiliser srconv mais le programme src_conv\n"
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
@@ -14256,26 +14531,38 @@ msgstr ""
 "\n"
 "options : "
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 "-P num\trapport de transposition de hauteur (srate/r) [ne pas spécifier à la "
 "fois P et r]"
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr "-Q num\tfacteur de qualité (1 à 8 : par défaut = 2)"
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr "-i nomfic\tfichier de segments"
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr "r num\ttaux d'échantillonnage en sortie (doit être spécifié)"
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr "-J\tcréation d'un fichier de sortie au format IRCAM"
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr "-r N\tredéfinition du srate de l'orchestre"
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr "-K\tNe générer aucun bloc PEAK"
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr "Conversion du taux d'échantillonnage"
 
@@ -14451,116 +14738,169 @@ msgstr "Il faut spécifier un mot-clé d'au moins 2 lettres"
 msgid "Must be \"on\" or \"off\""
 msgstr "Doit être \"on\" ou \"off\""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr "nom de fichier non valide"
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr "Mauvaise armature de clé"
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr "descripteur de fichier non valide"
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr "Passage de paramètre next imbriqué"
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr "Mot-clé non reconnu"
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr "Mauvais nombre de pulsations dans la mesure"
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr "Erreur de syntaxe : impossible de sauvegarder"
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr "Liaison impropre"
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr "Liaison entre hauteurs différentes"
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr "Avertissement : paramètres changés pendant la liaison"
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr "Le numéro du périphérique est hors limites"
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr "La note précédente est perdue : pas d'écriture"
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr "Expension de macro trop longue -- macros circulaires ?"
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr "Erreur de syntaxe : no {"
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr "Instrument non défini"
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr "Instrument non défini"
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr "liaison non résolue"
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr "articulation non résolue"
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr "Liste de notes circulaire\n"
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr "Fin de fichier inattendue"
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr "Erreur de syntaxe : no ="
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr "Erreur de syntaxe : pas de numéro"
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr "Aucun instrument n'est déclaré"
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr "Il manque ="
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr "Classe de hauteur non valide"
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr "traitement scot terminé\n"
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr "scot : %d erreurs.\n"
 
+#~ msgid " merging constants %d) %f\n"
+#~ msgstr " fusion des constantes %d) %f\n"
+
+#~ msgid "input message kcount, %d, %d.%06d\n"
+#~ msgstr "message d'entrée kcount, %d, %d.%06d\n"
+
+#~ msgid "Seeding from current time %lu\n"
+#~ msgstr "Graine à partir de l'horloge %lu\n"
+
+#~ msgid "Farey: Filter type < 1"
+#~ msgstr "Farey : Type de filtre < 1"
+
+#~ msgid "printi parameter was not a \"quoted string\""
+#~ msgstr "printi : le paramètre n'était pas une \"chaîne entre guillemets\""
+
+#~ msgid "--au\t\t\tSet AU format"
+#~ msgstr "--au\t\t\tFixer le format AU"
+
+#~ msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+#~ msgstr ""
+#~ "\t\t\t\t1=amp des notes, 2=msg dépassement limites, 4=avertissements"
+
+#~ msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+#~ msgstr "\t\t\t\t0/32/64/96=format d'amp de note (brut, dB, couleurs)"
+
+#~ msgid "\t\t\t\t128=print benchmark information"
+#~ msgstr "\t\t\t\t128=affichage de tests de performance"
+
+#~ msgid "--help\t\t\tLong help"
+#~ msgstr "--help\t\t\tAide détaillée"
+
+#~ msgid "Buffer memory not allocated!"
+#~ msgstr "Mémoire tampon non allouée !"
+
+#~ msgid "Error: %s, %s"
+#~ msgstr "Erreur : %s, %s"
+
+#~ msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+#~ msgstr "Exécution en \"différé\" (engineStatus : %d).\n"
+
+#~ msgid "Illegal resonk iscl value, %f"
+#~ msgstr "La valeur iscl de resonk est illégale, %f"
+
+#~ msgid "Table write offset %f < 0 or > tablelength"
+#~ msgstr "Décalage d'écriture dans la table %f < 0 ou > longueur de la table"
+
+#~ msgid "perf-pass statements illegal in header blk (%s)\n"
+#~ msgstr ""
+#~ "les instructions d'exécution sont interdites dans le bloc d'en-tête (%s)\n"
+
+#~ msgid "reverb: not intialised"
+#~ msgstr "reverb : non initialisé"
+
 #~ msgid "RAWWAVE_PATH: %s\n"
 #~ msgstr "RAWWAVE_PATH : %s\n"
 
@@ -14735,9 +15075,6 @@ msgstr "scot : %d erreurs.\n"
 #~ msgid "Sfload: cannot use globals"
 #~ msgstr "sfload : impossible d'utiliser des variables globales"
 
-#~ msgid "missing or extra arg"
-#~ msgstr "argument manquant ou en trop"
-
 #~ msgid "too many input args\n"
 #~ msgstr "trop d'arguments en entrée\n"
 
@@ -14847,9 +15184,6 @@ msgstr "scot : %d erreurs.\n"
 #~ msgid "Not a string when needed"
 #~ msgstr "Pas de chaîne alors qu'il en faut une"
 
-#~ msgid "OSCrecv is already running"
-#~ msgstr "OSCrecv s'exécute déjà"
-
 #~ msgid "%s not found, %d opcodes"
 #~ msgstr "%s non trouvé, %d opcodes"
 
@@ -15513,9 +15847,6 @@ msgstr "scot : %d erreurs.\n"
 #~ msgid "multiple uses of xout in the same opcode definition"
 #~ msgstr "utilisations multiples de xout dans la même définition d'opcode"
 
-#~ msgid "too many input args"
-#~ msgstr "trop d'arguments en entrée"
-
 #~ msgid "insufficient required arguments"
 #~ msgstr "arguments requis manquants"
 
@@ -15975,9 +16306,6 @@ msgstr "scot : %d erreurs.\n"
 #~ msgid "sound output format cannot be both -%c and -%c"
 #~ msgstr "le format son de sortie ne peut pas être à la fois -%c et -%c"
 
-#~ msgid "jacktransport rewinded.\n"
-#~ msgstr "jacktransport rembobiné.\n"
-
 #~ msgid ""
 #~ "\n"
 #~ "\n"
diff --git a/po/german.po b/po/german.po
index 05c03c3..8d38fe3 100644
--- a/po/german.po
+++ b/po/german.po
@@ -33,7 +33,7 @@ msgstr "auxlist für instrument %d (%p):\n"
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -100,7 +100,7 @@ msgid "(unknown error)"
 msgstr "(Unbekannter Fehler)"
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr "Speicher ist ausgelastet\n"
 
@@ -108,11 +108,11 @@ msgstr "Speicher ist ausgelastet\n"
 msgid "Null file name in copy_to_corefile"
 msgstr "Null-Dateiname in copy_to_corefile"
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr "Nicht genügend Speicher (realloc gab NULL zurück)\n"
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr "curl_easy_perform() fehlgeschlagen: %s\n"
@@ -122,44 +122,44 @@ msgstr "curl_easy_perform() fehlgeschlagen: %s\n"
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr "Konnte semantische Informationen für Instrument '%i' nicht finden"
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr "Ungültige NULL Parameter Barriere"
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr "Ungültiger Parameter, thread_count must >0 sein"
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr "Konnte Barriere nicht reservieren"
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr "Ungültiges NULL Parameter Set"
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr "Konnte Set nicht reservieren"
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr "Ungültiges Parameter Set: kein Set"
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 #, fuzzy
 msgid "Invalid NULL Parameter data"
 msgstr "Ungültige NULL Parameter Daten"
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr "Konnte Set Element nicht reservieren"
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr "Ungültiger NULL Parameter: set_element"
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr "ungültiger NULL Parameter: out_set_element"
 
@@ -172,11 +172,11 @@ msgstr "Schlecht angegebener, globaler Lock Index: %i [maximal %i]\n"
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr "Ungültiger Parameter Name für eine globale Variable\n"
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr "Füge Konstrukte zur Parallelisierung in AST ein\n"
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr "Instrument %d braucht Locks"
@@ -216,46 +216,51 @@ msgstr "Opcode veraltet"
 msgid "Not a proper list of ints"
 msgstr "Keine korrekte Liste von ints"
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 "FEHLER: es fehlt eine eckige Klammer in der Array-Argument Typen Angabe\n"
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr "create_opcode: keine Regel um eine Anweisung vom Typ %d zu behandeln\n"
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr "%s ist eine ungültige Samplerate"
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr "%s ist eine ungültige Control Rate"
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, fuzzy, c-format
+msgid "%s invalid number of samples"
+msgstr "unzulässiger Name für Instrument"
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr "%s ist ein ungültiger Wert für ksmps"
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr "%s: sr, kr und ksmps sind inkonsistent\n"
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr "%s: sr, kr und ksmps sind inkonsistent \n"
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr "Ungültiger Wert für 0dbfs: muss positiv sein. Setze Standardwert."
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
@@ -264,186 +269,186 @@ msgstr ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "Fehler:"
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr "%s: sr, kr und ksmps sind inkonsistent"
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 "Die Samplerate ist ausschlag gebend: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr "Eine Systemkonstante kann nur einmal gesetzt werden\n"
 
-#: Engine/csound_orc_compile.c:843
-#, c-format
-msgid "create_instrument: instr num %ld\n"
-msgstr ""
+#: Engine/csound_orc_compile.c:860
+#, fuzzy, c-format
+msgid "create_instrument: instr num %d\n"
+msgstr "instr %s verwendet Instrumenten Nummer %d\n"
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr "-- Instrument aus dem Deadpool gelöscht \n"
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr " -- Freie instr def %p %p \n"
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr " -- In Deadpool Slot %d eingefügt \n"
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
-#, c-format
-msgid "instr %ld redefined, replacing previous definition"
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
+#, fuzzy, c-format
+msgid "instr %d redefined, replacing previous definition"
 msgstr "instr %ld redefiniert: ersetze vorherige Definition"
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr "Keine aktiven Instanzen \n"
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr "instr %s verwendet Instrumenten Nummer %d\n"
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr "instr %d redefiniert\n"
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr "Keine aktiven Instanzen von instr %d\n"
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr "!!! csound->opcodeInfo ist NULL !!!\n"
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr " Füge Konstanten %d) %f zusammen\n"
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr " Füge %p %d zusammen) %s:%s\n"
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr " Füge %p %d hinzu) %s:%s\n"
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr " Füge instr %d zusammen\n"
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr "Füge instr %s zusammen \n"
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr "Ungültiger Name für Instrument"
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr "instr %s neu definiert"
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr "FEHLER: konnte keine OPCODINFO für opname %s finden\n"
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 "Habe unbekannten Baumknoten vom Typ %d (%s) im Wurzelknoten gefunden.\n"
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr "%d Syntaxfehler im Ochestra gefunden, Kompilation ungültig\n"
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
-msgstr "perf-pass Anweisungen ungültig im Kopfbereich (header blk) (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
+msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr "Fehlendes lokales Argument: %s\n"
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr "**Nicht eingetragen**"
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr "Opcode \"%s\" ist überholt\n"
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr "Fehler: Funktion %s nicht gefunden, in Zeile %d \n"
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr "Fehler: Opcode %s mit Ausgabe vom Typ %s nicht gefunden, in Zeile %d"
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr "Unbekannten Funktionstypen gefunden: %d [%c]\n"
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr "Unbekannten boolschen Ausdruckstypen gefunden: %d\n"
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr "Kann Array Operatoren für Typen %s nicht finden, in Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 "Nicht-boolschen Ausdruck für den Ternary Operator gefunden, in Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 "Kann keinen Ternary Operator für die Typen '%s ? %s : %s' finden, in Zeile "
 "%d\n"
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr "Benutzung von i() mit einem Ausdruck nicht erlaubt, in Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
@@ -451,14 +456,14 @@ msgstr ""
 "Fehler: Opcode %s für Ausdruck mit Argument vom Typ %s nicht gefunden, in "
 "Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, fuzzy, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr "Kann die Typen der Argumente für Ausdruck '%s' nicht verifizieren\n"
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
@@ -466,7 +471,7 @@ msgstr ""
 "Fehler: Opcode %s für Ausdruck mit Argumententypen %s nicht gefunden, in "
 "Zeile %d \n"
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, fuzzy, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
@@ -474,87 +479,87 @@ msgid ""
 msgstr ""
 "Kann Typen der Argumente für den boolschen Ausdruck '%s' nicht verifizieren\n"
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 "Fehler: Boolschen Ausdruck '%s' mit Argumenten vom Typ %s nicht gefunden, in "
 "Zeile %d \n"
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, fuzzy, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr "Die Variable %s wird benutzt bevor sie definiert ist\n"
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr "Unbekannter Argumententyp: %d\n"
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr "Variablentyp für %s konnte nicht ermittelt werden.\n"
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, fuzzy, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr "Die Variable %s wird benutzt bevor sie definiert ist\n"
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr "Kann einen Opcode mit Namen %s nicht finden\n"
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 "Kann keinen Eintrag für Opcode '%s' mit passenden Argumententypen nicht "
 "finden:\n"
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr "Habe %s %s %s gefunden\n"
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr "Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 "Ausdurck für until/while Anweisung ist kein boolscher Ausdruck, in Zeile %d\n"
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr "Mehrere xin Anweisungen gefunden, es ist nur eine erlaubt."
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr "Mehrere xout Anweisungen gefunden, nur eine ist erlaubt."
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 "Ungültige xin Anweisung für UDO: es wurde %s definiert, aber %s gefunden\n"
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 "Ungültige xout Anweisung für UDO: es wurde %s definiert, aber %s gefunden\n"
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
@@ -563,7 +568,7 @@ msgstr ""
 "\n"
 "Fehler: %s (Symbol \"%s\")"
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
@@ -572,12 +577,12 @@ msgstr ""
 " Zeile %d:\n"
 ">>>"
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr " von Datei %s (%d)\n"
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, fuzzy, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr "Nicht genügend Argumente für Opcode %s in Zeile %d:\n"
@@ -592,75 +597,63 @@ msgstr "Kann Variable %s nicht erzeugen: NULL Typ"
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr "Unvollständiger String in Zeile %d gefunden:>>%s<<\n"
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 #, fuzzy
 msgid "No number following instr\n"
 msgstr "Es folgt keine Zahl nach instr\n"
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr "Nicht definiertes Macro '%s'"
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 #, fuzzy
 msgid "Memory exhausted"
 msgstr "Speicher ausgelastet"
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr "macros/include zu tief verschachtelt "
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 #, fuzzy
 msgid "Too few arguments to macro\n"
 msgstr "Zu wenig Argumente f[r Macro\n"
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
@@ -669,141 +662,144 @@ msgstr ""
 "Fehlender Abschluss des Arguments\n"
 "%.98s"
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr "Unerwartetes EOF"
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr "Unerwartetes Zeichen %c(%.2x) in Zeile %d\n"
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr "#else ohne #if\n"
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr "#else nach #else\n"
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr "#end ohne Blockbeginn\n"
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr "Includes zu tief verschachtelt"
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr "%s ist ein Verzeichnis: es wird nicht eingebunden"
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, fuzzy, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr "Kann Datei %s nicht für #include öffnen\n"
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr "Macro Fehler\n"
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
 # JBS
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr "define macro: unerwartetes Zeichen %c(0x%.2x), erwarte #\n"
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr "define macro mit Argumenten: unerwartetes EOF"
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr "define macro: unerwartetes EOF"
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr "Macro %s nicht definiert\n"
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr "Undefinieren eines nicht definierten Macros"
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr "#if%sdef ohne Abschluss\n"
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr "Macro Definition für %*s\n"
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr "Ungültiger Macroname für --omacro"
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr "Unerwartetes EOF!!\n"
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr "Schleifen sind zu tief verschachtelt"
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr "{: ung[ltige Anzahl für Wiederholung"
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr "%s Verschachtelte Schleife=%d Tiefe:%d\n"
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr "Externe Schleife=%d Tiefe>%d\n"
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr "} ohne { im Score\n"
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr "Section Loops können nicht verschachtelt werden"
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr "r: Ungültige Anzahl für Wiederholung"
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr "r Schleifeß%d\n"
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr "define macro: unerwartetes Zeichen %c(0x%.2x), erwarte #\n"
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -854,7 +850,7 @@ msgstr "Interner Fehler: csoundFileOpen(): ungültiger Typ: %d"
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr "Interner Fehler: csoundCreateFileHandle(): ungültiger Typ: %d"
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr "Nummer des Instruments außerhalb der Reichweite"
 
@@ -871,14 +867,14 @@ msgstr "ftable existiert nicht"
 msgid "ftable %d now deleted\n"
 msgstr "ftable %d jetzt gelöscht\n"
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr "Nicht genügend Argumente für den GEN"
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr "Der benannte GEN \"%s\" ist nicht definiert"
@@ -911,10 +907,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr "Verwende erweiterte Argumente\n"
 
@@ -927,13 +923,13 @@ msgid "illegal x interval"
 msgstr "Ungültiges x Intervall"
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr "Nicht genügend Argumente"
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr "Nummer der Quell Tabelle ist unbekannt"
 
@@ -965,102 +961,102 @@ msgstr "Ungültiger xint Wert"
 msgid "illegal xamp value"
 msgstr "Ungültiger xamp Wert"
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr "Ungerade Anzahl an Argumenten"
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr "GEN Aufruf hat ungültiges x-ordinal Werte"
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr "Falsche Anzahl an Argumenten"
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr "Eine angegebene Reichweite überschreitete die Tabellen Länge"
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr "Eine Eingabefunktion existiert nicht"
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr "Unbekannter Fenster Typ"
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr "Falsche Anzahl von Eingabe Argumenten"
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr "Unbekannte Verteilung"
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr "Fehler beim Öffnen der ASCII Datei"
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr "%ld Elemente in %s\n"
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr "Zahlen nach GEN 23 voll, beginne %f"
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr "Die Tabelle muss die gleiche Größe wie die Quell Tabelle haben"
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr "x-Koordinaten müssen in aufsteigender Reihenfolge gegeben sein:"
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr "X-Koordinate größer als Funktionsgröße:"
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr "Ungültiger Eingabewert für GEN Aufruf (y <= 0), beginnend mit:"
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr "GEN28 benötigt eine Tabellen Länge von Null"
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr "Konnte Space Datei nicht öffnen"
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr "Zeitwerte müssen in aufsteigender Reihenfolge gegeben sein"
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr "GEN30: Quell ftable nicht gefunden"
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr "GEN31: Quell ftable nicht gefunden"
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr "GEN32: Quell ftable %d nicht gefunden"
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr "GEN33: Quell ftable nichyt gefunden"
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr "Nummer der Quell Tabelle ist unbekannt"
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr "GEN41: negative Wahrscheinlichkeit ist nicht erlaubt"
 
@@ -1080,7 +1076,7 @@ msgid "replacing previous ftable %d"
 msgstr "Ersetze vorherige ftable %d"
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1146,7 +1142,7 @@ msgid "GEN1 read error"
 msgstr "GEN1 Lesefehler"
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1158,7 +1154,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr "falsche Zahl von ftable Argumenten"
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1171,57 +1167,66 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
-msgstr ""
+#: Engine/fgens.c:3299
+#, fuzzy
+msgid "GEN53: invalid source table length:"
+msgstr "GEN30: Quell ftable nicht gefunden"
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
-#, c-format
-msgid "activating instr %s at %d\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "activating instr %s at %lld\n"
+msgstr "Füge instr %s zusammen \n"
 
 #: Engine/insert.c:119
-#, c-format
-msgid "activating instr %d at %d\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "activating instr %d at %lld\n"
+msgstr " Füge instr %d zusammen\n"
 
 #: Engine/insert.c:127
 #, c-format
@@ -1233,12 +1238,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 
@@ -1252,76 +1257,76 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 #, fuzzy
 msgid "instance not valid \n"
 msgstr "space: nicht initialisiert"
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
@@ -1329,171 +1334,166 @@ msgstr ""
 "\n"
 "INIT STÖRUNG: "
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s: nicht initialisiert"
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr "subinstr: nicht initialisiert"
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr ""
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 #, fuzzy
 msgid "Failed to set file status\n"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1501,63 +1501,73 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 #, fuzzy
 msgid "instance: error creating event"
 msgstr "Herstellen des Orchesters\n"
 
 #: Engine/memalloc.c:58
-#, c-format
-msgid "memory allocate failure for %lu"
-msgstr ""
+#, fuzzy, c-format
+msgid "memory allocate failure for %zu"
+msgstr "*** Speicherallozierungausfall\n"
+
+#: Engine/memfiles.c:48
+#, fuzzy, c-format
+msgid "failed to open file %s\n"
+msgstr "Störung Öffnung ASCII Akte"
+
+#: Engine/memfiles.c:54
+#, fuzzy, c-format
+msgid "failed to read file %s\n"
+msgstr "Störung Öffnung ASCII Akte"
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr ""
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
@@ -1565,60 +1575,66 @@ msgstr ""
 "PVOCEX_LoadFile(): Störung:\n"
 "    "
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr ""
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, fuzzy, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr "Akte %s Bytes sind im falschen Auftrag"
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1671,7 +1687,7 @@ msgstr ""
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr "\t... getan\n"
 
@@ -1679,8 +1695,8 @@ msgstr "\t... getan\n"
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1690,107 +1706,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1800,30 +1816,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr ""
 
@@ -1832,10 +1848,10 @@ msgstr ""
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
-#, c-format
-msgid "Failed to open input file %s\n"
-msgstr ""
+#: Engine/new_orc_parser.c:149
+#, fuzzy, c-format
+msgid "parser: failed to open input file %s\n"
+msgstr "Störung Öffnung ASCII Akte"
 
 #: Engine/new_orc_parser.c:187
 msgid "Unmatched #ifdef\n"
@@ -1858,259 +1874,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2161,11 +2181,11 @@ msgstr "Störung:  "
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2196,140 +2216,140 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 #, fuzzy
 msgid "WSAStartup failed!\n"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 #, fuzzy
 msgid "Error creating socket"
 msgstr "Herstellen des Orchesters\n"
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr ""
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr ""
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr ""
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, fuzzy, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr "ACHTUNG: konnte nicht %s entfernen\n"
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2499,133 +2519,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr ""
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr ""
 
@@ -2935,286 +2955,286 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 #, fuzzy
 msgid "ALSASEQ input: memory allocation failure"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3233,11 +3253,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr ""
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3270,10 +3295,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3343,19 +3368,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3363,26 +3388,26 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 #, fuzzy
 msgid "put port not connected\n"
 msgstr "---> Konnte nicht anschließen\n"
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3390,146 +3415,146 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 #, fuzzy
 msgid "output port not connected\n"
 msgstr "---> Konnte nicht anschließen\n"
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 #, fuzzy
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3537,68 +3562,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3778,304 +3803,304 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 #, fuzzy
 msgid "No name for FLbutbank"
 msgstr "Keine Tabelle für Flute"
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 #, fuzzy
 msgid "FLsetsnap: invalid table"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 #, fuzzy
 msgid "FL_run: memory allocation failure"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 #, fuzzy
 msgid "FLslider: invalid slider type"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 #, fuzzy
 msgid "FLknob: invalid knob type"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 #, fuzzy
 msgid "FLroller: invalid roller type"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 #, fuzzy
 msgid "FLkeyIn: invalid table number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 #, fuzzy
 msgid "FLsldBnkSet: invalid table number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 #, fuzzy
 msgid "FLsldBnkSet: invalid outable number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 #, fuzzy
 msgid "FLsldBnkSetk: invalid table number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 #, fuzzy
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 #, fuzzy
 msgid "FLslidBnkSetk: invalid table number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 #, fuzzy
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr "unzulässiger Name für Instrument"
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4106,7 +4131,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4127,68 +4152,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr "Abteilung durch null"
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4226,37 +4251,37 @@ msgstr "unzulässiger Name für Instrument"
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 #, fuzzy
 msgid "read failure in sensekey\n"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 #, fuzzy
 msgid "sensekey error:"
 msgstr "envext: Störung: "
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4264,7 +4289,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4274,12 +4299,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, fuzzy, c-format
 msgid "compileorc: could not open %s\n"
 msgstr "ACHTUNG: konnte nicht %s entfernen\n"
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, fuzzy, c-format
 msgid "compileorc: could not read %s\n"
 msgstr "pvsfwrite: konnte nicht Daten schreiben\n"
@@ -4307,27 +4332,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr "diskin2: nicht initialisiert"
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4364,37 +4389,37 @@ msgstr "soundouts: nicht initialisiert"
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr "soundin: nicht initialisiert"
 
@@ -4457,7 +4482,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr "dispfft: nicht initialisiert"
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4538,11 +4563,11 @@ msgstr ""
 msgid "negative time period"
 msgstr "negativer Zeitabschnitt"
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4576,11 +4601,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4592,164 +4617,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr "tablexkt: nicht initialisiert"
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr "pvsynth: nicht initialisiert.\n"
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr "pvscross: nicht initialisiert\n"
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr "pvsfread: Akte ist leer!\n"
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr ""
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr "pvsfread: nicht initialisiert.\n"
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr "pvsmaska: nicht initialisiert\n"
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr "pvsftw: schlechter Wert für ifna.\n"
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr "pvsftw: schlechter Wert für ifnf.\n"
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr "pvsftw: nicht initialisiert\n"
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr "pvsftr: nicht initialisiert\n"
 
@@ -5019,31 +5044,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr "pvsanal: Nicht Initialisiert.\n"
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr "pvsynth: Nicht Initialisiert.\n"
 
@@ -5115,17 +5144,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5190,108 +5219,108 @@ msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr ""
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr "zu viele Argumente"
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 #, fuzzy
 msgid "insufficient arguments for format"
 msgstr "unzulängliche Argumente"
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 #, fuzzy
 msgid "invalid format string"
 msgstr "unzulässiger Name für Instrument"
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 #, fuzzy
 msgid "too many arguments for format"
 msgstr "zu viele Argumente"
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 #, fuzzy
 msgid "invalid format"
 msgstr "unzulässiger Name für Instrument"
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5308,91 +5337,98 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+#, fuzzy
+msgid "incomplete number of input arguments"
+msgstr "Falsche Anzahl von Eingabe Argumenten"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr "linseg nicht initialisiert (krate)\n"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr "linseg: nicht initialisiert (arate)\n"
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr "expseg (krate): nicht initialisiert"
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr "expseg (arate): nicht initialisiert"
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr "envlpx(krate): nicht initialisiert"
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr "cosseg nicht initialisiert (krate)\n"
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr "cosseg: nicht initialisiert (arate)\n"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr "cossegr: nicht initialisiert (arate)\n"
 
@@ -5475,11 +5511,6 @@ msgstr "oscil3(krate): nicht initialisiert"
 msgid "oscil3: not initialised"
 msgstr "oscil3: nicht initialisiert"
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr "foscil: nicht initialisiert"
@@ -5496,42 +5527,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr "adsyn: nicht initialisiert"
 
@@ -5571,120 +5602,115 @@ msgstr "pluck: nicht initialisiert"
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr "Akte %s Bytes sind im falschen Auftrag"
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr "lpread: nicht initialisiert"
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr "lpinterpol: nicht initialisiert"
 
@@ -5742,8 +5768,8 @@ msgstr "deltapn: nicht initialisiert"
 msgid "deltap3: not initialised"
 msgstr "deltap3: nicht initialisiert"
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5764,11 +5790,12 @@ msgstr "alpass: nicht initialisiert"
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
-msgstr ""
+#: OOps/ugens6.c:1176
+#, fuzzy
+msgid "reverb: not initialised"
+msgstr "reverbx: nicht initialisiert"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr "pan: nicht initialisiert"
 
@@ -5901,194 +5928,194 @@ msgstr "printk: nicht initialisiert"
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr "printks: nicht initialisiert"
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+#, fuzzy
+msgid "Insufficient arguments in formatted printing"
+msgstr "unzulängliche Argumente"
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, fuzzy, c-format
 msgid "table: could not find ftable %d"
 msgstr "table: nicht initialisiert"
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr ""
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr "vdelay: nicht initialisiert"
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr "vdelay3: nicht initialisiert"
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr "multitap: nicht initialisiert"
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr "reverbx: nicht initialisiert"
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 #, fuzzy
 msgid "Failed to set multicast"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr ""
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 #, fuzzy
 msgid "OSC deinitiatised\n"
 msgstr "delay: nicht initialisiert"
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 #, fuzzy
 msgid "invalid number of arguments"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, fuzzy, c-format
 msgid "Invalid ftable no. %d"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 #, fuzzy
 msgid "OSC internal error"
 msgstr "Schreibfehler"
@@ -6173,7 +6200,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr "t-var: nicht initialisiert"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6185,190 +6212,205 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 #, fuzzy
 msgid "array-variable not initialised"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, fuzzy, c-format
 msgid "division by zero in array-var at index %d"
 msgstr "Abteilung durch null"
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 #, fuzzy
 msgid "division by zero in array-var"
 msgstr "Abteilung durch null"
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, fuzzy, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr "Abteilung durch null"
+
+#: Opcodes/arrays.c:1329
 #, fuzzy
 msgid "array-variable not a vector"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 #, fuzzy
 msgid "array-variable dimensions do not match"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 #, fuzzy
 msgid "array-variable types do not match"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 #, fuzzy
 msgid "array-var not initialised"
 msgstr "t-var: nicht initialisiert"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr "Keine Tabelle für copy2ftab"
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr ""
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 #, fuzzy
 msgid "array sizes do not match\n"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 #, fuzzy
 msgid "Error: index out of range\n"
 msgstr "Nummer des Instruments außerhalb der Reichweite"
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6393,7 +6435,7 @@ msgstr "vco: nicht initialisiert"
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6480,21 +6522,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6536,134 +6578,134 @@ msgstr "*** Speicherallozierungausfall\n"
 msgid "readi failed to initialise"
 msgstr "lpread: nicht initialisiert"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 #, fuzzy
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr "DSSI4CS: nicht initialisiert or wrong argument types."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6671,27 +6713,36 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+#, fuzzy
+msgid "linlin.k: Division by zero"
+msgstr "Abteilung durch null"
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 #, fuzzy
 msgid "insufficient arguments for fareytable"
@@ -6702,9 +6753,9 @@ msgstr "unzulängliche Argumente"
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6717,10 +6768,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6731,7 +6778,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6739,55 +6786,55 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, fuzzy, c-format
 msgid "could not find DSP %p for deletion"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 #, fuzzy
 msgid "wrong number of input args\n"
 msgstr "Falsche Zahl der Eingang Argumente"
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 #, fuzzy
 msgid "wrong number of output args\n"
 msgstr "Falsche Zahl der Eingang Argumente"
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6804,32 +6851,32 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 #, fuzzy
 msgid "error allocating fluid engine\n"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr "Keine Tabelle für VibWaveato"
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr "Keine Tabelle für FM4Op"
 
@@ -6847,7 +6894,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 #, fuzzy
 msgid "invalid file name"
 msgstr "unzulässiger Name für Instrument"
@@ -6857,27 +6904,27 @@ msgstr "unzulässiger Name für Instrument"
 msgid "error opening file '%s'"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, fuzzy, c-format
 msgid "error opening sound file '%s'"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 #, fuzzy
 msgid "fouti: invalid file handle"
 msgstr "unzulässiger Name für Instrument"
@@ -6932,13 +6979,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr "freeverb: nicht initialisiert"
 
@@ -6964,12 +7011,12 @@ msgstr "ftconv: nicht initialisiert"
 msgid "Error deleting ftable %d"
 msgstr "Ersetzen vorhergehendes ftable %d"
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -7016,30 +7063,30 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, fuzzy, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, fuzzy, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 #, fuzzy
 msgid "fastab: incorrect table number"
 msgstr "unbekannte Quelltabelle Zahl"
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -7067,46 +7114,42 @@ msgstr "unbekannte Quelltabelle Zahl"
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 #, fuzzy
 msgid "tab_init: incorrect table number"
 msgstr "unbekannte Quelltabelle Zahl"
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 #, fuzzy
 msgid "adsynt2: not initialised"
 msgstr "adsynt: nicht initialisiert"
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7148,7 +7191,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 #, fuzzy
 msgid "vphaseseg: invalid num. of elements"
 msgstr "unzulässiger Name für Instrument"
@@ -7350,362 +7393,362 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, fuzzy, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, fuzzy, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 #, fuzzy
 msgid "vectorop: invalid num of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 #, fuzzy
 msgid "vport: invalid table length or num of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 #, fuzzy
 msgid "vport: invalid table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 #, fuzzy
 msgid "vport: invalid init table length or num of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 #, fuzzy
 msgid "vport: invalid init table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 #, fuzzy
 msgid "vrandh: Invalid table."
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 #, fuzzy
 msgid "vrandi: Invalid table."
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 #, fuzzy
 msgid "vecdelay: invalid num of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 #, fuzzy
 msgid "vecdly: invalid output table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 #, fuzzy
 msgid "vecdly: invalid input table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 #, fuzzy
 msgid "vecdly: invalid delay table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 #, fuzzy
 msgid "vecdly: not initialised"
 msgstr "vdelay: nicht initialisiert"
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 #, fuzzy
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr "tableseg: nicht initialisiert"
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr "tablexseg: nicht initialisiert"
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 #, fuzzy
 msgid "vdelayk: not initialised"
 msgstr "delayk: nicht initialisiert"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 #, fuzzy
 msgid "cella: invalid num of elements"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 #, fuzzy
 msgid "cella: invalid output table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 #, fuzzy
 msgid "cella: invalid initial state table"
 msgstr "unzulässiger Name für Instrument"
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 #, fuzzy
 msgid "cella: invalid rule table"
 msgstr "unzulässiger Name für Instrument"
@@ -7792,15 +7835,15 @@ msgstr "granule_set: kgsize müssen grösseres dann 0 sein"
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7810,7 +7853,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr "grain4: nicht initialisiert"
 
@@ -7826,54 +7869,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -8016,69 +8059,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -8113,15 +8176,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 #, fuzzy
 msgid "liveconv: not initialised"
 msgstr "vco: nicht initialisiert"
@@ -8230,17 +8293,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, fuzzy, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr "Störung Öffnung ASCII Akte"
@@ -8273,93 +8336,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr "grain3: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr "rnd31: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr "vco2ft: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr "vco2: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr "delayk: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr "vdel_k: nicht initialisiert"
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8375,6 +8438,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8441,37 +8512,37 @@ msgstr "Keine Tabelle für Brass"
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8479,7 +8550,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8550,8 +8621,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8574,16 +8644,16 @@ msgstr "transeg: nicht initialisiert (arate)\n"
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr "median: nicht initialisiert (arate)\n"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr "median: nicht initialisiert (krate)\n"
 
@@ -8597,12 +8667,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8615,18 +8685,10 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
-msgstr "Störung: %s, %s"
+#: Opcodes/pluck.c:172
+#, fuzzy
+msgid "wgpluck:Could not allocate for initial shape"
+msgstr "pluck: nicht initialisiert"
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
 msgid "psynth: first input not in TRACKS format\n"
@@ -8688,7 +8750,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8701,30 +8763,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8732,8 +8794,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr "pvbufread: nicht initialisiert"
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8751,39 +8813,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr "pvinterp: nicht initialisiert"
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr "pvcross: nicht initialisiert"
 
@@ -8800,7 +8862,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8925,19 +8987,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8975,12 +9037,12 @@ msgstr ""
 msgid "fsig format not supported"
 msgstr ""
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9278,126 +9340,126 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 #, fuzzy
 msgid "ftgenonce error"
 msgstr "Schreibfehler"
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr "Keine Tabelle für Modulatr"
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr "Keine Tabelle für Singwave"
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9471,32 +9533,37 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr "sndwarpst: nicht initialisiert"
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+#, fuzzy
+msgid "OSCraw: Closing socket\n"
+msgstr "Herstellen des Orchesters\n"
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 #, fuzzy
 msgid "creating socket"
 msgstr "Herstellen des Orchesters\n"
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 #, fuzzy
 msgid "output array too small\n"
 msgstr "t-var: nicht initialisiert"
@@ -9520,21 +9587,21 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 #, fuzzy
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr "unzulängliche Argumente"
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr ""
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9554,162 +9621,167 @@ msgstr "spat3d: nicht initialisiert"
 msgid "spat3di: not initialised"
 msgstr "spat3di: nicht initialisiert"
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr "specdisp: nicht initialisiert"
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr "specptrk: nicht initialisiert"
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr "specsum: nicht initialisiert"
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr "specaddm: nicht initialisiert"
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr "specdiff: local buffers nicht initialisiert"
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr "specdiff: nicht initialisiert"
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr "specscal: local buffer nicht initialisiert"
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr "specscal: nicht initialisiert"
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 #, fuzzy
 msgid "spechist: local buffers not initialised"
 msgstr "specfilt: local buffers nicht initialisiert"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr "spechist: nicht initialisiert"
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr "specfilt: local buffers nicht initialisiert"
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr "specfilt: nicht initialisiert"
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr "fsig = : source signal is nicht initialisiert"
@@ -9738,7 +9810,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9817,7 +9889,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9830,7 +9902,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9918,34 +9990,34 @@ msgstr "vibrato(krate): nicht initialisiert"
 msgid "No table for dconv"
 msgstr "Keine Tabelle für dconv"
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr "vcomb: nicht initialisiert"
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr "valpass: nicht initialisiert"
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -9954,12 +10026,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9967,128 +10039,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr "ATSREAD: nicht initialisiert"
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr "ATSREADNZ: nicht initialisiert"
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr "ATSADD: nicht initialisiert"
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -10152,7 +10224,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10166,116 +10238,117 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 #, fuzzy
 msgid "insufficient valid speakers"
 msgstr "unzulängliche Argumente"
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, fuzzy, c-format
 msgid "could not find layout table no.%d"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 #, fuzzy
 msgid "Output array not initialised"
 msgstr "t-var: nicht initialisiert"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 #, fuzzy
 msgid "could not find layout table no.0"
 msgstr "table: nicht initialisiert"
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 #, fuzzy
 msgid "Output array in vpabmove not initalised"
 msgstr "table: nicht initialisiert"
@@ -10284,34 +10357,69 @@ msgstr "table: nicht initialisiert"
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr "vpvoc: nicht initialisiert"
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+#, fuzzy
+msgid "vstinit: Error loading effect."
+msgstr "Herstellen des Orchesters\n"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+#, fuzzy
+msgid "vstaudio: too many input args"
+msgstr "zu viele Argumente\n"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10339,61 +10447,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10439,826 +10547,858 @@ msgid "Error opening log file '%s': %s\n"
 msgstr "Störung Öffnung ASCII Akte"
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
-msgstr ""
-
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
-msgstr ""
-
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-#, fuzzy
-msgid "--nchnls=N\t\t override number of audio channels"
-msgstr "unzulässiger Name für Instrument"
+msgid "                          key number to pfield N as linear octave"
+msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
-msgstr ""
+#, fuzzy
+msgid "--nchnls=N              override number of audio channels"
+msgstr "unzulässiger Name für Instrument"
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
-msgstr ""
+#, fuzzy
+msgid "--nchnls_i=N            override number of input audio channels"
+msgstr "unzulässiger Name für Instrument"
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr ""
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr ""
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 #, fuzzy
 msgid "no number of threads"
 msgstr "unzulässiger Name für Instrument"
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11402,333 +11542,333 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr "ACHTUNG: "
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, fuzzy, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr "ACHTUNG: konnte nicht %s entfernen\n"
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, fuzzy, c-format
-msgid "Failed to open input file - %s\n"
+msgid "main: failed to open input file - %s\n"
 msgstr "Störung Öffnung ASCII Akte"
 
-#: Top/main.c:254
+#: Top/main.c:255
 #, fuzzy
 msgid "cannot compile orchestra"
 msgstr "Herstellen des Orchesters\n"
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr "Syntaxprüfung durchgeführt.\n"
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11826,168 +11966,187 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+#, fuzzy
+msgid "missing \" to terminate string"
+msgstr "unzulässiger Name für Instrument"
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr ""
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, fuzzy, c-format
 msgid "and cannot remove %s"
 msgstr "ACHTUNG: konnte nicht %s entfernen\n"
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, fuzzy, c-format
 msgid "and cannot remove %s\n"
 msgstr "ACHTUNG: konnte nicht %s entfernen\n"
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr "Herstellen des Orchesters\n"
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -12000,26 +12159,77 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+#, fuzzy
+msgid "UDP: error creating socket"
+msgstr "Herstellen des Orchesters\n"
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, fuzzy, c-format
+msgid "could not retrieve channel %s"
+msgstr "unzulässiger Name für Instrument"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+#, fuzzy
+msgid "error creating socket"
+msgstr "Herstellen des Orchesters\n"
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+#, fuzzy
+msgid "UDP Server: failed to allocate memory"
+msgstr "Konnte Set nicht reservieren"
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -12034,8 +12244,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr "getan!\n"
 
@@ -12160,171 +12370,171 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 #, fuzzy
 msgid "Write failure\n"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12352,48 +12562,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr "cvanal Störung: %s\n"
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12528,125 +12738,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12654,7 +12864,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12790,87 +13000,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12953,120 +13163,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr "Schreibfehler"
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -13078,14 +13288,14 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 #, fuzzy
 msgid "Read failure\n"
 msgstr "*** Speicherallozierungausfall\n"
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -13123,10 +13333,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13220,47 +13482,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13474,7 +13736,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13501,7 +13763,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13517,37 +13779,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13710,35 +13972,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr "%s: Störung: %s\n"
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13912,116 +14186,125 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr "Unerkanntes Schlüsselwort"
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr "Syntaxstörung: keine ="
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr "Syntaxstörung: keine Zahl"
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr "scot: %d Störungen.\n"
 
+#~ msgid " merging constants %d) %f\n"
+#~ msgstr " Füge Konstanten %d) %f zusammen\n"
+
+#~ msgid "Error: %s, %s"
+#~ msgstr "Störung: %s, %s"
+
+#~ msgid "perf-pass statements illegal in header blk (%s)\n"
+#~ msgstr "perf-pass Anweisungen ungültig im Kopfbereich (header blk) (%s)\n"
+
 #, fuzzy
 #~ msgid "Syntax error in macro definition"
 #~ msgstr "Syntaxstörung: keine ="
@@ -14055,10 +14338,6 @@ msgstr "scot: %d Störungen.\n"
 #~ msgstr "Herstellen des Orchesters\n"
 
 #, fuzzy
-#~ msgid "too many input args\n"
-#~ msgstr "zu viele Argumente\n"
-
-#, fuzzy
 #~ msgid "cannot compile orchestra \n"
 #~ msgstr "Herstellen des Orchesters\n"
 
diff --git a/po/italian.po b/po/italian.po
index b3eff23..247c095 100644
--- a/po/italian.po
+++ b/po/italian.po
@@ -8,15 +8,16 @@ msgstr ""
 "Project-Id-Version: CSOUND 6.xx\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-07-26 19:39+0100\n"
-"PO-Revision-Date: 2017-05-12 16:18+0100\n"
-"Last-Translator: francesco <ilterzouomo at fastwebnet.it>\n"
+"PO-Revision-Date: 2017-11-07 10:15+0100\n"
+"Last-Translator: francesco <francescoarmandoporta at gmail.com>\n"
 "Language-Team: csound6\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.4.0\n"
+"X-Generator: Poedit 1.8.7.1\n"
+"X-Poedit-Basepath: .\n"
 
 #: Engine/auxfd.c:144
 #, c-format
@@ -24,7 +25,7 @@ msgid "fdclose: no record of fd %p"
 msgstr "fdclose: non c'e' registrazione di fd %p"
 
 #: Engine/auxfd.c:193
-#, fuzzy, c-format
+#, c-format
 msgid "auxlist for instr %s [%d] (%p):\n"
 msgstr "auxlist per strumento %s [%d] (%p):\n"
 
@@ -34,8 +35,8 @@ msgid "auxlist for instr %d (%p):\n"
 msgstr "auxlist per strumento %d (%p):\n"
 
 #: Engine/auxfd.c:201
-#, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+#, fuzzy, c-format
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr "\tauxch a %p: dimensione %ld, auxp %p, endp %p\n"
 
 #: Engine/auxfd.c:213
@@ -75,15 +76,15 @@ msgstr "argomento del puntatore NULL"
 
 #: Engine/cfgvar.c:44
 msgid "the specified value is too high"
-msgstr "il valore specificato è troppo alto"
+msgstr "il valore specificato ?? troppo alto"
 
 #: Engine/cfgvar.c:45
 msgid "the specified value is too low"
-msgstr "il valore specificato è troppo basso"
+msgstr "il valore specificato ?? troppo basso"
 
 #: Engine/cfgvar.c:46
 msgid "the specified value is not an integer power of two"
-msgstr "il valore specificato non è un intero potenza di due"
+msgstr "il valore specificato non ?? un intero potenza di due"
 
 #: Engine/cfgvar.c:47
 msgid "invalid boolean value; must be 0 or 1"
@@ -102,168 +103,164 @@ msgid "(unknown error)"
 msgstr "(errore sconosciuto)"
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
-msgstr "emoria insufficiente\n"
+msgstr "memoria insufficiente\n"
 
 #: Engine/corfiles.c:231
 msgid "Null file name in copy_to_corefile"
-msgstr ""
+msgstr "Nome di file nullo in copy_to_corefile"
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
-msgstr ""
+msgstr "memoria insufficiente (realloc restituisce NULL)\n"
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
-msgstr ""
+msgstr "curl_easy_perform() fallita: %s\n"
 
 #: Engine/cs_new_dispatch.c:159
 #, c-format
 msgid "Failed to find semantic information for instrument '%i'"
-msgstr ""
+msgstr "Fallita ricerca dell'informazione semantica per lo strumento '%i'"
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
-#, fuzzy
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
-msgstr "nome di variabile non valido"
+msgstr "Barriera con parametro NULL non valido"
 
-#: Engine/cs_par_base.c:150
-#, fuzzy
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
-msgstr "nome di variabile non valido"
+msgstr "Parametro non valido thread_count deve essere > 0"
 
-#: Engine/cs_par_base.c:154
-#, fuzzy
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
-msgstr "fallita apertura del dispositivo"
+msgstr "fallita allocazione della barriera"
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
-#, fuzzy
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
-msgstr "nome dello strumento non valido"
+msgstr "Parametro set NULL non valido"
 
-#: Engine/cs_par_base.c:292
-#, fuzzy
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
-msgstr "fallita apertura del dispositivo"
+msgstr "fallita allocazione set"
 
-#: Engine/cs_par_base.c:310
-#, fuzzy
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
-msgstr "nome di variabile non valido"
+msgstr "Invalido Parameter set non e' un set"
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
-#, fuzzy
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
-msgstr "nome di variabile non valido"
+msgstr "Parametro data NULL non valido"
 
-#: Engine/cs_par_base.c:336
-#, fuzzy
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
-msgstr "Caricamento del file MIDI fallito"
+msgstr "Fallita allocazione dell'elemento del set"
 
-#: Engine/cs_par_base.c:349
-#, fuzzy
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
-msgstr "nome di variabile non valido"
+msgstr "Parametro set_element NULL non valido"
 
-#: Engine/cs_par_base.c:447
-#, fuzzy
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
-msgstr "nome di variabile non valido"
+msgstr "Parametro out_set_element NULL non valido"
 
 #: Engine/cs_par_dispatch.c:59 Engine/cs_par_dispatch.c:72
 #, c-format
 msgid "Poorly specified global lock index: %i [max: %i]\n"
-msgstr ""
+msgstr "Indice del lock globale specificato male: %i [max: %i]\n"
 
 #: Engine/cs_par_dispatch.c:86 Engine/cs_par_dispatch.c:106
 msgid "Invalid NULL parameter name for a global variable\n"
-msgstr ""
+msgstr "nome parametro NULL non valido per variabile globale\n"
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
-msgstr ""
+msgstr "Inserimento costrutti del parallelismo in AST\n"
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
-msgstr ""
+msgstr "Strumento %d necessita di locks"
 
 #: Engine/cs_par_dispatch.c:240
 msgid "[End Inserting Parallelism Constructs into AST]\n"
-msgstr ""
+msgstr "[Fine inserimento costrutti del parallelismo in AST]\n"
 
 #: Engine/cs_par_orc_semantic_analysis.c:155
 #: Engine/cs_par_orc_semantic_analysis.c:174
-#, fuzzy
 msgid "Invalid NULL parameter set to add to global read, write lists\n"
-msgstr "nome dell'opcode non valido"
+msgstr ""
+"Impostato parametro NULL non valido da aggiungere alle liste di lettura, "
+"scrittura\n"
 
 #: Engine/cs_par_orc_semantic_analysis.c:203
 msgid "Add a global write_list without any instruments\n"
-msgstr ""
+msgstr "Aggiunta una write_list globale senza nessun strumento\n"
 
 #: Engine/cs_par_orc_semantic_analysis.c:207
-#, fuzzy
 msgid "Invalid NULL parameter set to add to a global write_list\n"
-msgstr "nome dell'opcode non valido"
+msgstr ""
+"impostato parametro NULL non valido da aggiungere alla write_list globale\n"
 
 #: Engine/cs_par_orc_semantic_analysis.c:230
-#, fuzzy
 msgid "Invalid NULL parameter set to add to a global read_list\n"
-msgstr "nome dell'opcode non valido"
+msgstr ""
+"impostato parametro NULL non valido da aggiungere alla read_list globale\n"
 
 #: Engine/cs_par_orc_semantic_analysis.c:260
 msgid "opcode deprecated"
-msgstr ""
+msgstr "opcode deprecato"
 
 #: Engine/cs_par_orc_semantic_analysis.c:316
 msgid "Not a proper list of ints"
-msgstr ""
+msgstr "Non e' una lista di interi"
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
+"ERRORE: Parentesi non bilanciate nel tipo specificato di arrayargument\n"
 
-#: Engine/csound_orc_compile.c:414
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:415
+#, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
-msgstr "create_opcode: Non c'è regola d'uso per dichiarazione di tipo %d\n"
+msgstr "create_opcode: Non c'?? regola d'uso per dichiarazione di tipo %d\n"
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr "%s frequenza di campionamento (sr) non valida"
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr "%s frequenza dei segnali di controllo (kr) non valida"
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, fuzzy, c-format
+msgid "%s invalid number of samples"
+msgstr "numero di argomenti non valido"
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr "%s valore di ksmps non valido"
 
-#: Engine/csound_orc_compile.c:598
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:614
+#, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
-msgstr "%s sr, kr e ksmps sono incongruenti"
+msgstr "%s sr, kr e ksmps sono incongruenti\n"
 
-#: Engine/csound_orc_compile.c:600
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:616
+#, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
-msgstr "%s sr, kr e ksmps sono incongruenti"
+msgstr "%s sr, kr e ksmps sono incongruenti\n"
 
-#: Engine/csound_orc_compile.c:620
-#, fuzzy
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
-msgstr "pessimo valore per 0dbfs: deve essere positivo."
+msgstr "valore sbagliato per 0dbfs: deve essere positivo."
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
@@ -272,386 +269,394 @@ msgstr ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "errore:"
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr "%s sr, kr e ksmps sono incongruenti"
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
-"frequenza di campionamento (sr) soprascritta: esr = %7.4f, ekr = %7.4f, "
-"ksmps = %d\n"
+"frequenza di campionamento (sr) ridefinita: esr = %7.4f, ekr = %7.4f, ksmps "
+"= %d\n"
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
-msgstr ""
+msgstr "le costanti di sistema possono essere impostate una sola volta\n"
 
-#: Engine/csound_orc_compile.c:843
-#, c-format
-msgid "create_instrument: instr num %ld\n"
+#: Engine/csound_orc_compile.c:860
+#, fuzzy, c-format
+msgid "create_instrument: instr num %d\n"
 msgstr "create_instrument: strumento num %ld\n"
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
-msgstr ""
+msgstr "-- strumento cancellato da deadpool \n"
 
-#: Engine/csound_orc_compile.c:988
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1005
+#, c-format
 msgid " -- free instr def %p %p \n"
-msgstr "auxlist per strumento %d (%p):\n"
+msgstr " -- libero instr def %p %p \n"
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
-msgstr ""
+msgstr " -- aggiunto allo slot di deadpool %d \n"
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
-#, c-format
-msgid "instr %ld redefined, replacing previous definition"
-msgstr ""
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
+#, fuzzy, c-format
+msgid "instr %d redefined, replacing previous definition"
+msgstr "strumento %ld ridefinito, rimpiazzo la precedente definizione"
 
-#: Engine/csound_orc_compile.c:1068
-#, fuzzy
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "nessuna istanza attiva \n"
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr "lo strumento %s usa il numero di strumento %d\n"
 
-#: Engine/csound_orc_compile.c:1193
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1211
+#, c-format
 msgid "instr %d redefined\n"
-msgstr "strumento %s ridefinito"
+msgstr "strumento %d ridefinito\n"
 
-#: Engine/csound_orc_compile.c:1226
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1244
+#, c-format
 msgid "no active instances of instr %d \n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "nessuna istanza attiva dello strumento %d\n"
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr "!!! csound->opcodeInfo e' NULL !!!\n"
 
-#: Engine/csound_orc_compile.c:1308
-#, fuzzy, c-format
-msgid " merging constants %d) %f\n"
-msgstr "Fisso lo strumento %d %s\n"
-
-#: Engine/csound_orc_compile.c:1318
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1338
+#, c-format
 msgid " merging %p %d) %s:%s\n"
-msgstr "Fisso lo strumento %d %s\n"
+msgstr " unione di %p %d) %s:%s\n"
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
-msgstr ""
+msgstr " aggiungo %p %d) %s:%s\n"
 
-#: Engine/csound_orc_compile.c:1357
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1381
+#, c-format
 msgid "merging instr %d \n"
-msgstr "Fisso lo strumento %d %s\n"
+msgstr "unione instr %d \n"
 
-#: Engine/csound_orc_compile.c:1365
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1389
+#, c-format
 msgid "merging instr %s \n"
-msgstr "Fisso lo strumento %s %s\n"
+msgstr "unione instr %s \n"
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr "nome dello strumento non valido"
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr "strumento %s ridefinito"
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
-msgstr ""
+msgstr "ERRORE: non trovo OPCODINFO per l'opname: %s\n"
 
-#: Engine/csound_orc_compile.c:1665
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:1714
+#, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
-msgstr "Nodo sconosciuto di tipo %d trovato in root.\n"
+msgstr "Nodo sconosciuto di tipo %d (%s) trovato in root.\n"
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
-msgstr "%d errore\\i di sintassi nell'orchestra.  Compilazione non valida\n"
+msgstr "%d errori di sintassi nell'orchestra.  Compilazione non valida\n"
 
-#: Engine/csound_orc_compile.c:1718
-#, fuzzy, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
-msgstr "dichiarazione d'esecuzione non valida nel blocco header\n"
+#: Engine/csound_orc_compile.c:1766
+#, c-format
+msgid "%s: perf-time code in global space, ignored"
+msgstr "%s: codice perf-time nello spazio globale, ignorato"
 
-#: Engine/csound_orc_compile.c:1910
-#, fuzzy
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
-msgstr "i%d pset args != pmax"
+msgstr "i[fixme] pset args != pmax"
 
-#: Engine/csound_orc_compile.c:2054
-#, fuzzy, c-format
+#: Engine/csound_orc_compile.c:2098
+#, c-format
 msgid "Missing local arg: %s\n"
-msgstr "argomento mancante o in più"
+msgstr "manca un argomento locale: %s\n"
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
-msgstr ""
+msgstr "**non registrato**"
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
-msgstr ""
+msgstr "L'opcode \"%s\" e' deprecato\n"
 
-#: Engine/csound_orc_expressions.c:485
-#, fuzzy, c-format
+#: Engine/csound_orc_expressions.c:491
+#, c-format
 msgid "error: function %s not found, line %d \n"
-msgstr "Tipo di parola sconosciuta per %s alla linea %d\n"
+msgstr "errore: non trovo la funzione %s alla linea %d\n"
 
-#: Engine/csound_orc_expressions.c:506
-#, fuzzy, c-format
+#: Engine/csound_orc_expressions.c:512
+#, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
-msgstr "Tipo di parola sconosciuta per %s alla linea %d\n"
+msgstr "errore: opcode %s con tipo output %s non trovato, alla linea %d"
+
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
 
 #: Engine/csound_orc_semantics.c:129
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown function type found: %d [%c]\n"
-msgstr "Tipo di parola sconosciuta per %s alla linea %d\n"
+msgstr "trovato tipo di funzione sconosciuto: %d [%c]\n"
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
-msgstr ""
+msgstr "Tipo di espressione booleana sconosciuta: %d\n"
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
-msgstr ""
+msgstr "non trovo l'operatore array per i tipi %s alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
+"trovata espressione non booleana per l'operatore ternario, alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
+"non trovo l'operatore ternario per i tipi '%s ? %s : %s' alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
-msgstr ""
+msgstr "Uso di i() in espressione non permesso alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:345
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:351
+#, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
-msgstr "Tipo di parola sconosciuta per %s alla linea %d\n"
+msgstr ""
+"errore: opcode '%s' per l'espressione con tipi di argomento %s non trovata, "
+"alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
+"Non riesco a verificare i tipi di arg per l'espressione '%s'\n"
+"Alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
+"errore: non trovo l'opcode '%s' per l'espressione con tipo di arg %s, alla "
+"linea %d \n"
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
+"Non sono in grado di verificare i tipi di arg per l'espressione booleana "
+"'%s'\n"
+"Linea %d\n"
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
+"errore: espressione booleana '%s' con tipi di arg %s non trovata, alla linea "
+"%d \n"
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
+#, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
-msgstr "argomento in input '%s' usato prima di essere definito"
+msgstr ""
+"Variabile '%s' usata prima di essere definita\n"
+"Alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:568
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:579
+#, c-format
 msgid "Unknown arg type: %d\n"
-msgstr "tipo di nome sconosciuto"
+msgstr "tipo di argomento sconosciuto: %d\n"
 
-#: Engine/csound_orc_semantics.c:1209
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1222
+#, c-format
 msgid "Variable type for %s could not be determined.\n"
-msgstr "argomento in input '%s' usato prima di essere definito"
+msgstr "Tipo di variabile per %s non pu?? essere determinata.\n"
 
-#: Engine/csound_orc_semantics.c:1231
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1244
+#, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
-msgstr "argomento in input '%s' usato prima di essere definito"
+msgstr ""
+"Variabile '%s' usata prima di essere definita\n"
+"all linea %d"
 
-#: Engine/csound_orc_semantics.c:1459
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1472
+#, c-format
 msgid "Unable to find opcode with name: %s\n"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "Non trovo l'opcode con nome: %s\n"
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
-msgstr ""
+msgstr "Non trovo l'opcode per '%s' che combaci con il tipo di argomenti:\n"
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
-msgstr ""
+msgstr "Trovato: %s %s %s\n"
 
-#: Engine/csound_orc_semantics.c:1482
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1495
+#, c-format
 msgid "Line: %d\n"
-msgstr "bufsize %d\n"
+msgstr "Linea: %d\n"
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
+"l'espressione per dichiarazione until/while non ?? un'espressione booleana, "
+"alla linea %d\n"
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
-msgstr ""
+msgstr "Trovate pi?? dichiarazioni xin. Ne ?? permessa solo una."
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
-msgstr ""
+msgstr "Trovate pi?? dichiarazioni xout. Ne ?? permessa solo una."
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
-msgstr ""
+msgstr "dichiarazione xin nell'UDO non valida: definita '%s', trovo '%s'\n"
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
-msgstr ""
+msgstr "dichiarazione xout nell'UDO non valida: definita '%s', trovo '%s'\n"
 
-#: Engine/csound_orc_semantics.c:1883
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1939
+#, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
-msgstr "%s: errore: %s (%s)\n"
+msgstr ""
+"\n"
+"errore: %s  (token \"%s\")"
 
-#: Engine/csound_orc_semantics.c:1886
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:1942
+#, c-format
 msgid ""
 " line %d:\n"
 ">>>"
-msgstr ", linea %d:\n"
+msgstr ""
+" linea %d:\n"
+">>>"
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
-msgstr ""
+msgstr " da file %s (%d)\n"
 
-#: Engine/csound_orc_semantics.c:2487
-#, fuzzy, c-format
+#: Engine/csound_orc_semantics.c:2542
+#, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
-msgstr "gli argomenti richiesti sono insufficienti"
+msgstr ""
+"gli argomenti richiesti sono insufficienti per opcode %s alla linea %d:\n"
 
 #: Engine/csound_type_system.c:165
 #, c-format
 msgid "cannot create variable %s: NULL type"
-msgstr ""
+msgstr "non posso creare la variabile %s: tipo NULL"
 
 #: Engine/csound_orc.lex:486
 #, c-format
 msgid "unterminated string found on line %d >>%s<<\n"
-msgstr ""
+msgstr "stringa non terminata trovata alla linea %d >>%s<<\n"
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
+#, fuzzy
 msgid "No number following instr\n"
-msgstr "instr non è seguito da nessun numero\n"
+msgstr "instr non ?? seguito da nessun numero\n"
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr "macro non definita: '%s'"
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
-#, fuzzy
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
-msgstr "Allocazione di memoria fallita"
+msgstr "Memoria finita"
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
-#, fuzzy
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
-msgstr "inclusioni innestate troppo in profondità"
+msgstr "macros/include innestate troppo in profondit??:"
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
-#, fuzzy
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
-msgstr "troppi argomenti in input per l'opcode %s"
+msgstr "Pochi argomenti alla macro\n"
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
@@ -660,173 +665,167 @@ msgstr ""
 "Manca argomento conclusivo\n"
 "%.98s"
 
-#: Engine/csound_pre.lex:540
-#, fuzzy
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
-msgstr "carattere inatteso %c"
+msgstr "inaspettato EOF!"
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
-#, fuzzy, c-format
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
+#, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
-msgstr "Carattere # inatteso"
+msgstr "Carattere inatteso %c(%.2x) alla linea %d\n"
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
-msgstr ""
+msgstr "#else senza #if\n"
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
-msgstr ""
+msgstr "#else dopo #else\n"
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
-#, fuzzy
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
-msgstr "#endif senza corrispondenza"
+msgstr "#end senza corrispondenza\n"
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
-#, fuzzy
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
-msgstr "inclusioni innestate troppo in profondità"
+msgstr "inclusioni (include)  innestate troppo in profondit??"
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
-msgstr ""
+msgstr "%s ?? una directory; non la includo"
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
-#, fuzzy, c-format
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
+#, c-format
 msgid "Cannot open #include'd file %s\n"
-msgstr "Impossibile aprire il file #include %s"
+msgstr "Impossibile aprire il file #include %s\n"
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr "errore macro\n"
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
-#, fuzzy
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
-msgstr "macro non definita: '%s'"
+msgstr "definizione macro fuori controllo\n"
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
+"carattere inaspettato %c(0x%.2x) nella definizione macro, in attesa #\n"
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
-msgstr ""
+msgstr "definizione della macro con argomenti: inaspettato EOF"
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
-msgstr ""
+msgstr "definizione macro: inaspettato EOF"
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr "macro %s non definita\n"
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr "Libero la macro non definita"
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
-#, fuzzy, c-format
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
+#, c-format
 msgid "Unmatched #if%sdef\n"
-msgstr "#idef senza corrispondenza"
+msgstr "#if%sdef senza corrispondenza\n"
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr "Definizione di macro per %*s\n"
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr "Nome di macro non valido per --omacro"
 
-#: Engine/csound_prs.lex:490
-#, fuzzy
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
-msgstr "carattere inatteso %c"
+msgstr "inatteso EOF!!\n"
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr "Loops eccessivamente innestati"
 
-#: Engine/csound_prs.lex:674
-#, fuzzy
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr "{: conteggio delle ripetizioni non valido"
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr "%s LOOP innestato=%d Livello:%d\n"
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr "LOOP esterno=%d Livello:%d\n"
 
-#: Engine/csound_prs.lex:731
-#, fuzzy
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
-msgstr "virgolette senza corrispondenza"
+msgstr "} senza corrispondenza nella score\n"
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
-msgstr ""
+msgstr "Sezioni del loop non possono essere innestati"
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr "r: conteggio delle ripetizioni non valido"
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
-msgstr ""
+msgstr "r LOOP=%d\n"
 
-#: Engine/csound_prs.lex:1233
-#, fuzzy, c-format
+#: Engine/csound_prs.lex:1156
+#, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
-msgstr "Carattere # inatteso"
+msgstr "definizione macro carattere inaspettato %c(0x%.2x)in attesa #\n"
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr "Nome di macro non valido per --smacro"
 
 #: Engine/envvar.c:216
 #, c-format
 msgid "Environment variable '%s' has been set to "
-msgstr "La variabile d'ambiente '%s' è stata fissata a"
+msgstr "La variabile d'ambiente '%s' ?? stata fissata a"
 
 #: Engine/envvar.c:366
-#, fuzzy
 msgid " *** invalid format for --env\n"
-msgstr "nome dello strumento non valido"
+msgstr " *** formato non valido per --env\n"
 
 #: Engine/envvar.c:376
-#, fuzzy
 msgid " *** invalid environment variable name\n"
-msgstr "nome di variabile non valido"
+msgstr "*** nome di variabile d'ambiente non valido\n"
 
 #: Engine/envvar.c:386
-#, fuzzy
 msgid " *** memory allocation failure\n"
-msgstr "allocazione di memoria fallita"
+msgstr "*** allocazione di memoria fallita\n"
 
 #: Engine/envvar.c:388
 msgid " *** error setting environment variable\n"
-msgstr ""
+msgstr " *** errore impostazione variabile d'ambiente\n"
 
 #: Engine/envvar.c:498
 #, c-format
@@ -835,12 +834,11 @@ msgstr "Creata cache del percorso di ricerca per '%s':"
 
 #: Engine/envvar.c:739
 msgid "Current directory path name too long\n"
-msgstr ""
+msgstr "Nome del percorso della directory corrente troppo lungo\n"
 
 #: Engine/envvar.c:954
-#, fuzzy
 msgid "Remove failed\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "Rimozione fallita\n"
 
 #: Engine/envvar.c:1013
 #, c-format
@@ -852,10 +850,9 @@ msgstr "errore interno: csoundFileOpen(): tipo non valido: %d"
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr "errore interno: csoundCreateFileHandle(): tipo non valido: %d"
 
-#: Engine/extract.c:89
-#, fuzzy
+#: Engine/extract.c:90
 msgid "instrument number out of range"
-msgstr "Numero dispositivo fuori range"
+msgstr "Numero dello strumento fuori intervallo"
 
 #: Engine/fgens.c:120
 msgid "unknown GEN number"
@@ -870,14 +867,14 @@ msgstr "ftable non esiste"
 msgid "ftable %d now deleted\n"
 msgstr "la ftable %d viene cancellata\n"
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr "gli argomenti della gen sono insufficienti"
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr "gen chiamata \"%s\" non definita"
@@ -910,10 +907,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr "uso di argomenti estesi\n"
 
@@ -926,13 +923,13 @@ msgid "illegal x interval"
 msgstr "intervallo di x non consentito"
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr "argomenti insufficienti"
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr "numero di srctable sconosciuto"
 
@@ -945,7 +942,6 @@ msgid "gen call has negative segment size:"
 msgstr "la gen chiamata ha dimensione del segmento negativa"
 
 #: Engine/fgens.c:564
-#, fuzzy
 msgid "illegal input vals for gen call, beginning:"
 msgstr "La gen chiamata ha valori in input non consentiti, inizio:"
 
@@ -965,111 +961,106 @@ msgstr "valore di xint non consentito"
 msgid "illegal xamp value"
 msgstr "valore di xamp non consentito"
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr "numero di argomenti irregolare"
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr "la gen chiamata ha valori di ordinata x non consentiti"
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr "numero di argomenti sbagliato"
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr "un intervallo dato supera la lunghezza della tavola"
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr "una funzione in input non esiste"
 
-#: Engine/fgens.c:1318
-#, fuzzy
+#: Engine/fgens.c:1317
 msgid "No such window type!"
-msgstr "Non c'è una tale finestra!"
+msgstr "Non c'?? una tale finestra (window)!"
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr "Numero di argomenti in input sbagliato"
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr "distrbuzione sconosciuta"
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr "errore in apertura del file ASCII"
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr "%ld elementi in %s\n"
 
-#: Engine/fgens.c:1413
-#, fuzzy, c-format
+#: Engine/fgens.c:1412
+#, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
-msgstr "Numeri in eccesso dopo aver riempito la GEN23"
+msgstr "Numero/i in eccesso dopo aver riempito la GEN23, inizio %f"
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 "il formato della tavola deve essere la stessa della tavola di derivazione "
 "(source)"
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr "le coordinate x devono essere tutte in ordine crescente"
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr "coordinata x maggiore della dimensione della tavola"
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr "valore di input non valido (y <= 0) per la gen chiamata, inizio:"
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr "GEN28 richiede lunghezza della tavola zero"
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr "Impossibile aprire il file spazializzazione"
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr "I valori di tempo devono essere in ordine crescente"
 
-#: Engine/fgens.c:1704
-#, fuzzy
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr "GEN30: source ftable non trovata"
 
-#: Engine/fgens.c:1787
-#, fuzzy
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr "GEN31: source ftable non trovata"
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr "GEN32: source ftable %d non trovata"
 
-#: Engine/fgens.c:1995
-#, fuzzy
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr "GEN33: source ftable non trovata"
 
-#: Engine/fgens.c:2164
-#, fuzzy
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
-msgstr "numero di tavola source sconosciuto"
+msgstr "numero di tavola sorgente sconosciuto"
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
-msgstr ""
+msgstr "Gen41: non ?? consentita una probabilit?? negativa"
 
 #: Engine/fgens.c:2264
 #, c-format
@@ -1087,7 +1078,7 @@ msgid "replacing previous ftable %d"
 msgstr "sostituisco la precedente ftable %d"
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1098,7 +1089,7 @@ msgstr "ftable num. %f non valida"
 #: Engine/fgens.c:2404
 #, c-format
 msgid "deferred-size ftable %f illegal here"
-msgstr "la dimensione differita della ftable %f non è valida qui"
+msgstr "la dimensione differita della ftable %f non ?? valida qui"
 
 #: Engine/fgens.c:2517
 #, c-format
@@ -1123,14 +1114,14 @@ msgid "channel %d illegal"
 msgstr "canale %d non consentito"
 
 #: Engine/fgens.c:2664
-#, fuzzy, c-format
+#, c-format
 msgid "deferred alloc for %s\n"
-msgstr "allocazione differita\n"
+msgstr "allocazione differita per %s\n"
 
 #: Engine/fgens.c:2668
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open file %s"
-msgstr "Non è possibile aprire il file di input %s"
+msgstr "Fallita apertura del file %s"
 
 #: Engine/fgens.c:2673 Engine/fgens.c:2995
 msgid "deferred size, but filesize unknown"
@@ -1155,7 +1146,8 @@ msgid "GEN1 read error"
 msgstr "GEN1 errore in lettura"
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+#, fuzzy
+msgid "GEN1: file truncated by ftable size"
 msgstr "GEN1: file aiff troncato dalla dimensione della ftable"
 
 #: Engine/fgens.c:2770
@@ -1167,13 +1159,12 @@ msgstr "\tcampioni audio %d superano ftsize %d"
 msgid "wrong number of ftable arguments"
 msgstr "numero sbagliato di argomenti della ftable"
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr "Caricamento del file PVOC-EX fallito"
 
 #: Engine/fgens.c:2845 InOut/midirecv.c:419 OOps/midiops.c:404
 #: OOps/midiops.c:454 OOps/midiops.c:466
-#, fuzzy
 msgid "illegal channel number"
 msgstr "numero di canale non consentito"
 
@@ -1181,61 +1172,68 @@ msgstr "numero di canale non consentito"
 msgid "ftable size too small"
 msgstr "dimensione della ftable troppo piccola"
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr "emoria insufficiente\n"
 
-#: Engine/fgens.c:3077
-#, fuzzy
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
-msgstr "gen51: numero di p-fields non valido (troppi pochi gradi)"
+msgstr "GEN51: numero di p-fields non valido (troppi pochi gradi)"
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr "numero di canali incongruente con il numero di argomenti"
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr "GEN53: numero di argomenti della gen non valido"
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr "GEN53: lunghezza della tavola non valida"
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr "GEN53: numero di source table non valido"
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr "GEN53: mode dev'essere nell'intervallo tra 0 e 15"
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
-msgstr "GEN53: numero di source table non valido"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
+msgstr "GEN53: lunghezza della source table non valida"
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr "GEN53: window table non valida"
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr "GEN 53: impulse response input, "
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr "GEN 53: frequency response input, "
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr "fallito caricamento differito di '%s'"
 
 #: Engine/insert.c:116
 #, fuzzy, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr "strumento %s attivato a %d\n"
 
 #: Engine/insert.c:119
-#, c-format
-msgid "activating instr %d at %d\n"
+#, fuzzy, c-format
+msgid "activating instr %d at %lld\n"
 msgstr "strumento %d attivato a %d\n"
 
 #: Engine/insert.c:127
-#, fuzzy, c-format
+#, c-format
 msgid "Instrument %s muted\n"
 msgstr "Strumento %s silenziato\n"
 
@@ -1244,97 +1242,96 @@ msgstr "Strumento %s silenziato\n"
 msgid "Instrument %d muted\n"
 msgstr "Strumento %d silenziato\n"
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
-"impossibile allocare l'ultima nota perché supera il 100%% di tempo di cpu"
+"impossibile allocare l'ultima nota perch?? supera il 100%% di tempo di cpu"
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
-"impossibile allocare l'ultima nota perché supera maxalloc dello strumento"
+"impossibile allocare l'ultima nota perch?? supera maxalloc dello strumento"
 
 #: Engine/insert.c:171
-#, fuzzy, c-format
+#, c-format
 msgid "new alloc for instr %s:\n"
-msgstr "nuova allocazione per lo strumento %d:\n"
+msgstr "nuova allocazione per lo strumento %s:\n"
 
 #: Engine/insert.c:173
 #, c-format
 msgid "new alloc for instr %d:\n"
 msgstr "nuova allocazione per lo strumento %d:\n"
 
-#: Engine/insert.c:236
-#, fuzzy, c-format
+#: Engine/insert.c:235
+#, c-format
 msgid "instr %s uses %d p-fields but is given %d"
-msgstr "lo strumento %d usa %d p-fields ma gliene sono stati dati %d"
+msgstr "lo strumento %s usa %d p-fields ma gliene sono stati dati %d"
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr "lo strumento %d usa %d p-fields ma gliene sono stati dati %d"
 
-#: Engine/insert.c:390 Engine/insert.c:648
-#, fuzzy, c-format
+#: Engine/insert.c:389 Engine/insert.c:646
+#, c-format
 msgid "instr %s now active:\n"
-msgstr "strumento %d ora attivo:\n"
+msgstr "strumento %s ora attivo:\n"
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr "strumento %d ora attivo:\n"
 
-#: Engine/insert.c:440
-#, fuzzy, c-format
+#: Engine/insert.c:439
+#, c-format
 msgid "MIDI activating instr %s\n"
-msgstr "attivo lo strumento %s\n"
+msgstr "strumento %s attivato da MIDI\n"
 
-#: Engine/insert.c:442
-#, fuzzy, c-format
+#: Engine/insert.c:441
+#, c-format
 msgid "MIDI activating instr %d\n"
-msgstr "attivo lo strumento %d\n"
+msgstr "strumento %d attivato da MIDI\n"
 
-#: Engine/insert.c:451
-#, fuzzy, c-format
+#: Engine/insert.c:450
+#, c-format
 msgid "new MIDI alloc for instr %s:\n"
-msgstr "nuova allocazione per lo strumento %d:\n"
+msgstr "nuova allocazione MIDI per lo strumento %s:\n"
 
-#: Engine/insert.c:453
-#, fuzzy, c-format
+#: Engine/insert.c:452
+#, c-format
 msgid "new MIDI alloc for instr %d:\n"
-msgstr "nuova allocazione per lo strumento %d:\n"
+msgstr "nuova allocazione MIDI per lo strumento %d:\n"
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr "La nota MIDI si sovrappone alla key %d sullo stesso canale"
 
-#: Engine/insert.c:758
-#, fuzzy, c-format
+#: Engine/insert.c:756
+#, c-format
 msgid "removed instance of instr %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "rimossa l'istanza dello strumento %s\n"
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr "rimossa l'istanza dello strumento %d\n"
 
-#: Engine/insert.c:780
-#, fuzzy
+#: Engine/insert.c:778
 msgid "instance not valid \n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "istanza non valida %d\n"
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr "liberate le allocazioni inattive\n"
 
-#: Engine/insert.c:966
-#, fuzzy, c-format
+#: Engine/insert.c:965
+#, c-format
 msgid "could not find playing instr %f\n"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "non trovo lo strumento attivo %f\n"
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
@@ -1342,69 +1339,69 @@ msgstr ""
 "\n"
 "ERRORE di INIZIALIZZAZIONE: "
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr "ERRORE di INIZIALIZZAZIONE dello strumento %d (opcode %s): "
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr "ERRORE di INIZIALIZZAZIONE nello strumento %d (subinstr %d): "
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr "ERRORE di INIZIALIZZAZIONE nello strumento %d: "
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr "ERRORE in ESECUZIONE nello strumento %d (opcode %s): "
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr "ERRORE in ESECUZIONE nello strumento %d (subinstr %d): "
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr "ERRORE in ESECUZIONE nello strumento %d: "
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr "   nota cancellata\n"
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 "subinstr: numero di argomenti dell'output maggiore del numero dei canali"
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr "subinstr: troppi p-fields"
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr "%s: valore locale di ksmps non valido: %d"
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s: non inizializzato"
 
-#: Engine/insert.c:1479
-#, fuzzy, c-format
+#: Engine/insert.c:1481
+#, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
-msgstr "setksmps: valore do ksmps non valido: %d"
+msgstr "setksmps: valore di ksmps non valido: %d, originale: %d"
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr "subinstr: non inizializzato"
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
@@ -1413,105 +1410,97 @@ msgstr ""
 "strumento %d allocato a %p\n"
 "\tlclbas %p, opds %p\n"
 
-#: Engine/insert.c:2210
-#, fuzzy, c-format
+#: Engine/insert.c:2213
+#, c-format
 msgid "op (%s) allocated at %p\n"
-msgstr "op %d (%s) allocato a %p\n"
+msgstr "op (%s) allocato a %p\n"
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
-msgstr "null iopadr"
+msgstr "iopadr nullo"
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
-msgstr "null iopadr"
+msgstr "opadr nullo"
 
-#: Engine/insert.c:2269
-#, fuzzy, c-format
+#: Engine/insert.c:2272
+#, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
-msgstr "tipo di nome sconosciuto"
+msgstr "FIXME: tipo di out-arg non gestito: %d\n"
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
-msgstr ""
+msgstr "FIXME: arg inatteso in istanza: %d\n"
 
-#: Engine/insert.c:2333
-#, fuzzy
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr "totale opds inconsistente"
 
-#: Engine/insert.c:2393
-#, fuzzy, c-format
+#: Engine/insert.c:2395
+#, c-format
 msgid "Instrument %s is still active"
 msgstr "Strumento %s ancora attivo"
 
-#: Engine/insert.c:2396
-#, fuzzy, c-format
+#: Engine/insert.c:2398
+#, c-format
 msgid "Instrument %d is still active"
 msgstr "Strumento %d ancora attivo"
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr "-L stdin fcntl fallito"
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr "Impossibile aprire %s"
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr "stdmode = %.8x Linefd = %d\n"
 
-#: Engine/linevent.c:123
-#, fuzzy
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
-msgstr "Non è possibile aprire il file di input %s"
-
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
+msgstr "Fallita impostazione dello stato del file\n"
 
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr "LineBuffer Overflow - I dati in input sono stati persi"
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr "opcode sconosciuto %c"
 
-#: Engine/linevent.c:307
-#, fuzzy
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr "il punto per riporto valore (carry) non ha riferimenti"
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr "impossibile riportare un p-field stringa"
 
-#: Engine/linevent.c:323
-#, fuzzy, c-format
+#: Engine/linevent.c:383
+#, c-format
 msgid "too few pfields (%d)"
-msgstr "troppi pochi pfields"
+msgstr "troppi pochi pfields (%d)"
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr "-L con p2 negativo illecito"
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr "troppi pfields"
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1522,66 +1511,74 @@ msgstr ""
 "%s\n"
 "%*s"
 
-#: Engine/linevent.c:372
-#, fuzzy
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
-"event: parametro 1 deve essere \"a\", \"i\", \"q\", \"f\", oppure \"e\""
+"event: parametro 1 deve essere \"a\", \"i\", \"q\", \"f\", \"d\", oppure \"e"
+"\""
 
-#: Engine/linevent.c:374
-#, fuzzy
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
-msgstr "event: nome stringa permesso solo per eventi \"i\" e \"q\""
+msgstr "event: nome stringa permesso solo per eventi \"i\", \"d\", e \"q\""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr "event: errore nella creazione dell'evento '%c'"
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr "event_i: errore nella creazione dell'evento '%c'"
 
-#: Engine/linevent.c:540
-#, fuzzy
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
-msgstr "event: errore nella creazione dell'evento '%c'"
+msgstr "istanza: errore nella creazione dell'evento"
 
 #: Engine/memalloc.c:58
-#, c-format
-msgid "memory allocate failure for %lu"
+#, fuzzy, c-format
+msgid "memory allocate failure for %zu"
 msgstr "allocazione di memoria fallita per %lu"
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, fuzzy, c-format
+msgid "failed to open file %s\n"
+msgstr "Fallita apertura del file %s"
+
+#: Engine/memfiles.c:54
+#, fuzzy, c-format
+msgid "failed to read file %s\n"
+msgstr "sfont: fallita lettura file\n"
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
-msgstr ""
+msgstr "file CV non conforme\n"
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
-msgstr ""
+msgstr "file LPC non conforme\n"
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr "impossibile caricare %s\n"
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr "impossibile caricare %s, oppure SADIR non definita\n"
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr "errore nel processamento del file %s\n"
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr "file %s (%ld bytes) caricato in memoria\n"
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
@@ -1589,60 +1586,66 @@ msgstr ""
 "PVOCEX_LoadFile(): errore:\n"
 "    "
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr "nome di file vuoto o NULL"
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr "non riesco ad aprire il file pvocex %s: %s"
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
-msgstr "il file pvoc-ex %s non è 32bit floats"
+msgstr "il file pvoc-ex %s non ?? 32bit floats"
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
-msgstr "il file pvoc-ex %s non è nel formato AMP_FREQ"
+msgstr "il file pvoc-ex %s non ?? nel formato AMP_FREQ"
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
-msgstr "il file pvoc-ex %s è vuoto!"
+msgstr "il file pvoc-ex %s ?? vuoto!"
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr "errore in lettura del file pvoc-ex %s"
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr "errore in lettura del file pvoc-ex %s dopo %d frames"
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr "%s's srate = %8.0f, orch's srate = %8.0f"
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, fuzzy, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr "file %s (%ld bytes) caricato in memoria\n"
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr "csoundLoadSoundFile(): fallita l'apertura di '%s'"
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr "csoundLoadSoundFile(): errore in lettura di '%s'"
 
-#: Engine/memfiles.c:669
-#, c-format
+#: Engine/memfiles.c:678
+#, fuzzy, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 "File '%s' (sr = %d Hz, %d canale\\\\i, %lu sample frames) caricati in "
 "memoria\n"
@@ -1669,9 +1672,8 @@ msgid "orch now loaded\n"
 msgstr "orchestra ora caricata\n"
 
 #: Engine/musmon.c:270
-#, fuzzy
 msgid "k-period aligned audio buffering\n"
-msgstr "k-period allineato all'audio buffering\n"
+msgstr "audio buffering allineato al k-period\n"
 
 #: Engine/musmon.c:286
 #, c-format
@@ -1695,11 +1697,10 @@ msgid "cannot reopen cscore.srt"
 msgstr "impossibile raprire cscore.srt"
 
 #: Engine/musmon.c:341
-#, fuzzy
 msgid "sorting cscore.out ..\n"
-msgstr "sistemo cscore.out ..\n"
+msgstr "ordino cscore.out ..\n"
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr "\t... fatto\n"
 
@@ -1707,22 +1708,22 @@ msgstr "\t... fatto\n"
 msgid "playing from cscore.srt\n"
 msgstr "suono da cscore.srt\n"
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr "SEZIONE %d:\n"
 
 #: Engine/musmon.c:406
-#, fuzzy, c-format
+#, c-format
 msgid "%c\tbeep!\n"
 msgstr "%c\tbeep!\n"
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr "fine della score.\t\t   ampiezza totale:"
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
@@ -1730,7 +1731,7 @@ msgstr ""
 "\n"
 "\t   numero di campioni fuori dall'intervallo (range):"
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
@@ -1739,182 +1740,180 @@ msgstr ""
 "\n"
 "%d errori nell'esecuzione\n"
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr "fine dell'esecuzione"
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr "nessun suono scritto sul disco\n"
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr "\t numero di campioni fuori dall'intervallo:"
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr "fine della sezione %d\t picchi d'ampiezza della sezione:"
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr "fine lista eventi di lplay\t      picco d'ampiezza:"
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr " - nota cancellata. strumento %s non definito"
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr "Fisso lo strumento %s %s\n"
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr "off"
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr "on"
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr " - nota cancellata. strumento %d(%d) non definito"
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr "Fisso lo strumento %d %s\n"
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr " - nota cancellata.  i%d (%s) ha %d errori di inizializzazione"
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr " - nota cancellata.  i%d ha %d errori di inizializzazione"
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr "avanzamento del tempo di %5.3f beats su richiesta della score\n"
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr "\t\t   T%7.3f - nota cancellata. "
 
-#: Engine/musmon.c:823
-#, fuzzy, c-format
+#: Engine/musmon.c:822
+#, c-format
 msgid "instr %s had %d init errors\n"
-msgstr "lo strumento %d ha %d errori di inizializzazione\n"
+msgstr "lo strumento %s ha %d errori di inizializzazione\n"
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr "lo strumento %d ha %d errori di inizializzazione\n"
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr "finito.\n"
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr "errore nella score.  opcode illecito %c (ASCII %d)\n"
 
 #: Engine/musmon.c:1277
-#, fuzzy, c-format
+#, c-format
 msgid "insert_score_event(): invalid instrument number or name %d\n"
-msgstr "insert_score_event(): numero o nome dello strumento non valido\n"
+msgstr "insert_score_event(): numero o nome dello strumento non valido %d\n"
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr "insert_score_event(): opcode sconosciuto: %c\n"
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr "insert_score_event(): p-fields insufficienti\n"
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
-msgstr ""
+msgstr "non posso riavvolgere la score: nessuna score in memoria \n"
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr "strumento %s non trovato"
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr "Impossibile trovare lo strumento %d"
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr "impossibile trovare lo strumento o l'opcode specificato"
 
 #: Engine/new_orc_parser.c:100
 #, c-format
 msgid "** found CS_UDO_DIR=%s\n"
-msgstr ""
+msgstr "** trovato CS_UDO_DIR=%s\n"
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, fuzzy, c-format
-msgid "Failed to open input file %s\n"
-msgstr "Non è possibile aprire il file di input %s"
+msgid "parser: failed to open input file %s\n"
+msgstr "Fallita apertura del file di input %s\n"
 
 #: Engine/new_orc_parser.c:187
-#, fuzzy
 msgid "Unmatched #ifdef\n"
-msgstr "#idef senza corrispondenza"
+msgstr "#idef senza corrispondenza\n"
 
 #: Engine/new_orc_parser.c:229
 msgid "Parsing successful!\n"
-msgstr ""
+msgstr "Analisi effettuata con successo!\n"
 
 #: Engine/new_orc_parser.c:233
 msgid "Parsing failed due to invalid input!\n"
-msgstr ""
+msgstr "Analisi fallita a causa di input non valido!\n"
 
 #: Engine/new_orc_parser.c:237
 msgid "Parsing failed due to memory exhaustion!\n"
-msgstr ""
+msgstr "Analisi fallita per esaurimento memoria!\n"
 
 #: Engine/new_orc_parser.c:240
 #, c-format
 msgid "Parsing failed due to %d syntax error%s!\n"
-msgstr ""
+msgstr "Analisi fallita a causa di %d errori di sintassi %s !\n"
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
-msgstr ""
+msgstr "Analisi fallita a causa di %d errori semantici %s !\n"
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
-msgstr ""
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
+msgstr "Analisi fallita a causa di errori di sintassi\n"
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
-msgstr ""
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
+msgstr "Analisi fallita a causa di nessun input!\n"
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
-msgstr ""
+msgstr "Stop per fallimento analisi"
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr "ERRORE: carattere illecito %c(%.2x) alla linea di score: "
 
-#: Engine/rdscor.c:122
-#, fuzzy
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
@@ -1922,204 +1921,209 @@ msgstr ""
 "\n"
 "\tresto della linea ignorato\n"
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr "ERRORE: troppi pfields: "
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr "sort: opcode illecito %c(%.2x)\n"
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 #, fuzzy
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr "sread:  lo spazio del testo eccede, incremento del MARGINE"
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr "sread: "
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr "errore nella score:  "
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr "  sezione %d:  alla posizione %d%s"
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr "Errore interno in print_input_backtrace()"
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr "  incluso dalla linea %d della macro %s%s"
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr "  chiamata dalla linea %d della macro %s%s"
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr "  alla linea %d della macro %s%s"
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr "Errore interno op=%c"
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr "Clockbase = %f\n"
 
-#: Engine/sread.c:1144
-#, fuzzy, c-format
+#: Engine/sread.c:1152
+#, c-format
 msgid "m Named section >>>%s<<<\n"
-msgstr "Sezione Nominata >>>%s<<<\n"
+msgstr "m Sezione con nome >>>%s<<<\n"
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, fuzzy, c-format
-msgid "%d: %s position %ld\n"
-msgstr "%d: File %s posizione %ld\n"
+msgid "%d: %s position %d\n"
+msgstr "%d: %s posizione %ld\n"
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr "Nome %s non trovato"
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr "Warp_factor = %f\n"
 
-#: Engine/sread.c:1249
-#, fuzzy, c-format
+#: Engine/sread.c:1261
+#, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
-msgstr "sread è confuso sugli opcodes leciti\n"
+msgstr "sread ?? confuso sugli opcodes leciti %c(%.2x)\n"
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
-msgstr "Non c'è l'evento precedente per ^"
+msgstr "Non c'?? l'evento precedente per ^"
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr "spazio illecito seguente %s, sostituito con zero"
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr "ignorato '%s' nell'evento '%c'"
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr "! non valido in p1, p2, or p3"
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr "      resto della linea ignorato\n"
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr "carattere illecito dopo !: '%c'"
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr "ATTENZIONE: strumento %s non trovato, insno = -1\n"
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr "sread: uso illecito del riporto,   sostituito 0\n"
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr "opcode illecito %c"
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr "piazzamento illecito di numero in espressione []"
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr "piazzamento illecito dell'operatore ~ in espressione []"
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr "piazzamento illecito dell'operatore @ o @@ in espressione []"
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr "piazzamento illecito dell'operatore %c in espressione []"
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr "piazzamento illecito di '(' in espressione []"
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr "manca l'operando dopo ')' in espressione []"
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+#, fuzzy
+msgid "illegal placement of '[' in [] expression"
+msgstr "piazzamento illecito di '(' in espressione []"
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr "manca l'operando dopo la chiusura della parentesi in []"
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr "carattere illecito %c(%.2x) in espressione []"
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr "carattere inatteso %c"
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr "stringa piazzata illecitamente"
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr "virgolette senza corrispondenza"
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr "sread: formato numerico illecito:  "
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr "   sostituito zero.\n"
 
-#: Engine/swritestr.c:165
-#, fuzzy, c-format
+#: Engine/swritestr.c:167
+#, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
-msgstr "swrite: opcode inatteso, sezione %d linea %d\n"
+msgstr "swrite: opcode %c inatteso, sezione %d alla linea %d\n"
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr "swrite: output, sez%d linea%d p%d fa illecito riferimento a "
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr "   sostituito zero\n"
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr "swrite: output, sez%d linea%d p%d ha illecito simbolo ramp\n"
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
@@ -2127,12 +2131,12 @@ msgstr ""
 "swrite: output, sez%d linea%d p%d ramp fa riferimento a precedente o "
 "successivo illecito\n"
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr "swrite: output, sez%d linea%d p%d ha simbolo expramp illecito\n"
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
@@ -2141,40 +2145,40 @@ msgstr ""
 "swrite: output, sez%d linea%d p%d expramp fa riferimento illecito a "
 "precedente o sucessivo\n"
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 "swrite: output, sez%d linea%d p%d ha stringa terminante illecitamente   "
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr "swrite: output, sez%d linea%d p%d ha numero illecito  "
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr "    Stringa troncata\n"
 
 #: Engine/symbtab.c:125
 #, c-format
 msgid "Type confusion for %s (%d,%d), replacing\n"
-msgstr ""
+msgstr "Confusione di tipi per %s (%d,%d), rimpiazzo\n"
 
 #: Engine/symbtab.c:308
-#, fuzzy, c-format
+#, c-format
 msgid "invalid input argument types found for opcode %s: %s\n"
-msgstr "tipo di input non valido per l'opcode %s"
+msgstr "tipo di argomento di input non valido per l'opcode %s: %s\n"
 
 #: Engine/symbtab.c:314
-#, fuzzy, c-format
+#, c-format
 msgid "invalid output argument types found for opcode %s: %s\n"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "tipo di argomento di output non valido per l'opcode %s: %s\n"
 
 #: Engine/symbtab.c:338 Engine/symbtab.c:359
-#, fuzzy, c-format
+#, c-format
 msgid "invalid input type for opcode %s \n"
-msgstr "tipo di input non valido per l'opcode %s"
+msgstr "tipo di input non valido per l'opcode %s\n"
 
 #: Engine/symbtab.c:392 Engine/symbtab.c:412
 #, c-format
@@ -2203,169 +2207,167 @@ msgstr "errore:"
 msgid "twarp: illegal opcode\n"
 msgstr "twarp: opcode illecito\n"
 
-#: Engine/twarp.c:188
-#, fuzzy
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
-msgstr "twarp: t ha valore di beat extra o disordinato\n"
+msgstr "twarp: t con valore di beat extra o disordinato\n"
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
-msgstr "twarp: t ha tempo non positivo\n"
+msgstr "twarp: t con tempo non positivo\n"
 
 #: InOut/cmidi.c:131
 #, c-format
 msgid "%d MIDI sources in system \n"
-msgstr ""
+msgstr "%d fonti MIDI nel sistema \n"
 
 #: InOut/cmidi.c:133
 msgid "receiving from all sources \n"
-msgstr ""
+msgstr "ricevo da tutte le fonti \n"
 
 #: InOut/cmidi.c:139 InOut/cmidi.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "connecting midi device %d: %s \n"
-msgstr "errore in apertura del dispositivo di input %d: %s"
+msgstr "connessione dispositivo midi %d: %s \n"
 
 #: InOut/cmidi.c:155
-#, fuzzy, c-format
+#, c-format
 msgid "MIDI device number %d is out-of-range, not connected \n"
-msgstr "%s dispositivo numero %d fuori range"
+msgstr "numero %d di dispositivo MIDI fuori range, non connesso \n"
 
 #: InOut/cmidi.c:173
 msgid "output not implemented yet in CoreMIDI \n"
-msgstr ""
+msgstr "output non ancora implementato in CoreMIDI \n"
 
 #: InOut/cmidi.c:279
-#, fuzzy
 msgid "rtmidi: CoreMIDI module enabled\n"
-msgstr "rtmidi: PortMIDI modulo abilitato\n"
+msgstr "rtmidi: modulo CoreMIDI abilitato\n"
 
-#: InOut/ipmidi.c:54
-#, fuzzy
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "WSAStartup fallito!\n"
 
-#: InOut/ipmidi.c:65
-#, fuzzy
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
-msgstr "event: errore nella creazione dell'evento '%c'"
+msgstr "Errore nella creazione del socket"
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
-msgstr ""
+msgstr "Errore nel vincolare socket all'interfaccia: %s"
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
-msgstr ""
+msgstr "Errore nell'aggiungere membro all'interfaccia: %s"
 
-#: InOut/ipmidi.c:162
-#, fuzzy
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
-msgstr "PortMIDI real time MIDI plugin per Csound\n"
+msgstr "ipMIDI plugin MIDI in tempo reale per Csound\n"
 
-#: InOut/ipmidi.c:178
-#, fuzzy
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
-msgstr "rtmidi: PortMIDI modulo abilitato\n"
+msgstr "ipmidi: modulo ipMIDI abilitato\n"
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr "errore: manca il nome del file di input"
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr "Fallita inizializzazione dell'input audio in tempo reale"
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
-#, fuzzy, c-format
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
+#, c-format
 msgid "isfinit: cannot open %s -- %s"
-msgstr "isfinit: impossibile aprire %s"
+msgstr "isfinit: impossibile aprire %s -- %s"
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr "isfinit: impossibile aprire %s"
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr "audio_in %s ha sr = %d, orch sr = %d"
 
-#: InOut/libsnd.c:547
-#, fuzzy, c-format
+#: InOut/libsnd.c:555
+#, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
-msgstr "audio_in %s ha %d canali, orch %d canali"
+msgstr "audio_in %s ha %d chnls, orch %d chnls_i"
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, fuzzy, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
-msgstr "lettura blocchi di %d-byte di %s da %s (%s)\n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
+msgstr "lettura di %d blocchi-campione di %d-byte floats da %s\n"
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr "lettura blocchi di %d-byte di %s da %s (%s)\n"
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
-#, fuzzy, c-format
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
+#, c-format
 msgid "Output file type changed to %s for use in pipe\n"
-msgstr "Tipo di file output cambiato in IRCAM per uso in pipe\n"
+msgstr "Tipo di file output cambiato in %s per usarlo nella pipe\n"
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr "Fallita inizializzazione dell'output audio in tempo reale"
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
-#, fuzzy, c-format
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
+#, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
-msgstr "sfinit: impossibile aprire %s"
+msgstr ""
+"sfinit: impossibile aprire fd %d\n"
+"%s"
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr "sfinit: impossibile aprire %s"
 
-#: InOut/libsnd.c:790
-#, fuzzy, c-format
+#: InOut/libsnd.c:797
+#, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
-msgstr "sfinit: impossibile aprire %s"
+msgstr ""
+"sfinit: impossibile aprire %s\n"
+"%s"
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, fuzzy, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
-msgstr "scrittura blocchi di %d-byte di %s su %s"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
+msgstr "scrittura di %d blocchi-campione di %d-bit floats su %s \n"
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr "scrittura blocchi di %d-byte di %s su %s"
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr " (raw)\n"
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, fuzzy, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
-msgstr "%ld blocchi di %d-byte di %s scritti su %s"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
+msgstr "%ld %d blocchi-campione di %d-byte floats scritti su %s\n"
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, fuzzy, c-format
-msgid "%ld %d sample blks of %s written to %s"
-msgstr "%ld blocchi di %d-byte di %s scritti su %s"
+msgid "%d %d sample blks of %s written to %s"
+msgstr "%ld %d blocchi-campione %s scritti su %s"
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
-msgstr "il file audio scritto ha conteggio byte di %d, non %d"
+msgstr "il soundfile scritto restituisce conteggio byte di %d, non %d"
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
@@ -2373,12 +2375,11 @@ msgstr ""
 "(forse disco pieno...\n"
 " chiusura file ...)"
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr "\t... chiuso\n"
 
-#: InOut/libsnd.c:972
-#, fuzzy
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr "nessuna scrittura su sound disk\n"
 
@@ -2389,7 +2390,7 @@ msgstr "canale richiesto %d illecito\n"
 
 #: InOut/libsnd_u.c:60 Opcodes/ugens9.c:413
 msgid "undetermined file length, will attempt requested duration"
-msgstr "lunghezza indeterminata del file, tenterà la durata richiesta"
+msgstr "lunghezza indeterminata del file, tenter?? la durata richiesta"
 
 #: InOut/libsnd_u.c:73
 msgid "full requested duration not available"
@@ -2412,7 +2413,7 @@ msgstr "errore in lettura del soundfile"
 #: InOut/libsnd_u.c:139
 #, c-format
 msgid "soundin cannot open %s"
-msgstr "soundin non può aprire %s"
+msgstr "soundin non pu?? aprire %s"
 
 #: InOut/libsnd_u.c:155
 #, c-format
@@ -2486,7 +2487,6 @@ msgid "soundin: invalid skip time"
 msgstr "soundin: skip time non valido"
 
 #: InOut/libsnd_u.c:232
-#, fuzzy
 msgid "soundin seek error"
 msgstr "errore ricerca di soundin"
 
@@ -2528,9 +2528,8 @@ msgid "floats"
 msgstr "floats"
 
 #: InOut/libsnd_u.c:371
-#, fuzzy
 msgid "double floats"
-msgstr "floats"
+msgstr "double floats"
 
 #: InOut/libsnd_u.c:372
 msgid "24bit ints"
@@ -2538,7 +2537,7 @@ msgstr "24bit ints"
 
 #: InOut/libsnd_u.c:373
 msgid "vorbis encoding"
-msgstr ""
+msgstr "codifica vorbis"
 
 #: InOut/midifile.c:83
 msgid " *** unexpected end of MIDI file\n"
@@ -2552,145 +2551,143 @@ msgstr " *** fine inaspettata della traccia MIDI\n"
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr " *** lunghezza dati dinamici non valida nel file MIDI\n"
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr " *** evento inatteso 0x%02X\n"
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr " *** file dati MIDI non valido\n"
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr " *** fine inaspettata di system exclusive message\n"
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr " *** system exclusive message non valido nel MIDI file\n"
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr "  Messaggio: "
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr "  Copyright info: "
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr "  Nome traccia: "
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr "  Nome strumento: "
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr "  Testo della canzone: "
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr " *** tempo non valido\n"
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr " *** fine non valida di evento traccia\n"
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
-msgstr ""
+msgstr " *** rimasugli spuri alla fine della traccia MIDI\n"
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr " *** messaggio MIDI sconosciuto: 0x%02X\n"
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr " *** header della traccia MIDI non valido\n"
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr " *** errore in apertura del file MIDI '%s': %s"
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr "Lettura del file MIDI '%s'...\n"
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr " *** header del file MIDI non valido\n"
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
-msgstr " *** il formato del file MIDI %d non è supportato\n"
+msgstr " *** il formato del file MIDI %d non ?? supportato\n"
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr " *** numero di tracce non valido\n"
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr "ATTENZIONE: formato del file MIDI 0 con tracce multiple\n"
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr " *** time code non valido: %d\n"
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
-msgstr " *** invalid mute track list format\n"
+msgstr " *** formato lista delle tracce silenziate non valido\n"
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr " Traccia %2d\n"
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
-msgstr " Traccia %2d è silenziata\n"
+msgstr " Traccia %2d ?? silenziata\n"
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr "fatto.\n"
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr "fine della traccia midi in '%s'\n"
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr "%d decays forzati, %d extra noteoffs\n"
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr " *** buffer overflow durante la lettura degli eventi del file MIDI\n"
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr "Caricamento del file MIDI fallito"
 
-#: InOut/midifile.c:798
-#, fuzzy
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
-msgstr "impossibile raprire cscore.out"
+msgstr "Non posso riavvolgere la score MIDI\n"
 
 #: InOut/midirecv.c:132
-#, fuzzy
 msgid " *** no callback for opening MIDI input"
-msgstr " *** no callback per apertura dell'input MIDI"
+msgstr " *** nessun callback per apertura dell'input MIDI"
 
 #: InOut/midirecv.c:134
 msgid " *** no callback for reading MIDI data"
-msgstr ""
+msgstr " *** nessun callback per leggere i dati MIDI"
 
 #: InOut/midirecv.c:137
 #, c-format
@@ -2700,7 +2697,7 @@ msgstr " *** errore in apertura del dispositivo MIDI in: %d (%s)"
 #: InOut/midirecv.c:169
 #, c-format
 msgid "sustain count still %d\n"
-msgstr ""
+msgstr "sustain conta ancora %d\n"
 
 #: InOut/midirecv.c:224
 #, c-format
@@ -2715,17 +2712,17 @@ msgstr "sconosciuto NPRN lsb %d\n"
 #: InOut/midirecv.c:277
 #, c-format
 msgid "unknown drum param nos, msb %d lsb %d\n"
-msgstr ""
+msgstr "parametri drum sconosciuti nos, msb %d lsb %d\n"
 
 #: InOut/midirecv.c:291
 #, c-format
 msgid "CHAN %d DRUMKEY %d not in keylst, PARAM %d NOT UPDATED\n"
-msgstr ""
+msgstr "CHAN %d DRUMKEY %d non nella keylst, PARAM %d NON AGGIORNATO\n"
 
 #: InOut/midirecv.c:313
 #, c-format
 msgid "ctrl %d has no exclus list\n"
-msgstr ""
+msgstr "ctrl %d non ha nessuna lista d'esclusione\n"
 
 #: InOut/midirecv.c:343
 #, c-format
@@ -2750,7 +2747,7 @@ msgstr "il canale midi %d usa lo strumento %d\n"
 #: InOut/midirecv.c:405
 #, c-format
 msgid "midi channel %d is muted\n"
-msgstr "il canale midi %d è silenziato\n"
+msgstr "il canale midi %d ?? silenziato\n"
 
 #: InOut/midirecv.c:423
 #, c-format
@@ -2798,11 +2795,11 @@ msgstr "Errore in chiusura del dispositivo MIDI out: %d (%s)"
 
 #: InOut/midisend.c:177
 msgid " *** no callback for opening MIDI output"
-msgstr ""
+msgstr " *** nessun callback per apertura dell'output MIDI"
 
 #: InOut/midisend.c:179
 msgid " *** no callback for writing MIDI data"
-msgstr ""
+msgstr " *** nessun callback per la scrittura dei dati MIDI"
 
 #: InOut/midisend.c:185
 #, c-format
@@ -2816,12 +2813,11 @@ msgstr " *** errore in apertura del file MIDI out '%s'"
 
 #: InOut/midisend.c:203
 msgid "Short write in MIDI\n"
-msgstr ""
+msgstr "Breve scrittura in MIDI\n"
 
 #: InOut/midisend.c:215
-#, fuzzy
 msgid "error closing MIDI output file\n"
-msgstr "errore chiusura disositivo di output"
+msgstr "errore chiusura file MIDI di output\n"
 
 #: InOut/pmidi.c:157
 msgid " *** error initialising PortMIDI"
@@ -2886,7 +2882,7 @@ msgstr "errore in apertura del dispositivo di output %d: %s"
 
 #: InOut/pmidi.c:374
 msgid "error polling input device"
-msgstr ""
+msgstr "errore nella raccolta di informazioni sul dispositivo di input"
 
 #: InOut/pmidi.c:389
 msgid "buffer overflow in MIDI input"
@@ -2904,7 +2900,7 @@ msgstr "dati MIDI out non validi"
 #: InOut/pmidi.c:445
 #, c-format
 msgid "MIDI out: system message 0x%02X is not supported"
-msgstr "MIDI out: messaggio di sistema 0x%02X non è supportato"
+msgstr "MIDI out: messaggio di sistema 0x%02X non ?? supportato"
 
 #: InOut/pmidi.c:451
 msgid "MIDI out: truncated message"
@@ -2928,20 +2924,20 @@ msgstr "rtmidi: PortMIDI modulo abilitato\n"
 
 #: InOut/rtalsa.c:118
 msgid "--scheduler: invalid priority value; the allowed range is:"
-msgstr "--scheduler: valore di priorità non valido; il range permesso è:"
+msgstr "--scheduler: valore di priorit?? non valido; il range permesso ??:"
 
 #: InOut/rtalsa.c:120
 msgid "  -20 to -1: set nice level"
-msgstr ""
+msgstr "  -20 to -1: imposta un buon livello"
 
 #: InOut/rtalsa.c:121
 msgid "          0: normal scheduling, but lock memory"
-msgstr ""
+msgstr "          0: scheduling normale, ma blocca la memoria"
 
 #: InOut/rtalsa.c:123
 #, c-format
 msgid "    1 to %d: SCHED_RR with the specified priority (DANGEROUS)"
-msgstr "    1 to %d: SCHED_RR con la specificata priorità (PERICOLOSO)"
+msgstr "    1 to %d: SCHED_RR con la specificata priorit?? (PERICOLOSO)"
 
 #: InOut/rtalsa.c:133
 msgid "csound: cannot set scheduling policy to SCHED_RR"
@@ -2954,7 +2950,7 @@ msgstr ""
 #: InOut/rtalsa.c:141
 #, c-format
 msgid "csound: cannot set nice level to %d"
-msgstr ""
+msgstr "csound: non riesco ad impostare un buon livello a %d"
 
 #: InOut/rtalsa.c:366
 #, c-format
@@ -2967,414 +2963,403 @@ msgid " *** Cannot open device '%s' for audio input: %s"
 msgstr " *** Impossibile aprire il dispositivo '%s' per input audio: %s"
 
 #: InOut/rtalsa.c:375
-#, fuzzy
 msgid "No real-time audio configurations found"
-msgstr "PortAudio modulo audio in tempo reale per Csound\n"
+msgstr "Nessuna configurazione trovata per audio in tempo reale"
 
 #: InOut/rtalsa.c:381
-#, fuzzy
 msgid "Could not retrieve max number of channels"
-msgstr "numero di canali non valido"
+msgstr "Non posso recuperare il numero massimo di canali"
 
 #: InOut/rtalsa.c:394
 msgid "Error setting access type for soundcard"
-msgstr ""
+msgstr "Errore nell'impostazione del tipo di accesso alla soundcard"
 
 #: InOut/rtalsa.c:407
 msgid ""
 "Unknown sample format.\n"
 " *** Only 16-bit and 32-bit integers, and 32-bit floats are supported."
 msgstr ""
+"Formato campione sconosciuto.\n"
+" *** Sono supportati solo 16-bit e 32-bit interi, e 32-bit floats."
 
 #: InOut/rtalsa.c:413
 msgid "Unable to set requested sample format on soundcard"
-msgstr ""
+msgstr "Non posso impostare il formato campione richiesto sulla soundcard"
 
 #: InOut/rtalsa.c:419
-#, fuzzy
 msgid "Unable to set number of channels on soundcard"
-msgstr "numero di canali non valido"
+msgstr "Non posso impostare il numero di canali sulla soundcard"
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
-msgstr ""
+msgstr "Non posso impostare la frequenza di campionamento sulla soundcard"
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
-msgstr ""
+msgstr " *** frequenza impostata a %d\n"
 
-#: InOut/rtalsa.c:444
-#, fuzzy, c-format
+#: InOut/rtalsa.c:446
+#, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
-msgstr "ALSA: -B %d non è permesso su questo dispositivo; usare %d invece\n"
+msgstr "ALSA: -B %d non ?? permesso su questo dispositivo; usare %d invece\n"
 
-#: InOut/rtalsa.c:467
-#, fuzzy, c-format
+#: InOut/rtalsa.c:469
+#, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
-msgstr "ALSA: -b %d non è permesso su questo dispositivo; usare %d invece\n"
+msgstr "ALSA: -b %d non ?? permesso su questo dispositivo; usare %d invece\n"
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
+"Errore nell'impostazione dei parametri hardware per audio in tempo reale"
 
-#: InOut/rtalsa.c:483
-#, fuzzy, c-format
+#: InOut/rtalsa.c:485
+#, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr "ALSA %s: totale dimensione buffer: %d, dimensione periodo: %d\n"
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
+"Errore nell'impostazione dei parametri software per audio in tempo reale"
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr "Allocazione di memoria fallita"
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 " *** ALSA: si deve specificare un nome di dispositivo, non un numero (es. -"
 "odac:hw:0,0)"
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr " *** ALSA: %s: allocazione di memoria fallita"
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr "Buffer overrun nell'input audio in tempo reale"
 
-#: InOut/rtalsa.c:704
-#, fuzzy
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
-msgstr "PortAudio modulo audio in tempo reale per Csound\n"
+msgstr "Input audio in tempo reale sospeso"
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr "Errore in lettura dati dal dispositivo di input audio"
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr "Buffer underrun nell'output audio in tempo reale"
 
-#: InOut/rtalsa.c:749
-#, fuzzy
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
-msgstr "PortAudio modulo audio in tempo reale per Csound\n"
+msgstr "Output audio in tempo reale sospeso"
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr "Errore in scrittura dati sul dispositivo di output audio"
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr "ALSA MIDI: allocazione di memoria fallita"
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr "ALSA: errore in apertura del dispositivo di input MIDI: '%s'"
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr "ALSA: aperto il dispositivo di input MIDI '%s'\n"
 
-#: InOut/rtalsa.c:826
-#, fuzzy
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
-msgstr "ALSA midi: uso di tutti i dispositivi.\n"
+msgstr "ALSA midi: nessuna stringa\n"
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr "ALSA midi: uso di tutti i dispositivi.\n"
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr "ALSA midi: errore in apertura del dispositivo: %s\n"
 
-#: InOut/rtalsa.c:881
-#, fuzzy
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
-msgstr "ALSA midi: uso di tutti i dispositivi.\n"
+msgstr "ALSA midi: nessun dispositivo trovato.\n"
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr "ALSA: errore in apertura del dispositivo di output MIDI: '%s'"
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr "ALSA: aperto il dispositivo di output MIDI '%s'\n"
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr "-M stdin fcntl fallito"
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr "Impossibile aprire %s"
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr "MIDI receive: impossibile ottenere termios info."
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr "MIDI receive: impossibile impostare input baud rate."
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr "MIDI receive: impossibile settare termios."
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr "Apertura del file del dispositivo di input MIDI '%s'\n"
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr "sensMIDI: retval errno %d"
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr "Errore in apertura del file del dispositivo di output MIDI '%s'"
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr "Apertura del file del dispositivo di output MIDI '%s'\n"
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
-msgstr ""
+msgstr "ALSASEQ: fallita connessione %s %s (%s)"
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
-msgstr ""
+msgstr "ALSASEQ: connesso %s %d:%d\n"
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
-msgstr ""
+msgstr "ALSASEQ: connessione fallita %s %s, porta %d (%s)"
 
-#: InOut/rtalsa.c:1379
-#, fuzzy
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
-msgstr "ALSA MIDI: allocazione di memoria fallita"
+msgstr "ALSASEQ input: allocazione di memoria fallita"
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
-#, fuzzy, c-format
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
+#, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
-msgstr "ALSA midi: errore in apertura del dispositivo: %s\n"
+msgstr "ALSASEQ: errore in apertura del sequencer (%s)"
 
-#: InOut/rtalsa.c:1391
-#, fuzzy
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
-msgstr "ALSA: aperto il dispositivo di input MIDI '%s'\n"
+msgstr "ALSASEQ: aperto l'input del sequencer MIDI\n"
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
-msgstr ""
+msgstr "ALSASEQ: non riesco a impostare il nome del cliente '%s' (%s)"
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
-msgstr ""
+msgstr "ALSASEQ: non riesco a creare la porta di input (%s)"
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
-msgstr ""
+msgstr "ALSASEQ: non riesco a creare la porta di input '%s' %d:%d\n"
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
-msgstr ""
+msgstr "ALSASEQ: non riesco a creare l'evento midi (%s)"
 
-#: InOut/rtalsa.c:1471
-#, fuzzy
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
-msgstr "ALSA MIDI: allocazione di memoria fallita"
+msgstr "ALSASEQ output: allocazione di memoria fallita"
 
-#: InOut/rtalsa.c:1483
-#, fuzzy
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
-msgstr "ALSA: aperto il dispositivo di output MIDI '%s'\n"
+msgstr "ALSASEQ: aperto l'output del sequencer MIDI\n"
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
-msgstr ""
+msgstr "ALSASEQ: non riesco a creare la porta d'output (%s)"
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
-msgstr ""
+msgstr "ALSASEQ: creata la porta d'output '%s' %d:%d\n"
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
-msgstr "attenzione... impossibile creare global var\n"
+msgstr "attenzione... non riesco a creare global var\n"
 
-#: InOut/rtalsa.c:1571
-#, fuzzy
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
-msgstr "priorità RT scheduler, modulo alsa"
+msgstr "priorit?? RT scheduler, modulo alsa"
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
-msgstr ""
+msgstr "ALSASEQ nome del cliente (default: Csound)"
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr "ALSA real-time audio e modulo MIDI per Csound di Istvan Varga\n"
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
-#, fuzzy, c-format
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
+#, c-format
 msgid "cannot determine card number: %s"
-msgstr "Impossibile ridefinire %s"
+msgstr "non riesco a determinare il numero della card: %s"
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
-msgstr ""
+msgstr "nessuna sound card trovata"
 
-#: InOut/rtalsa.c:1614
-#, fuzzy, c-format
+#: InOut/rtalsa.c:1617
+#, c-format
 msgid "cannot open control for card %d: %s"
-msgstr "sfinit: impossibile aprire %s"
+msgstr "non riesco ad aprire il controllo della card %d: %s"
 
-#: InOut/rtalsa.c:1621
-#, fuzzy, c-format
+#: InOut/rtalsa.c:1624
+#, c-format
 msgid "cannot determine device number: %s"
-msgstr "Impossibile ridefinire %s"
+msgstr "riesco a determinare il numero del dispositivo: %s"
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
-msgstr ""
+msgstr "riesco a ottenere le informazioni rawmidi %d:%d:%d: %s\n"
 
-#: InOut/rtalsa.c:1767
-#, fuzzy
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
-msgstr "Impossibile aprire %s"
+msgstr "non posso aprire il sequencer\n"
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
-msgstr ""
+msgstr "rtalsa: Callback sbagliato."
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr "rtaudio: modulo ALSA abilitato\n"
 
-#: InOut/rtalsa.c:1862
-#, fuzzy
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
-msgstr "rtmidi: modulo ALSA abilitato\n"
+msgstr "rtmidi: modulo ALSA Raw MIDI abilitato\n"
 
-#: InOut/rtalsa.c:1874
-#, fuzzy
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
-msgstr "rtmidi: modulo ALSA abilitato\n"
+msgstr "rtmidi: modulo ALSASEQ abilitato\n"
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr "rtmidi: modulo devfile abilitato\n"
 
 #: InOut/rtauhal.c:228
-#, fuzzy, c-format
+#, c-format
 msgid "AuHAL Module: found %d input device(s):\n"
-msgstr "modulo coreaudio: dispositivo chiuso\n"
+msgstr "Modulo AuHAL: trovato %d dispositivo/i di input:\n"
 
 #: InOut/rtauhal.c:230
-#, fuzzy, c-format
+#, c-format
 msgid "AuHAL Module: found %d output device(s):\n"
-msgstr "ALSA: aperto il dispositivo di output MIDI '%s'\n"
+msgstr "Modulo AuHAL: trovato %d dispositivo/i di output:\n"
 
 #: InOut/rtauhal.c:236 InOut/rtauhal.c:243
-#, fuzzy, c-format
+#, c-format
 msgid "%d: %s (%d channels) \n"
-msgstr "(%d canali)\n"
+msgstr "%d: %s (%d canali) \n"
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
-#, fuzzy, c-format
+#: InOut/rtauhal.c:265
+#, c-format
 msgid "requested device %d out of range"
-msgstr "%s dispositivo numero %d fuori range"
+msgstr "dispositivo richiesto %d fuori range"
 
-#: InOut/rtauhal.c:300
+#: InOut/rtauhal.c:280
 #, fuzzy, c-format
+msgid "requested device %d (%s) out of range"
+msgstr "dispositivo richiesto %d fuori range"
+
+#: InOut/rtauhal.c:300
+#, c-format
 msgid "selected input device: %s \n"
-msgstr "dispositivo selezionato: %u \n"
+msgstr "dispositivo d'input selezionato: %s \n"
 
 #: InOut/rtauhal.c:304
-#, fuzzy, c-format
+#, c-format
 msgid "selected output device: %s \n"
-msgstr "dispositivo selezionato: %u \n"
+msgstr "dispositivo d'output selezionato: %s \n"
 
 #: InOut/rtauhal.c:334
 #, c-format
 msgid "Attempted to set device SR, tried %.1f, got %.1f \n"
 msgstr ""
+"Tentativo di impostare la SR del dispositivo, provato %.1f, ottenuto %.1f \n"
 
 #: InOut/rtauhal.c:410
 #, c-format
 msgid "***** AuHAL module: output device open with %d buffer frames\n"
-msgstr ""
+msgstr "***** modulo AuHAL: dispositivo d'output aperto con %d buffer frames\n"
 
 #: InOut/rtauhal.c:782
-#, fuzzy
 msgid "AuHAL module: device closed\n"
-msgstr "modulo coreaudio: dispositivo chiuso\n"
+msgstr "modulo AuHAL: dispositivo chiuso\n"
 
 #: InOut/rtauhal.c:799
-#, fuzzy
 msgid "rtaudio: coreaaudio-AuHAL module enabled\n"
-msgstr "rtaudio: CoreAudio modulo abilitato\n"
+msgstr "rtaudio: modulo coreaaudio-AuHAL abilitato\n"
 
 #: InOut/rtjack.c:178
-#, fuzzy
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr " *** ATTENZIONE: disabilito --sched in modo freewheel\n"
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr "allocazione di memoria fallita"
 
 #: InOut/rtjack.c:316
-#, fuzzy
 msgid "error registering input ports"
-msgstr "errore in registrazione delle porte di input"
+msgstr "errore registrazione delle porte di input"
 
 #: InOut/rtjack.c:327
-#, fuzzy
 msgid "error registering output ports"
-msgstr "errore in registrazione delle porte di output"
+msgstr "errore registrazione delle porte di output"
 
 #: InOut/rtjack.c:345
 msgid "could not connect to JACK server"
-msgstr "Impossibile connettersi al server JACK"
+msgstr "Non riesco a connettermi al server JACK"
 
 #: InOut/rtjack.c:352
 msgid "invalid number of channels"
 msgstr "numero di canali non valido"
 
 #: InOut/rtjack.c:355
-#, fuzzy
 msgid "invalid number of input channels"
-msgstr "numero di canali non valido"
+msgstr "numero di canali di input non valido"
 
 #: InOut/rtjack.c:358
 msgid "invalid sample rate"
@@ -3386,23 +3371,20 @@ msgid "sample rate %d does not match JACK sample rate %d"
 msgstr "la frequenza di campionamento %d non corrisponde a quella di JACK %d"
 
 #: InOut/rtjack.c:366
-#, fuzzy
 msgid "invalid period size (-b)"
-msgstr "period size non valida (-b)"
+msgstr "period size (-b) non valida"
 
 #: InOut/rtjack.c:370
 msgid "invalid buffer size (-B)"
 msgstr "buffer size non valida (-B)"
 
 #: InOut/rtjack.c:373
-#, fuzzy
 msgid "buffer size (-B) is too small"
-msgstr "buffer size (-B) è troppo piccola"
+msgstr "buffer size (-B) ?? troppo piccolo"
 
 #: InOut/rtjack.c:412
-#, fuzzy
 msgid "error setting sample rate callback"
-msgstr "errore impostazione callback della frequenza di campionamento"
+msgstr "errore impostazione della frequenza di campionamento del callback"
 
 #: InOut/rtjack.c:416
 msgid "error setting buffer size callback"
@@ -3424,242 +3406,251 @@ msgstr "errore impostazione processo callback"
 msgid "error activating JACK client"
 msgstr "errore attivazione JACK client"
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
-#, fuzzy, c-format
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
+#, c-format
 msgid "connecting channel %d to %s \n"
-msgstr "errore in apertura del dispositivo di input %d: %s"
+msgstr "connessione canale %d a %s \n"
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"fallita l autoconnessione del canale input %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"porta jack %d non valida \n"
+"fallita autoconnessione del canale d'input %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"canale d'input non autoconnesso %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
-msgstr ""
+msgstr "put port non connessa\n"
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"fallita autoconnessione del canale d'output %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"porta jack %d non valida \n"
+"fallita autoconnessione del canale d'output %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
+"fallita autoconnessione del canale d'output %d \n"
+"(?? necessaria la connessione manuale)"
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
-msgstr ""
+msgstr "porta d'output non connessa\n"
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr "parametri di input e di output incompatibili"
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr "period size (-b) deve essere un multiplo intero di ksmps"
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr "la frequenza di campionamento deve essere un intero"
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr "frequenza di campionamento di JACK cambiata"
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr "nessuna connessione al server JACK"
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr " *** rtjack: connessione al server JACK persa, riconnessione..."
 
-#: InOut/rtjack.c:785
-#, fuzzy
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
-msgstr "rtjack: xrun in real time audio"
+msgstr "rtjack: timeout dell'input audio"
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr "rtjack: xrun in real time audio"
 
-#: InOut/rtjack.c:1021
-#, fuzzy
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
-msgstr "JACK modulo real-time audio per Csound di Istvan Varga\n"
+msgstr "modulo JACK audio in tempo reale per Csound\n"
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr " *** rtjack: errore allocazione globali"
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
-msgstr ""
+msgstr "JACK nome cliente (default: csound6)"
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
-msgstr ""
+msgstr "prefisso nome porta d'input JACK (default: input)"
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
-msgstr ""
+msgstr "prefisso nome porta d'output JACK (default: output)"
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
-msgstr ""
+msgstr "Obsoleto"
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
-msgstr ""
+msgstr "modulo JACK MIDI per Csound\n"
 
-#: InOut/rtjack.c:1086
-#, fuzzy
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
-msgstr " *** rtjack: errore allocazione globali"
+msgstr " *** rtjack MIDI: errore allocazione globali"
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
-msgstr ""
+msgstr "JACK MIDI prefisso nome cliente (default: csound6-midi)"
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
-msgstr ""
+msgstr "JACK MIDI nome porta d'input (default: port)"
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
-msgstr ""
+msgstr "JACK MIDI nome porta d'output (default: port)"
 
-#: InOut/rtjack.c:1148
-#, fuzzy
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
-msgstr "ungetscochar(): buffer overflow"
+msgstr "modulo Jack MIDI: buffer overflow"
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita creazione del cliente per l'input"
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita registrazione della porta d' input"
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
+"modulo Jack MIDI: fallita impostazione del processo di callback dell'input"
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita l'attivazione dell'input"
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita la connessione a: %s"
 
-#: InOut/rtjack.c:1260
-#, fuzzy
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
-msgstr "ungetscochar(): buffer overflow"
+msgstr "modulo Jack MIDI: buffer overflow dell'out"
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita creazione del cliente per l'output"
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita registrazione della porta d'output"
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
-msgstr ""
+msgstr "modulo Jack MIDI: fallita attivazione dell'output"
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
-msgstr ""
+msgstr "modulo out Jack MIDI: fallita connessione a: %s"
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr "rtaudio: modulo JACK abilitato\n"
 
-#: InOut/rtjack.c:1481
-#, fuzzy
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
-msgstr "rtaudio: modulo JACK abilitato\n"
+msgstr "rtmidi: modulo JACK abilitato\n"
 
 #: InOut/rtpa.c:76
 msgid " *** PortAudio: error: "
 msgstr " *** PortAudio: errore: "
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr "%s dispositivo numero %d fuori range"
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr "output"
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr "input"
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr "PortAudio: selezionato %s dispositivo '%s'\n"
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr "PortAudio: fallito ottenimento info dispositivo.\n"
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr "Si deve specificare un numero di dispositivo, non un nome"
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr "Nessun dispositivo di suono disponibile"
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr "Dimensione buffer full-duplex incompatibile"
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr "Frequenza di campionamento full-duplex incompatibile"
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
@@ -3667,33 +3658,30 @@ msgstr ""
 "ATTENZIONE: la dimensione del buffer deve essere un multiplo intero di ksmps "
 "in full-duplex mode\n"
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
-#, fuzzy
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
-msgstr "errore chiusura disositivo di input"
+msgstr "chiusura dispositivo\n"
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr "PortAudio: uso del dispositivo ALSA '%s'\n"
 
-#: InOut/rtpa.c:852
-#, fuzzy
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
-msgstr "rtaudio: modulo PortAudio abilitato ... "
+msgstr "rtaudio: modulo PortAudio abilitato ... \n"
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr "uso dell'interfaccia callback\n"
 
 #: InOut/rtpulse.c:49
-#, fuzzy
 msgid "PulseAudio client RT IO module for Csoundby Victor Lazzarini\n"
-msgstr "PulseAudio modulo cliente RT IO per Csound"
+msgstr "PulseAudio cliente RT IO per Csound di Victor Lazzarini\n"
 
 #: InOut/rtpulse.c:54
 msgid " *** rtpulse: error allocating globals"
@@ -3817,365 +3805,379 @@ msgstr "Apertura del dispositivo di input MIDI %d (%s)\n"
 
 #: InOut/rtwinmm.c:568
 msgid "rtmidi: could not open input device"
-msgstr ""
+msgstr "rtmidi: non posso aprire il dispositivo d'input"
 
 #: InOut/rtwinmm.c:636
 msgid "rtmidi: no output devices are available"
-msgstr ""
+msgstr "rtmidi: nessun dispositivo d'output disponibile"
 
 #: InOut/rtwinmm.c:648
 msgid "The available MIDI output devices are:\n"
-msgstr ""
+msgstr "I dispositivi d'output MIDI disponibili sono:\n"
 
 #: InOut/rtwinmm.c:655
 msgid "rtmidi: output device number is out of range"
-msgstr ""
+msgstr "rtmidi: il numero del dispositivo d'output ?? fuori intervallo"
 
 #: InOut/rtwinmm.c:659
 #, c-format
 msgid "Opening MIDI output device %d (%s)\n"
-msgstr ""
+msgstr "Apertura del dispositivo d'output MIDI %d (%s)\n"
 
 #: InOut/rtwinmm.c:664
 msgid "rtmidi: could not open output device"
-msgstr ""
+msgstr "rtmidi: non riesco ad aprire il dispositivo d'output"
 
 #: InOut/rtwinmm.c:724
 msgid ""
 "Windows MME real time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
+"modulo Windows MME per audio in tempo reale per Csound di Istvan Varga\n"
 
 #: InOut/rtwinmm.c:729
 msgid "could not allocate global structure"
-msgstr ""
+msgstr "non riesco ad allocare la struttura globale"
 
 #: InOut/rtwinmm.c:761
 msgid "rtaudio: WinMM module enabled\n"
-msgstr ""
+msgstr "rtaudio: modulo WinMM abilitato\n"
 
 #: InOut/rtwinmm.c:769
-#, fuzzy
 msgid "rtmidi: WinMM module enabled\n"
-msgstr "rtmidi: modulo devfile abilitato\n"
+msgstr "rtmidi: modulo WinMM abilitato\n"
 
 #: InOut/virtual_keyboard/virtual_keyboard.cpp:430
 msgid "virtual_keyboard.cpp: error allocating FLTK flags"
-msgstr ""
+msgstr "virtual_keyboard.cpp: error allocating FLTK flags"
 
 #: InOut/virtual_keyboard/virtual_keyboard.cpp:438 InOut/winFLTK.c:123
 #: InOut/winFLTK.c:137
 #, c-format
 msgid "Error registering opcode '%s'"
-msgstr ""
+msgstr "Errore registrazione opcode '%s'"
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
+"Istantanea (snapshot) non valida. Forse avete modificato il codice orchestra "
+"del widget dopo aver salvato l'istantanea del banco."
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
-msgstr ""
+msgstr "Nessun nome per FLbutbank"
 
-#: InOut/widgets.cpp:1569
-#, fuzzy
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
-msgstr "soundin: skip time non valido"
+msgstr "FLsetsnap: tavola non valida"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
-msgstr ""
+msgstr "salvataggio setsnap\n"
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
+"Il salvataggio potrebbe sovrascrivere il vecchio file.\n"
+"Sicuro di voler salvare ?"
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
-msgstr ""
+msgstr "Attenzione"
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
+"Il salvataggio potrebbe sovrascrivere il vecchio file.\n"
+"Sicuro di voler salvare ?"
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr "No"
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr "Si"
 
-#: InOut/widgets.cpp:1634
-#, fuzzy
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "FLsavesnap: non riesco ad aprire il file"
 
-#: InOut/widgets.cpp:1691
-#, fuzzy
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "FLloadsnap: non riesco ad aprire il file"
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
+"widget non combaciante, probabilmente dovuto a orchestra modificata. "
+"Modificare una orchestra la rende incompatibile con i vecchi files "
+"istantanea (snapshot)"
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
-msgstr ""
+msgstr "fine del thread del widget\n"
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
-msgstr ""
+msgstr "FLrun ?? gi?? stato chiamato"
 
-#: InOut/widgets.cpp:2159
-#, fuzzy
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
-msgstr "allocazione di memoria fallita"
+msgstr "FL_run: allocazione di memoria fallita"
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
-msgstr ""
+msgstr "Errore: Non riesco a separare il processo\n"
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
+"FLpanel_end: puntatore allo stack non valido: verificate il suo "
+"posizionamento"
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
+"FLpanel_end: conteggio stack non valido: verificate il conteggio e il "
+"posizionamento di FLpanel/FLpanel_end"
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
+"FLscroll_end: puntatore allo stack non valido: verificate il suo "
+"posizionamento"
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
+"FLscroll_end: conteggio stack non valido: verificate conteggio e "
+"posizionamento FLscroll/FLscroll_end"
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
+"FLtabs_end: conteggio stack non valido: verificate conteggio e "
+"posizionamento FLtabs/FLtabs_end"
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
+"FLgroup_end: puntatore allo stack non valido: verificate il suo "
+"posizionamento"
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
+"FLgroup_end: conteggio stack non valido: verificate conteggio e "
+"posizionamento FLgroup/FLgroup_end"
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
+"FLpack_end: puntatore allo stack non valido: verificate il suo posizionamento"
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
+"FLpack_end: conteggio stack non valido: verificate conteggio e "
+"posizionamento FLpack/FLpack_end"
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
-msgstr ""
+msgstr "FLvalue non pu?? essere impostato da FLsetVal.\n"
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
-msgstr ""
+msgstr "(fl_setWidgetValuei): non ancora implementato del tutto; exp=%d"
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
-msgstr ""
+msgstr "FLvalue non pu?? essere impostato da FLsetVal\n"
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
-msgstr ""
+msgstr "(fl_setWidgetValue_set): non ancora implementato del tutto; exp=%d"
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
-msgstr ""
+msgstr "FLslider esponenziale, uso slider non etichettato"
 
-#: InOut/widgets.cpp:3502
-#, fuzzy
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
-msgstr "%s frequenza di campionamento (sr) non valida"
+msgstr "FLslider: tipo di slider non valido"
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLslider: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
-msgstr ""
+msgstr "allocazione dello spazio ZAK non valida"
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLslidBnk: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLjoy asse X: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:3936
-#, fuzzy
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
-msgstr "tipo di variabile non valido"
+msgstr "FLknob: tipo di manopola (knob) non valido"
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLknob: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
-msgstr ""
+msgstr "FLbutton: tipo di pulsante non valido"
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
+"FLcloseButton: puntatore allo stack non valido: verificate il suo "
+"posizionamento"
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
-msgstr ""
+msgstr "Trovato Comando: %s\n"
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
-msgstr ""
+msgstr "A proposito"
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
-msgstr ""
+msgstr "FLbuttonBank: tipo di buttonnon valido"
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
-#, fuzzy
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
-msgstr "GEN53: window table non valida"
+msgstr "FLroller: tipo di roller non valido"
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
-msgstr ""
+msgstr "FLhvsBox: un'area quadrata deve essere delimitata da almeno 2 linee"
 
-#: InOut/widgets.cpp:4608
-#, fuzzy
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLkeyIn: numero di tavola non valido"
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
-msgstr ""
+msgstr "FLkeyIn: tavola troppo corta!"
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLvslidBnk: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
-msgstr ""
+msgstr "FLsliderBank: zero ?? illegale nelle operazioni esponenziali"
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
-msgstr ""
+msgstr "FLslidBnk2: FLslider esponenziale, uso slider non etichettato"
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
-#, fuzzy
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLsldBnkSet: numero di tavola non valido"
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
-#, fuzzy
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "FLslidBnkSet: la tavola ?? troppo corta!"
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
-#, fuzzy
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLsldBnkSet: numero della outable non valido"
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
-msgstr ""
+msgstr "FLslidBnkSet: troppi slider da resettare!"
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
-msgstr ""
+msgstr "FLslidBnkSet: funzione di mappatura non disponibile"
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
+"FLslidBnk2Setk: valore fuori intervallo: funzione di mappatura richiede "
+"intervallo da 0 a 1 per l'input"
 
-#: InOut/widgets.cpp:5468
-#, fuzzy
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLsldBnkSetk: numero di tavola non valido"
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
-#, fuzzy
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "FLslidBnkSetk: la tavola ?? troppo corta!"
 
-#: InOut/widgets.cpp:5482
-#, fuzzy
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLsldBnkSetk: numero della outable non valido"
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
-msgstr ""
+msgstr "FLslidBnkSetk: troppi slider da resettare!"
 
-#: InOut/widgets.cpp:5561
-#, fuzzy
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLslidBnkSetk: numero di tavola non valido"
 
-#: InOut/widgets.cpp:5575
-#, fuzzy
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "FLslidBnkSetk: numero della outable non valido"
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
-msgstr ""
+msgstr "FLxyin: nessun limite di X pu?? essere zero nel modo esponenziale!"
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
-msgstr ""
+msgstr "FLxyin: nessun limite di Y pu?? essere zero nel modo esponenziale!"
 
 #: InOut/winEPS.c:135
 #, c-format
 msgid "** Warning **  PostScript file %s cannot be opened\n"
-msgstr ""
+msgstr "** Attenzione **  il file PostScript %s non pu?? essere aperto\n"
 
 #: InOut/winEPS.c:141
 #, c-format
@@ -4184,11 +4186,14 @@ msgid ""
 " PostScript graphs written to file %s\n"
 "\n"
 msgstr ""
+"\n"
+" PostScript graphs scritto sul file %s\n"
+"\n"
 
 #: InOut/winFLTK.c:55
 #, c-format
 msgid "%s: widget opcodes have been disabled by the host application"
-msgstr ""
+msgstr "%s: l'opcode widget ?? stato disabilitato dall'applicazione host"
 
 #: InOut/winFLTK.c:80
 msgid "widgets.cpp: error allocating FLTK flags"
@@ -4197,20 +4202,20 @@ msgstr ""
 #: InOut/winascii.c:78
 #, c-format
 msgid "%s\t%ld points, scalemax %5.3f\n"
-msgstr ""
+msgstr "%s\t%ld punti, scalemax %5.3f\n"
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
-msgstr ""
+msgstr "l'opcode xyin ?? obsoleto in Csound6."
 
 #: InOut/window.c:76
 msgid "displays suppressed\n"
-msgstr ""
+msgstr "displays soppressi\n"
 
 #: InOut/window.c:84
 #, c-format
 msgid "graphics %s, ascii substituted\n"
-msgstr ""
+msgstr "grafica %s, sostituzione ascii\n"
 
 #: InOut/window.c:86
 msgid "suppressed"
@@ -4218,236 +4223,233 @@ msgstr "soppresso"
 
 #: InOut/window.c:87
 msgid "not supported on this terminal"
-msgstr ""
+msgstr "non supportato su questo terminale"
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
-msgstr ""
+msgstr "Non possono esserci pi?? argomenti In che Out in init (%d,%d)"
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
-msgstr ""
+msgstr "Divisione per zero"
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
-msgstr ""
+msgstr "cpstun: tavola non valida"
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
-msgstr ""
+msgstr "canale d'input %d troppo grande; ignorato"
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
-msgstr ""
+msgstr "canale d'input %d non valido; ignorato"
 
-#: OOps/aops.c:1662
-#, fuzzy
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
-msgstr "parametri di input e di output incompatibili"
+msgstr "Il conto degli argomenti di input e output sono differenti in inch"
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
-msgstr ""
+msgstr "Canale maggiore di nchnls"
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
-msgstr ""
+msgstr "Canali in eccesso ignorati\n"
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
-msgstr ""
+msgstr "Chiamata una funzione sconosciuta"
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
-msgstr ""
+msgstr "numero di argomenti != nchnls"
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
-msgstr ""
+msgstr "outrg: il numero di canale non pu?? essere < 1 (1 ?? il primo canale)"
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
-msgstr ""
+msgstr "il numero di canali hardware d'output non ?? attualmente disponibile"
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
-msgstr ""
+msgstr "il numero di canali hardware d'input non ?? attualmente disponibile"
 
 #: OOps/bus.c:83 OOps/bus.c:105 OOps/bus.c:130 OOps/bus.c:158
 msgid "chani: invalid index"
-msgstr ""
+msgstr "chani: indice non valido"
 
 #: OOps/bus.c:91 OOps/bus.c:137
 #, c-format
 msgid "chani error %d:channel not found or not right type"
-msgstr ""
+msgstr "errore chani %d:canale non trovato o del tipo sbagliato"
 
 #: OOps/bus.c:113 OOps/bus.c:165
 #, c-format
 msgid "chano error %d:channel not found or not right type"
-msgstr ""
+msgstr "errore chano %d:canale non trovato o del tipo sbagliato"
 
 #: OOps/bus.c:219
-#, fuzzy
 msgid "pvsin: invalid index"
-msgstr "soundin: skip time non valido"
+msgstr "pvsin: indice non valido"
 
 #: OOps/bus.c:227
 #, c-format
 msgid "pvsin error %d:channel not found or not right type"
-msgstr ""
+msgstr "errore pvsin %d:canale non trovato o del tipo sbagliato"
 
 #: OOps/bus.c:282
-#, fuzzy
 msgid "pvsout: invalid index"
-msgstr "soundin: skip time non valido"
+msgstr "pvsout: indice non valido"
 
 #: OOps/bus.c:290
 #, c-format
 msgid "pvsout error %d:channel not found or not right type"
-msgstr ""
+msgstr "errore pvsout %d:canale non trovato o del tipo sbagliato"
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
-msgstr ""
+msgstr "parametro mode non valido"
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
-msgstr ""
+msgstr "parametro channel non valido"
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
-msgstr ""
+msgstr "il canale ?? gia esistente"
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
-#, fuzzy
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "lettura fallita in sensekey\n"
 
-#: OOps/bus.c:1351
-#, fuzzy
+#: OOps/bus.c:1398
 msgid "sensekey error:"
-msgstr "errore ricerca di soundin"
+msgstr "errore sensekey:"
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
-msgstr ""
+msgstr "InputChannelCallback non impostato."
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
-msgstr ""
+msgstr "OutputChannelCallback non impostato."
 
 #: OOps/cmath.c:36 OOps/cmath.c:63
 msgid "NaN in pow\n"
 msgstr "NaN in pow\n"
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
-msgstr ""
+msgstr "Seme dal tempo attuale %u\n"
 
 #: OOps/cmath.c:89
 #, c-format
 msgid "Seeding with %u\n"
-msgstr ""
+msgstr "Seme da %u\n"
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
-msgstr ""
+msgstr "compileorc: non riesco ad aprire %s\n"
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
-msgstr ""
+msgstr "compileorc: non riesco a leggere %s\n"
 
 #: OOps/diskin2.c:309
 msgid "diskin2: invalid number of channels"
-msgstr ""
+msgstr "diskin2: numero di canali non valido"
 
 #: OOps/diskin2.c:325 OOps/diskin2.c:1569
 msgid "diskin2: unknown sample format"
-msgstr ""
+msgstr "diskin2: formato campione sconosciuto"
 
 #: OOps/diskin2.c:340
-#, fuzzy, c-format
+#, c-format
 msgid "diskin2: %s: failed to open file (%s)"
-msgstr "fallita apertura del dispositivo"
+msgstr "diskin2: %s: fallita apertura del file (%s)"
 
 #: OOps/diskin2.c:351
 msgid ""
 "diskin2: number of output args inconsistent with number of file channels"
 msgstr ""
+"diskin2: numero di argomenti d'output inconsistente con il numero di canali "
+"del file"
 
 #: OOps/diskin2.c:383 OOps/diskin2.c:1645
 #, c-format
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
-msgstr ""
+msgstr "diskin2: attenzione: sample rate del file (%d) != orchestra sr (%d)\n"
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, fuzzy, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
-"File '%s' (sr = %d Hz, %d canale\\\\i, %lu sample frames) caricati in "
-"memoria\n"
+"diskin2: aperto (asincronicamente) '%s':\n"
+"         %d Hz, %d canale/i, %ld sample frames\n"
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, fuzzy, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
-"File '%s' (sr = %d Hz, %d canale\\\\i, %lu sample frames) caricati in "
-"memoria\n"
+"diskin2: aperto '%s':\n"
+"         %d Hz, %d canale/i, %ld sample frames\n"
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr "diskin2: non inizializzato"
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
-msgstr ""
+msgstr "diskin2: descrittore del file chiuso o non valido\n"
 
 #: OOps/diskin2.c:1030
 #, c-format
 msgid "%s is deprecated; use fout instead\n"
-msgstr ""
+msgstr "%s ?? obsoleto; usate fout invece\n"
 
 #: OOps/diskin2.c:1068
 #, c-format
 msgid "%s: invalid sample format: %d"
-msgstr ""
+msgstr "%s: formato campione non valido: %d"
 
 #: OOps/diskin2.c:1073
 #, c-format
 msgid "%s cannot open %s"
-msgstr ""
+msgstr "%s non riesco ad aprire %s"
 
 #: OOps/diskin2.c:1085
 #, c-format
 msgid "%s: opening RAW outfile %s\n"
-msgstr ""
+msgstr "%s: apertura RAW outfile %s\n"
 
 #: OOps/diskin2.c:1110
 msgid "soundout: not initialised"
@@ -4460,48 +4462,50 @@ msgstr "soundouts: non inizializzato"
 #: OOps/diskin2.c:1584
 #, c-format
 msgid "diskin2: %s: failed to open file"
-msgstr ""
+msgstr "diskin2: %s: fallita apertura del file"
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
-msgstr ""
+msgstr "soundin: numero di canali non valido"
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
-msgstr ""
+msgstr "soundin: formato campione sconosciuto"
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
-msgstr ""
+msgstr "soundin: %s: fallita apertura del file"
 
-#: OOps/diskin2.c:2155
-#, fuzzy, c-format
+#: OOps/diskin2.c:2157
+#, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
-"File '%s' (sr = %d Hz, %d canale\\\\i, %lu sample frames) caricati in "
-"memoria\n"
+"soundin: aperto '%s':\n"
+"         %d Hz, %d canale/i, %ld sample frames\n"
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
+"soundin: numero di argomenti d'output inconsistente con il numero di canali "
+"del file"
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
-msgstr ""
+msgstr "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr "soundin: non inizializzato"
 
 #: OOps/disprep.c:60
 #, c-format
 msgid "instr %d, pvs-signal %s:"
-msgstr ""
+msgstr "instr %d, pvs-signal %s:"
 
 #: OOps/disprep.c:63 OOps/disprep.c:120
 msgid "display"
@@ -4509,12 +4513,12 @@ msgstr "display"
 
 #: OOps/disprep.c:93
 msgid "illegal iprd in display"
-msgstr ""
+msgstr "illegale iprd in display"
 
 #: OOps/disprep.c:117
 #, c-format
 msgid "instr %d, signal %s:"
-msgstr ""
+msgstr "instr %d, signal %s:"
 
 #: OOps/disprep.c:154
 msgid "display: not initialised"
@@ -4522,31 +4526,30 @@ msgstr "display: non inizializzato"
 
 #: OOps/disprep.c:249
 msgid "too many points requested"
-msgstr ""
+msgstr "richiesti troppi punti"
 
 #: OOps/disprep.c:252
 msgid "too few points requested"
-msgstr ""
+msgstr "richiesti troppi pochi punti"
 
 #: OOps/disprep.c:255
 msgid "window size must be power of two"
-msgstr ""
+msgstr "la dimensione della window deve essere una potenza di due"
 
 #: OOps/disprep.c:261
 msgid "illegal iprd in ffy display"
-msgstr ""
+msgstr "illegale iprd in ffy display"
 
 #: OOps/disprep.c:291
 #, c-format
 msgid "instr %d, signal %s, fft (%s):"
-msgstr ""
+msgstr "instr %d, signal %s, fft (%s):"
 
 #: OOps/disprep.c:293
 msgid "db"
 msgstr "db"
 
 #: OOps/disprep.c:293
-#, fuzzy
 msgid "mag"
 msgstr "mag"
 
@@ -4558,47 +4561,46 @@ msgstr "fft"
 msgid "dispfft: not initialised"
 msgstr "dispfft: non inizializzato"
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
-msgstr ""
+msgstr "illegale iperiod"
 
 #: OOps/disprep.c:475
 msgid "illegal idisprd"
-msgstr ""
+msgstr "illegale idisprd"
 
 #: OOps/disprep.c:477
 msgid "illegal itweek"
-msgstr ""
+msgstr "illegale itweek"
 
 #: OOps/disprep.c:480
 msgid "illegal imindur"
-msgstr ""
+msgstr "illegale imindur"
 
 #: OOps/disprep.c:482
 msgid "illegal imemdur"
-msgstr ""
+msgstr "illegale imemdur"
 
 #: OOps/disprep.c:485
 msgid "illegal ihtim"
-msgstr ""
+msgstr "illegale ihtim"
 
 #: OOps/disprep.c:487
 msgid "illegal startempo"
-msgstr ""
+msgstr "illegale startempo"
 
 #: OOps/disprep.c:490
 msgid "ifn table begins with zero"
-msgstr ""
+msgstr "tavola ifn inizia con zero"
 
 #: OOps/disprep.c:519
-#, fuzzy
 msgid "tempest"
 msgstr "tempest"
 
 #: OOps/disprep.c:569
 #, c-format
 msgid "kin lopass coef1 %6.4f, fwd mask coef1 %6.4f\n"
-msgstr ""
+msgstr "kin lopass coef1 %6.4f, fwd mask coef1 %6.4f\n"
 
 #: OOps/disprep.c:741
 msgid "tempest: not initialised"
@@ -4609,44 +4611,43 @@ msgstr "tempest: non inizializzato"
 #: OOps/dumpf.c:380 OOps/dumpf.c:408 OOps/dumpf.c:434 OOps/dumpf.c:460
 #: OOps/dumpf.c:488 OOps/dumpf.c:514 OOps/dumpf.c:542 OOps/dumpf.c:568
 msgid "unknown format request"
-msgstr ""
+msgstr "formato richiesto sconosciuto"
 
 #: OOps/dumpf.c:48 OOps/dumpf.c:75 OOps/dumpf.c:102 OOps/dumpf.c:128
 #: OOps/dumpf.c:156 OOps/dumpf.c:183 OOps/dumpf.c:210 OOps/dumpf.c:235
 #: OOps/dumpf.c:384 OOps/dumpf.c:412 OOps/dumpf.c:438 OOps/dumpf.c:464
 #: OOps/dumpf.c:492 OOps/dumpf.c:518 OOps/dumpf.c:546 OOps/dumpf.c:572
 msgid "alaw and ulaw not implemented here"
-msgstr ""
+msgstr "alaw e ulaw qui non sono implementati"
 
 #: OOps/dumpf.c:309 OOps/dumpf.c:669
 msgid "unknown kdump format"
-msgstr ""
+msgstr "formato kdump sconosciuto"
 
 #: OOps/dumpf.c:313
 msgid "write failure in dumpk"
-msgstr ""
+msgstr "scrittura fallita in dumpk"
 
 #: OOps/dumpf.c:802
-#, fuzzy
 msgid "Read failure in readks"
-msgstr "Allocazione di memoria fallita"
+msgstr "Lettura fallita in readks"
 
 #: OOps/fftlib.c:3196
 #, c-format
 msgid " *** fftlib.c: internal error: invalid FFT size: %d"
-msgstr ""
+msgstr " *** fftlib.c: errore interno: dimensione FFT non valida: %d"
 
 #: OOps/goto_ops.c:99
 msgid "negative time period"
-msgstr ""
+msgstr "time period negativo"
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
-msgstr ""
+msgstr "turnoff2: numero di strumento non valido"
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
-msgstr ""
+msgstr "turnoff2: parametro mode non valido"
 
 #: OOps/midiops.c:103
 msgid "uneven ctrl pairs"
@@ -4654,11 +4655,11 @@ msgstr ""
 
 #: OOps/midiops.c:113
 msgid "illegal ctrl no"
-msgstr ""
+msgstr "ctrl no illegale"
 
 #: OOps/midiops.c:139
 msgid "cpstabm: invalid modulator table"
-msgstr ""
+msgstr "cpstabm: tavola del modulatore non valida"
 
 #: OOps/midiops.c:329 OOps/midiops.c:339 OOps/midiops.c:360 OOps/midiops.c:370
 #: OOps/midiops.c:456 OOps/midiops.c:470 Opcodes/gab/sliderTable.c:568
@@ -4667,25 +4668,25 @@ msgstr ""
 #: Opcodes/midiops2.c:316 Opcodes/midiops2.c:335 Opcodes/midiops2.c:375
 #: Opcodes/midiops2.c:406 Opcodes/midiops2.c:456 Opcodes/midiops2.c:490
 msgid "illegal controller number"
-msgstr ""
+msgstr "numero controller illegale"
 
 #: OOps/midiops.c:428
 msgid "pgmassign: invalid program number"
-msgstr ""
+msgstr "pgmassign: numero programma non valido"
 
 #: OOps/midiops.c:746
 #, c-format
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
-msgstr ""
+msgstr "selezionato modo arp non valido: %d. Modi validi sono 0, 1, 2, e 3\n"
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
-msgstr ""
+msgstr "argomento mrtmsg illegale"
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
-msgstr ""
+msgstr "out contr14 msb:%x lsb:%x\n"
 
 #: OOps/mxfft.c:173
 #, c-format
@@ -4693,165 +4694,167 @@ msgid ""
 "\n"
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
+"\n"
+"errore - fft parametro n ha pi?? di 15 fattori : %d"
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
-msgstr ""
+msgstr "csoundRealFFTnp2(): dimensione FFT non valida, %d"
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
-msgstr ""
+msgstr "csoundInverseRealFFTnp2(): dimensione FFT non valida"
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
-msgstr ""
+msgstr "csoundRealFFTnp2(): dimensione FFT non valida"
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr "tablexkt: non inizializzato"
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
-msgstr ""
+msgstr "Versione sliding non ancora disponibile"
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
-msgstr ""
+msgstr "pvadsyn: pessimo valore per inoscs\n"
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
-msgstr ""
+msgstr "pvadsyn: il formato deve essere amp-freq (0).\n"
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
-msgstr ""
+msgstr "pvsadsyn: parametro ibin fuori intervallo.\n"
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
-msgstr ""
+msgstr "pvsadsyn: ibin + inoscs troppo grande.\n"
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
-msgstr ""
+msgstr "pvsadsyn: ibin + (inoscs * ibinoffset) troppo grande."
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr "pvsynth: non inizializzato.\n"
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
-msgstr ""
+msgstr "pvscross: i segnali di source e dest devono avere lo stesso formato\n"
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr "pvscross: non inizializzato\n"
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
-msgstr ""
+msgstr "pvscross: discrepanza nel formato fsrc\n"
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
-msgstr ""
+msgstr "pvscross: discrepanza nel formato fdest\n"
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
-msgstr ""
+msgstr "pvsfread: file vuoto!\n"
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
-msgstr ""
+msgstr "pvsfread: il file ha solo un frame (= impulse response).\n"
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
-msgstr ""
+msgstr "pvsfread: analysis frame overlap deve essere >= ksmps\n"
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
-msgstr ""
+msgstr "pvsfread: il valore di ichan eccede il conto dei canali del file.\n"
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
-msgstr ""
+msgstr "pvsfread: ichan non pu?? essere negativo.\n"
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr "pvsfread: non inizializzato.\n"
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
-msgstr ""
+msgstr "pvsmaska: il formato del segnale deve essere amp-phase o amp-freq."
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
-msgstr ""
+msgstr "pvsmaska: ftable troppo piccola.\n"
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr "pvsmaska: non inizializzato\n"
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
-msgstr ""
+msgstr "pvsmaska: valore negativo per kdepth; troncato a zero.\n"
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
-msgstr ""
+msgstr "pvsmaska: kdepth > 1: troncato.\n"
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
-msgstr ""
+msgstr "pvsftw: il formato del segnale deve essere amp-phase o amp-freq.\n"
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
-msgstr ""
+msgstr "pvsftw: pessimo valore per ifna.\n"
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
-msgstr ""
+msgstr "pvsftw: pessimo valore per ifnf.\n"
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
-msgstr ""
+msgstr "pvsftw: amps ftable troppo piccola.\n"
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
-msgstr ""
+msgstr "pvsftw: freqs ftable troppo piccola.\n"
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr "pvsftw: non inizializzato\n"
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
-msgstr ""
+msgstr "pvsftw: nessuna amps ftable!\n"
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
-msgstr ""
+msgstr "pvsftw: nessuna freqs ftable!\n"
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
-msgstr ""
+msgstr "pvsftr: il formato del segnale deve essere amp-phase o amp-freq.\n"
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
-msgstr ""
+msgstr "pvsftr: pessimo valore per ifna.\n"
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
-msgstr ""
+msgstr "pvsftr: pessimo valore per ifnf.\n"
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
-msgstr ""
+msgstr "pvsftr: amps ftable troppo piccola.\n"
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
-msgstr ""
+msgstr "pvsftr: freqs ftable troppo piccola.\n"
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr "pvsftr: non inizializzato\n"
 
@@ -4860,138 +4863,184 @@ msgid ""
 "\n"
 "pvsys: (no error)"
 msgstr ""
+"\n"
+"pvsys: (nessun errore)"
 
 #: OOps/pvfileio.c:93
 msgid ""
 "\n"
 "pvsys: unknown error"
 msgstr ""
+"\n"
+"pvsys: errore sconosciuto"
 
 #: OOps/pvfileio.c:94
 msgid ""
 "\n"
 "pvsys: already initialised"
 msgstr ""
+"\n"
+"pvsys: gi?? inizializzato"
 
 #: OOps/pvfileio.c:95
 msgid ""
 "\n"
 "pvsys: bad arguments"
 msgstr ""
+"\n"
+"pvsys: pessimi argomenti"
 
 #: OOps/pvfileio.c:96
 msgid ""
 "\n"
 "pvsys: bad format parameter"
 msgstr ""
+"\n"
+"pvsys: pessimo parametro del formato"
 
 #: OOps/pvfileio.c:97
 msgid ""
 "\n"
 "pvsys: bad window type"
 msgstr ""
+"\n"
+"pvsys: pessimo tipo di finestra (window)"
 
 #: OOps/pvfileio.c:98
 msgid ""
 "\n"
 "pvsys: too many files open"
 msgstr ""
+"\n"
+"pvsys: troppi files aperti"
 
 #: OOps/pvfileio.c:99
 msgid ""
 "\n"
 "pvsys: unable to create file"
 msgstr ""
+"\n"
+"pvsys: non riesco a creare il file"
 
 #: OOps/pvfileio.c:100
 msgid ""
 "\n"
 "pvsys: Internal error: NULL data arrays"
 msgstr ""
+"\n"
+"pvsys: errore interno: array dati NULLO"
 
 #: OOps/pvfileio.c:101
 msgid ""
 "\n"
 "pvsys: unable to open file"
 msgstr ""
+"\n"
+"pvsys: non riesco ad aprire il file"
 
 #: OOps/pvfileio.c:102
 msgid ""
 "\n"
 "pvsys: error reading Source format data"
 msgstr ""
+"\n"
+"pvsys: errore lettura formato dati Source"
 
 #: OOps/pvfileio.c:103
 msgid ""
 "\n"
 "pvsys: not a WAVE_EX file"
 msgstr ""
+"\n"
+"pvsys: non ?? un file WAVE_EX"
 
 #: OOps/pvfileio.c:104
 msgid ""
 "\n"
 "pvsys: bad size for fmt chunk"
 msgstr ""
+"\n"
+"pvsys: pessima dimensione di fmt chunk"
 
 #: OOps/pvfileio.c:105
 msgid ""
 "\n"
 "pvsys: error reading Extended format data"
 msgstr ""
+"\n"
+"pvsys: errore lettura formato dati Extended"
 
 #: OOps/pvfileio.c:106
 msgid ""
 "\n"
 "pvsys: not a PVOC-EX file"
 msgstr ""
+"\n"
+"pvsys: non ?? un file PVOC-EX"
 
 #: OOps/pvfileio.c:107
 msgid ""
 "\n"
 "pvsys: error reading Extended pvoc format data"
 msgstr ""
+"\n"
+"pvsys: errore lettura formato dati Extended pvoc"
 
 #: OOps/pvfileio.c:108
 msgid ""
 "\n"
 "pvsys: unknown pvocex Version"
 msgstr ""
+"\n"
+"pvsys: versione pvocex sconosciuta"
 
 #: OOps/pvfileio.c:109
 msgid ""
 "\n"
 "pvsys: error reading header"
 msgstr ""
+"\n"
+"pvsys: errore lettura header"
 
 #: OOps/pvfileio.c:110
 msgid ""
 "\n"
 "pvsys: not a RIFF file"
 msgstr ""
+"\n"
+"pvsys: non ?? un file RIFF"
 
 #: OOps/pvfileio.c:111
 msgid ""
 "\n"
 "pvsys: file too small"
 msgstr ""
+"\n"
+"pvsys: file troppo piccolo"
 
 #: OOps/pvfileio.c:112
 msgid ""
 "\n"
 "pvsys: not a WAVE file"
 msgstr ""
+"\n"
+"pvsys: non ?? un file WAVE"
 
 #: OOps/pvfileio.c:113
 msgid ""
 "\n"
 "pvsys: error reading format chunk"
 msgstr ""
+"\n"
+"pvsys: errore lettura formato chunk"
 
 #: OOps/pvfileio.c:114
 msgid ""
 "\n"
 "pvsys: PVXW chunk found before fmt chunk."
 msgstr ""
+"\n"
+"pvsys: trovato PVXW chunk prima del fmt chunk."
 
 #: OOps/pvfileio.c:115
 msgid ""
@@ -5010,12 +5059,16 @@ msgid ""
 "\n"
 "pvsys: bad RIFF file"
 msgstr ""
+"\n"
+"pvsys: pessimo RIFF file"
 
 #: OOps/pvfileio.c:118
 msgid ""
 "\n"
 "pvsys: bad format, data chunk before fmt chunk"
 msgstr ""
+"\n"
+"pvsys: pessimo formato, data chunk prima di fmt chunk"
 
 #: OOps/pvfileio.c:119
 msgid ""
@@ -5034,72 +5087,96 @@ msgid ""
 "\n"
 "pvsys: bad format in RIFF file"
 msgstr ""
+"\n"
+"pvsys: pessimo formato nel file RIFF"
 
 #: OOps/pvfileio.c:122
 msgid ""
 "\n"
 "pvsys: error writing header"
 msgstr ""
+"\n"
+"pvsys: errore scrittura header"
 
 #: OOps/pvfileio.c:123
 msgid ""
 "\n"
 "pvsys: error writing fmt chunk"
 msgstr ""
+"\n"
+"pvsys: errore scrittura fmt chunk"
 
 #: OOps/pvfileio.c:124
 msgid ""
 "\n"
 "pvsys: error writing window data."
 msgstr ""
+"\n"
+"pvsys: errore scrittura dati window."
 
 #: OOps/pvfileio.c:125
 msgid ""
 "\n"
 "pvsys: error updating data chunk"
 msgstr ""
+"\n"
+"pvsys: errore aggiornamento chunk data"
 
 #: OOps/pvfileio.c:126
 msgid ""
 "\n"
 "pvsys: error updating riff chunk"
 msgstr ""
+"\n"
+"pvsys: errore aggiornamento riff chunk"
 
 #: OOps/pvfileio.c:127
 msgid ""
 "\n"
 "pvsys: error seeking to end of file"
 msgstr ""
+"\n"
+"pvsys: errore nella ricerca della fine del file"
 
 #: OOps/pvfileio.c:128
 msgid ""
 "\n"
 "pvsys: file does not exist"
 msgstr ""
+"\n"
+"pvsys: il file non esiste"
 
 #: OOps/pvfileio.c:129
 msgid ""
 "\n"
 "pvsys: file not open"
 msgstr ""
+"\n"
+"pvsys: file non aperto"
 
 #: OOps/pvfileio.c:130
 msgid ""
 "\n"
 "pvsys: bad file descriptor"
 msgstr ""
+"\n"
+"pvsys: pessimo descrittore del file"
 
 #: OOps/pvfileio.c:131
 msgid ""
 "\n"
 "pvsys: error writing data"
 msgstr ""
+"\n"
+"pvsys: errore scrittura dati"
 
 #: OOps/pvfileio.c:132
 msgid ""
 "\n"
 "pvsys: error reading data"
 msgstr ""
+"\n"
+"pvsys: errore lettura dati"
 
 #: OOps/pvfileio.c:133
 msgid ""
@@ -5115,139 +5192,144 @@ msgstr ""
 
 #: OOps/pvsanal.c:73
 msgid "invalid window type"
-msgstr ""
+msgstr "tipo di window non valida"
 
 #: OOps/pvsanal.c:78
 msgid "ftable for window not found"
-msgstr ""
+msgstr "non trovo la ftable per la finestra ( window)"
+
+#: OOps/pvsanal.c:105
+#, fuzzy
+msgid "Invalid window size"
+msgstr "tipo di window non valida"
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
-msgstr ""
+msgstr "pvsanal: fftsize di 32 ?? troppo piccola!\n"
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
-msgstr ""
+msgstr "pvsanal: dimensione della window troppo piccola per fftsize"
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
-msgstr ""
+msgstr "pvsanal: overlap troppo grande per la dimensione di fft\n"
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
-msgstr ""
+msgstr "pvsanal: overlap deve essere >= ksmps\n"
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr "pvsanal: Non Inizializzato.\n"
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
-msgstr ""
+msgstr "Tipo sconosciuto di window; rimpiazzata da rettangolare\n"
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr "pvsynth: Non Inizializzato.\n"
 
 #: OOps/remote.c:158
 msgid "insufficient memory to initialise remote globals."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare remote globals."
 
 #: OOps/remote.c:167
 msgid "insufficient memory to initialise outgoing socket table."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare la tavola dei socket uscenti."
 
 #: OOps/remote.c:174
 msgid "insufficient memory to initialise incoming socket table."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare la tavola dei socket entranti."
 
 #: OOps/remote.c:182
 msgid "insufficient memory to initialise insrfd_list."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare insrfd_list."
 
 #: OOps/remote.c:190
 msgid "insufficient memory to initialise chnrfd_list."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare chnrfd_list."
 
 #: OOps/remote.c:197
 msgid "insufficient memory to initialise insrfd table."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare la tavola insrfd."
 
 #: OOps/remote.c:204
 msgid "insufficient memory to initialise chnrfd table."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare la tavola chnrfd."
 
 #: OOps/remote.c:211
 msgid "insufficient memory to initialise local ip address."
-msgstr ""
+msgstr "memoria insufficiente per inizializzare l'indirizzo locale ip."
 
 #: OOps/remote.c:219
 msgid "unable to get local ip address."
-msgstr ""
+msgstr "non riesco ad ottenere l'indirizzo locale ip."
 
 #: OOps/remote.c:279
 msgid "could not open remote port"
-msgstr ""
+msgstr "non posso aprire la porta remote"
 
 #: OOps/remote.c:294
 msgid "---> Could not connect \n"
-msgstr ""
+msgstr "---> Non posso conettermi \n"
 
 #: OOps/remote.c:299
 msgid "---> Failed all attempts to connect. \n"
-msgstr ""
+msgstr "---> Falliti tutti i tentativi di connessione. \n"
 
 #: OOps/remote.c:302
 msgid "--->  Connected. \n"
-msgstr ""
+msgstr "--->  Connesso. \n"
 
 #: OOps/remote.c:316 Opcodes/socksend.c:390
 msgid "write to socket failed"
-msgstr ""
+msgstr "scrittura su socket fallita"
 
 #: OOps/remote.c:337
 msgid "creating socket\n"
-msgstr ""
+msgstr "creazione socket\n"
 
 #: OOps/remote.c:339
 msgid "created socket \n"
-msgstr ""
+msgstr "socket creato\n"
 
 #: OOps/remote.c:350
 msgid "setting socket option to reuse the address\n"
-msgstr ""
+msgstr "impostazione dell'opzione del socket per riutilizzo dell'indirizzo\n"
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
-msgstr ""
+msgstr "collegamento fallito"
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
-msgstr ""
+msgstr "ascolto fallito"
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
-msgstr ""
+msgstr "accetazione fallita"
 
 #: OOps/remote.c:382
 #, c-format
 msgid "accepted, conn=%d \n"
-msgstr ""
+msgstr "accettato, conn=%d \n"
 
 #: OOps/remote.c:417 OOps/remote.c:438 OOps/remote.c:487 OOps/remote.c:520
 #: OOps/remote.c:566
 msgid "failed to initialise remote globals."
-msgstr ""
+msgstr "fallita inizializzazione delle globali remote."
 
 #: OOps/remote.c:442 OOps/remote.c:491
 msgid "missing instr nos"
-msgstr ""
+msgstr "mancano i numeri degli strumenti"
 
 #: OOps/remote.c:457 OOps/remote.c:501
 msgid "illegal instr no"
-msgstr ""
+msgstr "numero di strumento non valido"
 
 #: OOps/remote.c:461
 msgid "insno already remote"
@@ -5255,7 +5337,7 @@ msgstr ""
 
 #: OOps/remote.c:473 OOps/remote.c:551
 msgid "Failed to open port to listen"
-msgstr ""
+msgstr "Fallita apertura porta in ascolto"
 
 #: OOps/remote.c:493
 #, c-format
@@ -5268,11 +5350,11 @@ msgstr ""
 
 #: OOps/remote.c:524 OOps/remote.c:570
 msgid "missing channel nos"
-msgstr ""
+msgstr "mancano i numeri dei canali"
 
 #: OOps/remote.c:537 OOps/remote.c:580
 msgid "illegal channel no"
-msgstr ""
+msgstr "numero di canale non valido"
 
 #: OOps/remote.c:541
 msgid "channel already remote"
@@ -5284,236 +5366,237 @@ msgstr ""
 
 #: OOps/remote.c:611 OOps/remote.c:636 OOps/remote.c:661
 msgid "CLsend failed"
-msgstr ""
+msgstr "CLsend fallito"
 
 #: OOps/remote.c:728 OOps/remote.c:736 OOps/remote.c:744 OOps/remote.c:752
 #: OOps/remote.c:760
 msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
+"*** Questa versione di Csound non ?? stata compilata con il supporto di "
+"remote event ***\n"
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
-msgstr ""
+msgstr "LFO: tipo di oscillatore sconosciuto %d"
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
-msgstr ""
+msgstr "schedkwhen ?? stato ignorato. Lo strumento %d non ?? definito\n"
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
-msgstr ""
+msgstr "trigseq: numero di tavola non corretto"
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
-msgstr ""
+msgstr "nessun infile specificato alla linea di comando"
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
-msgstr ""
+msgstr "diskinfo non posso aprire %s"
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
-msgstr ""
+msgstr "Canale di input per peak eccede il numero di canali del file"
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
-msgstr ""
+msgstr "filepeak: errore nell'ottenere il valore di peak"
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
-msgstr ""
+msgstr "indice strset illegale"
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
-msgstr ""
+msgstr "valore precedente: '%s', rimpiazzato con '%s'"
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
-msgstr ""
+msgstr "--strset: formato non valido"
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
-msgstr ""
+msgstr "stringa NULL \n"
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
-msgstr ""
+msgstr "argomento a-rate non consentito"
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
-msgstr ""
+msgstr "troppi argomenti"
 
-#: OOps/str_ops.c:406
-#, fuzzy
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
-msgstr "argomenti insufficienti"
+msgstr "argomenti insufficienti per il formato"
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
-#, fuzzy
+#: OOps/str_ops.c:494
 msgid "invalid format string"
-msgstr "nome dello strumento non valido"
+msgstr "formato della stringa non valido"
 
-#: OOps/str_ops.c:523
-#, fuzzy
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
-msgstr "troppi argomenti in input per l'opcode %s"
+msgstr "troppi argomenti per il formato"
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
-msgstr ""
+msgstr "stringa vuota"
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
-#, fuzzy
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
-msgstr "formato campione non valido: %d"
+msgstr "formato non valido"
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
-msgstr ""
+msgstr "codice opzione non valido: %g"
 
 #: OOps/ugens1.c:89
 msgid "arg1 is zero"
-msgstr ""
+msgstr "arg1 ?? zero"
 
 #: OOps/ugens1.c:91
 msgid "arg2 is zero"
-msgstr ""
+msgstr "arg2 ?? zero"
 
 #: OOps/ugens1.c:92
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr "Numero di argomenti in input incompleto"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
-msgstr ""
+msgstr "Breakpoint %d non valido"
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr "linseg non inizializzato (krate)\n"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr "linseg: non inizializzato (arate)\n"
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
-msgstr ""
+msgstr "lunghezza della nota ADSR troppo breve"
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
-msgstr ""
+msgstr "ival%d ?? zero"
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
-msgstr ""
+msgstr "ival%d conflitto di segno"
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
-msgstr ""
+msgstr "Tempo del breakpoint %f non valido"
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
-msgstr ""
+msgstr "lunghezza della nota XADSR troppo breve"
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr "expseg (krate): non inizializzato"
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr "expseg (arate): non inizializzato"
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
-msgstr ""
+msgstr "p3 troppo breve in linen"
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
-msgstr ""
+msgstr "iatdec non positivo"
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
-msgstr ""
+msgstr "ixmod fuori intervallo."
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
-msgstr ""
+msgstr "p3 troppo breve in envlpx"
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
-msgstr ""
+msgstr "funzione rise finisce con zero"
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
-msgstr ""
+msgstr "funzione rise di envlpx finisce con zero"
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr "envlpx(krate): non inizializzato"
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
-#, fuzzy
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
-msgstr "linseg non inizializzato (krate)\n"
+msgstr "cosseg non inizializzato (krate)\n"
 
-#: OOps/ugens1.c:2012
-#, fuzzy
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
-msgstr "linseg: non inizializzato (arate)\n"
+msgstr "cosseg: non inizializzato (arate)\n"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
-#, fuzzy
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
-msgstr "linseg: non inizializzato (arate)\n"
+msgstr "cossegr: non inizializzato (arate)\n"
 
 #: OOps/ugens2.c:48 OOps/ugens2.c:61 Opcodes/shape.c:425
 msgid "init phase truncation\n"
-msgstr ""
+msgstr "fase iniziale troncata\n"
 
 #: OOps/ugens2.c:237 OOps/ugens2.c:959
 #, c-format
 msgid "Offset %f < 0 or > tablelength"
-msgstr ""
+msgstr "Offset %f < 0 oppure > tablelength"
 
 #: OOps/ugens2.c:288 OOps/ugens2.c:305
 #, c-format
 msgid "%s: table index type inconsistent with output"
-msgstr ""
+msgstr "%s: tipo di indice della tavola inconsistente con l'output"
 
 #: OOps/ugens2.c:478
 msgid "table(krate): not initialised"
@@ -5542,7 +5625,7 @@ msgstr "table3: non inizializzato"
 #: OOps/ugens2.c:955
 #, c-format
 msgid "k rate function table no. %f < 1"
-msgstr ""
+msgstr "tavola funzione a k rate no. %f < 1"
 
 #: OOps/ugens2.c:1048
 msgid "oscil1(krate): not initialised"
@@ -5580,11 +5663,6 @@ msgstr "oscil3(krate): non inizializzato"
 msgid "oscil3: not initialised"
 msgstr "oscil3: non inizializzato"
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr "foscil: non inizializzato"
@@ -5595,48 +5673,48 @@ msgstr "foscili: non inizializzato"
 
 #: OOps/ugens3.c:221
 msgid "no legal base frequency"
-msgstr ""
+msgstr "no legal base frequency"
 
 #: OOps/ugens3.c:226
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
-msgstr ""
+msgstr "mono loscil non pu?? leggere da una ftable stereo"
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
-msgstr ""
+msgstr "stereo loscil non pu?? leggere da una ftable mono"
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
-msgstr ""
+msgstr "ADSYN non posso caricare %s"
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
-msgstr ""
+msgstr "trovato codice illegale %d"
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
-msgstr ""
+msgstr "%d amp tracks, %d freq tracks"
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr "adsyn: non inizializzato"
 
@@ -5650,19 +5728,19 @@ msgstr "gbuzz: non inizializzato"
 
 #: OOps/ugens4.c:265
 msgid "illegal stretch factor(param1) value"
-msgstr ""
+msgstr "valore del fattore di stretch (param1) illegale"
 
 #: OOps/ugens4.c:271 OOps/ugens4.c:278
 msgid "illegal roughness factor(param1) value"
-msgstr ""
+msgstr "valore del fattore di roughness (param1) illegale"
 
 #: OOps/ugens4.c:282
 msgid "illegal stretch factor(param2) value"
-msgstr ""
+msgstr "valore del fattore di stretch(param2) illegale"
 
 #: OOps/ugens4.c:287
 msgid "coefficients too large (param1 + param2)"
-msgstr ""
+msgstr "coefficienti troppo grandi (param1 + param2)"
 
 #: OOps/ugens4.c:294
 msgid "unknown method code"
@@ -5674,146 +5752,141 @@ msgstr "pluck: non inizializzato"
 
 #: OOps/ugens4.c:397
 msgid "pluck: kcps more than sample rate"
-msgstr ""
-
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
+msgstr "pluck: kcps maggiore della frequenza di campionamento (sr)"
 
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
-msgstr ""
+msgstr "valore di iscl di reson illegale , %f"
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
-msgstr ""
+msgstr "LPREAD non posso caricare %s"
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
-msgstr ""
+msgstr "Uso %s tipo di file.\n"
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr "pole"
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
-msgstr ""
+msgstr "coefficienti del filtro"
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
-msgstr ""
+msgstr "lpheader sovrascrittura degli inputs"
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
-msgstr ""
+msgstr "lpfile srate != orch sr"
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
-msgstr ""
+msgstr "i bytes del file %s sono in ordine sbagliato"
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
-msgstr ""
+msgstr "argomenti insufficienti e nessun header del file"
 
-#: OOps/ugens5.c:676
-#, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
-msgstr ""
+#: OOps/ugens5.c:683
+#, fuzzy, c-format
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
+msgstr "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
-msgstr ""
+msgstr "magnitude: %f   Phase: %f\n"
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
-msgstr ""
+msgstr "Real: %f   Imag: %f\n"
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
-msgstr ""
+msgstr "Non posso ancora gestire conteggio dei poli impari \n"
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr "lpread: non inizializzato"
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
-msgstr ""
+msgstr "lpread timpnt < 0"
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
-msgstr ""
+msgstr "lpread ktimpnt troncato all'ultimo frame"
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
-msgstr ""
+msgstr "Fallita interpolazione"
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
-msgstr ""
+msgstr "questo opcode funziona solo con LPC pole analysis type (-a)\n"
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
-msgstr ""
+msgstr "File Pole non supportato da questo opcode!"
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
-msgstr ""
+msgstr "frqratio illegale, %5.2f"
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
-msgstr ""
+msgstr "numero di lpslot dovrebbe essere positivo"
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
-msgstr ""
+msgstr "slot LPC non allocato"
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
-msgstr ""
+msgstr "lpinterpol funzione solo con file poles.."
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
-msgstr ""
+msgstr "I file poles hanno diverso numero di pole"
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr "lpinterpol: non inizializzato"
 
 #: OOps/ugens6.c:253 OOps/ugens6.c:295 Opcodes/biquad.c:1008
 #: Opcodes/biquad.c:1019 Opcodes/biquad.c:1026 Opcodes/biquad.c:1035
 msgid "illegal delay time"
-msgstr ""
+msgstr "tempo delay illegale"
 
 #: OOps/ugens6.c:276
 msgid "delayr: invalid outarg type"
-msgstr ""
+msgstr "delayr: tipo di outarg non valido"
 
 #: OOps/ugens6.c:315
 msgid "delayw: associated delayr not found"
-msgstr ""
+msgstr "delayw: non trovo l'associato delayr"
 
 #: OOps/ugens6.c:334
 msgid "deltap: associated delayr not found"
-msgstr ""
+msgstr "deltap: non trovo l'associato delayr"
 
 #: OOps/ugens6.c:345
 #, c-format
 msgid "deltap: delayr index %.0f is out of range"
-msgstr ""
+msgstr "deltap: indice di delayr %.0f ?? fuori intervallo"
 
 #: OOps/ugens6.c:394 Opcodes/biquad.c:1186
 msgid "delay: not initialised"
@@ -5837,7 +5910,7 @@ msgstr "deltapi: non inizializzato"
 
 #: OOps/ugens6.c:536 OOps/ugens6.c:678
 msgid "deltapi: INF delaytime"
-msgstr ""
+msgstr "deltapi: INF delaytime"
 
 #: OOps/ugens6.c:589
 msgid "deltapn: not initialised"
@@ -5847,19 +5920,18 @@ msgstr "deltapn: non inizializzato"
 msgid "deltap3: not initialised"
 msgstr "deltap3: non inizializzato"
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
-msgstr ""
+msgstr "illegale loop time"
 
 #: OOps/ugens6.c:975
 msgid "comb: not initialised"
 msgstr "comb: non inizializzato"
 
 #: OOps/ugens6.c:1014
-#, fuzzy
 msgid "combinv: not initialised"
-msgstr "comb: non inizializzato"
+msgstr "combinv: non inizializzato"
 
 #: OOps/ugens6.c:1051
 msgid "alpass: not initialised"
@@ -5867,83 +5939,83 @@ msgstr "alpass: non inizializzato"
 
 #: OOps/ugens6.c:1084
 msgid "revlpsiz inconsistent\n"
-msgstr ""
+msgstr "revlpsiz ?? inconsistente\n"
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
-msgstr ""
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
+msgstr "reverb: non inizializzato"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr "pan: non inizializzato"
 
 #: OOps/ugrw1.c:80
 msgid "zakinit should only be called once."
-msgstr ""
+msgstr "zakinit dovrebbe essere chiamato una sola volta."
 
 #: OOps/ugrw1.c:84
 msgid "zakinit: both isizea and isizek should be > 0."
-msgstr ""
+msgstr "zakinit: sia isizea che isizek devono essere > 0."
 
 #: OOps/ugrw1.c:118
 msgid "No zk space: zakinit has not been called yet."
-msgstr ""
+msgstr "Nessuno spazio zk: zakinit non ?? stato ancora chiamato."
 
 #: OOps/ugrw1.c:137
 msgid "zkr index > isizek. Returning 0."
-msgstr ""
+msgstr "zkr index > isizek. Restituisce 0."
 
 #: OOps/ugrw1.c:141
 msgid "zkr index < 0. Returning 0."
-msgstr ""
+msgstr "zkr index < 0. Restituisce 0."
 
 #: OOps/ugrw1.c:169
 msgid "zir index > isizek. Returning 0."
-msgstr ""
+msgstr "zir index > isizek. Restituisce 0."
 
 #: OOps/ugrw1.c:173
 msgid "zir index < 0. Returning 0."
-msgstr ""
+msgstr "zir index < 0. Restituisce 0."
 
 #: OOps/ugrw1.c:196
 msgid "zkw index > isizek. Not writing."
-msgstr ""
+msgstr "zkw index > isizek. Nessuna scrittura."
 
 #: OOps/ugrw1.c:200
 msgid "zkw index < 0. Not writing."
-msgstr ""
+msgstr "zkw index < 0. Nessuna scrittura."
 
 #: OOps/ugrw1.c:225
 msgid "ziw index > isizek. Not writing."
-msgstr ""
+msgstr "ziw index > isizek. Nessuna scrittura."
 
 #: OOps/ugrw1.c:228
 msgid "ziw index < 0. Not writing."
-msgstr ""
+msgstr "ziw index < 0. Nessuna scrittura."
 
 #: OOps/ugrw1.c:252
 msgid "zkwm index > isizek. Not writing."
-msgstr ""
+msgstr "zkwm index > isizek. Nessuna scrittura."
 
 #: OOps/ugrw1.c:256
 msgid "zkwm index < 0. Not writing."
-msgstr ""
+msgstr "zkwm index < 0. Nessuna scrittura."
 
 #: OOps/ugrw1.c:289
 msgid "ziwm index > isizek. Not writing."
-msgstr ""
+msgstr "ziwm index > isizek. Nessuna scrittura."
 
 #: OOps/ugrw1.c:292
 msgid "ziwm index < 0. Not writing."
-msgstr ""
+msgstr "ziwm index < 0. Nessuna scrittura."
 
 #: OOps/ugrw1.c:336
 msgid "zkmod kzkmod > isizek. Not writing."
-msgstr ""
+msgstr "zkmod kzkmod > isizek. Nessuna scrittura."
 
 #: OOps/ugrw1.c:362
 msgid "zkcl first or last > isizek. Not clearing."
-msgstr ""
+msgstr "primo o ultimo zkcl > isizek. Non posso liberare."
 
 #: OOps/ugrw1.c:365
 msgid "zkcl first or last < 0. Not clearing."
@@ -5955,35 +6027,35 @@ msgstr ""
 
 #: OOps/ugrw1.c:391
 msgid "No za space: zakinit has not been called yet."
-msgstr ""
+msgstr "Nessuno spazio za: zakinit non ?? stato ancora chiamato."
 
 #: OOps/ugrw1.c:420
 msgid "zar index > isizea. Returning 0."
-msgstr ""
+msgstr "zar index > isizea. Restituisce 0."
 
 #: OOps/ugrw1.c:425
 msgid "zar index < 0. Returning 0."
-msgstr ""
+msgstr "zar index < 0. Restituisce 0."
 
 #: OOps/ugrw1.c:465
 msgid "zarg index > isizea. Returning 0."
-msgstr ""
+msgstr "zarg index > isizea. Restituisce 0."
 
 #: OOps/ugrw1.c:471
 msgid "zarg index < 0. Returning 0."
-msgstr ""
+msgstr "zarg index < 0. Restituisce 0."
 
 #: OOps/ugrw1.c:509 OOps/ugrw1.c:549
 msgid "zaw index > isizea. Not writing."
-msgstr ""
+msgstr "zaw index > isizea. Nessuna scrittura."
 
 #: OOps/ugrw1.c:513 OOps/ugrw1.c:553
 msgid "zaw index < 0. Not writing."
-msgstr ""
+msgstr "zaw index < 0. Nessuna scrittura."
 
 #: OOps/ugrw1.c:616
 msgid "zamod kzamod > isizea. Not writing."
-msgstr ""
+msgstr "zamod kzamod > isizea. Nessuna scrittura."
 
 #: OOps/ugrw1.c:649
 msgid "zacl first or last > isizea. Not clearing."
@@ -6004,206 +6076,199 @@ msgstr "printk: non inizializzato"
 #: OOps/ugrw1.c:808
 #, c-format
 msgid "time %11.5f: "
-msgstr ""
+msgstr "tempo %11.5f: "
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
-msgstr ""
+msgstr "stringa nulla\n"
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr "printks: non inizializzato"
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+#, fuzzy
+msgid "Insufficient arguments in formatted printing"
+msgstr "argomenti insufficienti per il formato"
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
-msgstr ""
+msgstr "Stringa di formattazione troppo lunga: %s"
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
-msgstr ""
+msgstr "inz index > isizea. Nessuna scrittura."
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
-msgstr ""
+msgstr "inz index < 0. Nessuna scrittura."
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
-msgstr ""
+msgstr "outz index > isizea. Nessun output"
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
-msgstr ""
-
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
+msgstr "outz index < 0. Nessun output."
 
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "table: could not find ftable %d"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "table: non riesco a trovare la ftable %d"
 
-#: OOps/ugtabs.c:72
-#, fuzzy
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
-msgstr "numero di canali incongruente con il numero di argomenti"
+msgstr "table: tipo di indice inconsistente con output"
 
-#: OOps/ugtabs.c:424
-#, fuzzy
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
-msgstr "numero di canali incongruente con il numero di argomenti"
+msgstr "tablekt: tipo di indice inconsistente con output"
 
-#: OOps/ugtabs.c:681
-#, fuzzy, c-format
+#: OOps/ugtabs.c:682
+#, c-format
 msgid "table: could not find ftables %d and/or %d"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "table: non riesco a trovare le ftable %d e/o %d"
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
-msgstr ""
+msgstr "table: non posso leggere una posizione negative %d"
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr "vdelay: non inizializzato"
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr "vdelay3: non inizializzato"
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
-msgstr ""
+msgstr "Conteggio input in multitap sbagliato\n"
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr "multitap: non inizializzato"
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
-msgstr ""
+msgstr "High frequency diffusion non nell'intervallo (0, 1)\n"
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
-msgstr ""
+msgstr "reverbx; Combs ftable deve avere valori di %d time e %d gain"
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
-msgstr ""
+msgstr "reverbx; Alpas ftable deve avere valori di %d time e %d gain"
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
-msgstr ""
+msgstr "High frequency diffusion>1\n"
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
-msgstr ""
+msgstr "High frequency diffusion<0\n"
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
-msgstr ""
+msgstr "Tempo di reverb non positivo\n"
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr "reverbx: non inizializzato"
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
-msgstr ""
+msgstr "Troppi argomenti a OSCsend"
 
-#: Opcodes/OSC.c:210
-#, fuzzy
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
-msgstr "Non è possibile aprire il file di input %s"
+msgstr "Fallita impostazione multicast"
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
-msgstr ""
+msgstr "Time stamp ?? di due valori"
 
-#: Opcodes/OSC.c:294
-#, fuzzy, c-format
+#: Opcodes/OSC.c:296
+#, c-format
 msgid "ftable %.2f does not exist"
-msgstr "ftable non esiste"
+msgstr "ftable %.2f non esiste"
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
-msgstr ""
+msgstr "l'argomento %d non ?? un array"
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
-msgstr ""
+msgstr "Tipo OSC sconosciuto %c\n"
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
-msgstr ""
+msgstr "OSC: fallita allocazione delle globali"
 
-#: Opcodes/OSC.c:561
-#, fuzzy
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
-msgstr "delay: non inizializzato"
+msgstr "OSC deinizializzato\n"
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
-msgstr ""
+msgstr "non posso avviare l'ascolto OSC sulla porta %s\n"
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
-msgstr ""
+msgstr "OSC ascoltatore #%d avviato sulla porta %s\n"
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
-msgstr ""
+msgstr "OSC ascoltatore multicast #%d avviato sulla porta %s\n"
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
-msgstr ""
+msgstr "OSC non avviato"
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
-msgstr ""
+msgstr "handle non valido"
 
-#: Opcodes/OSC.c:695
-#, fuzzy
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
-msgstr "numero errato di discussioni ftable"
+msgstr "numero di argomenti non valido"
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
-#, fuzzy
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
-msgstr "numero di canali incongruente con il numero di argomenti"
+msgstr "lista degli argomenti incongruente con la formattazione della stringa"
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
-msgstr ""
+msgstr "tipo non valido"
 
-#: Opcodes/OSC.c:846
-#, fuzzy, c-format
+#: Opcodes/OSC.c:847
+#, c-format
 msgid "Invalid ftable no. %d"
-msgstr "ftable num. %f non valida"
+msgstr "ftable num. %d non valida"
 
-#: Opcodes/OSC.c:851
-#, fuzzy
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
-msgstr "Errore interno op=%c"
+msgstr "Errore interno OSC"
 
 #: Opcodes/Vosim.c:51
 msgid "vosim: pulse table not found"
-msgstr ""
+msgstr "vosim: tavola pulse non trovata "
 
 #: Opcodes/Vosim.c:74
 msgid "vosim: zero kfund. 'Infinite' length event generated."
@@ -6220,273 +6285,278 @@ msgstr "vosim: non inizializzato"
 
 #: Opcodes/ambicode.c:49
 msgid "bformenc is deprecated; use bformenc1 instead\n"
-msgstr ""
+msgstr "bformenc ?? obsoleta; usa invece bformenc1\n"
 
 #: Opcodes/ambicode.c:88
 msgid "Wrong number of output arguments! 4, 9 or 16 needed!"
-msgstr ""
+msgstr "Numero di argomenti d'output sbagliato! Ne servono 4, 9 o 16!"
 
 #: Opcodes/ambicode.c:333
 msgid "bformdec is deprecated; use bformdec1 instead\n"
-msgstr ""
+msgstr "bformdec ?? obsoleto; usa invece bformdec1\n"
 
 #: Opcodes/ambicode.c:339
 msgid "Wrong number of input arguments!"
-msgstr ""
+msgstr "Numero di argomenti di input sbagliato!"
 
 #: Opcodes/ambicode.c:347
 msgid "Wrong number of output cells! There must be 2 output cells."
-msgstr ""
+msgstr "Numero sbagliato di celle d'output! Devono esserci 2 celle d'output."
 
 #: Opcodes/ambicode.c:392
 msgid "Wrong number of output cells! There must be 4 output cells."
-msgstr ""
+msgstr "Numero sbagliato di celle d'output! Devono esserci 4 celle d'output."
 
 #: Opcodes/ambicode.c:437 Opcodes/ambicode.c:596
 msgid "Wrong number of output cells! There must be 5 output cells."
-msgstr ""
+msgstr "Numero sbagliato di celle d'output! Devono esserci 5 celle d'output."
 
 #: Opcodes/ambicode.c:486 Opcodes/ambicode.c:541
 msgid "Wrong number of output cells! There must be 8 output cells."
-msgstr ""
+msgstr "Numero sbagliato di celle d'output! Devono esserci 8 celle d'output."
 
 #: Opcodes/ambicode.c:635
 msgid "Not supported setup number!"
-msgstr ""
+msgstr "Numero di setup non supportato!"
 
 #: Opcodes/ambicode1.c:109 Opcodes/ambicode1.c:127
 msgid "The numbers of input and output arguments are not valid."
 msgstr ""
+"Il numero degli argomenti di input e di output arguments non ?? valido."
 
 #: Opcodes/ambicode1.c:117
-#, fuzzy
 msgid "array not initialised in ambibformenc1"
-msgstr "table: non inizializzato"
+msgstr "array non inizializzato in ambibformenc1"
 
 #: Opcodes/ambicode1.c:294 Opcodes/ambicode1.c:690
 msgid "The number of input arguments is not valid."
-msgstr ""
+msgstr "Il numero di argomenti di input non ?? valido."
 
 #: Opcodes/ambicode1.c:298 Opcodes/ambicode1.c:694
 msgid "The isetup value should be between 1 and 5."
-msgstr ""
+msgstr "Il valore di isetup deve essere tra 1 e 5."
 
 #: Opcodes/ambicode1.c:324 Opcodes/ambicode1.c:721
 msgid "The output channel count does not match the isetup value."
-msgstr ""
+msgstr "Il conto dei canali d'output non combacia con il valore di isetup."
 
 #: Opcodes/ambicode1.c:683
-#, fuzzy
 msgid "bformdec1 output array not initilised"
-msgstr "table: non inizializzato"
+msgstr "bformdec1 array d'output non inizializzato"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
-#, fuzzy
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "il secondo array d'input ?? troppo corto\n"
 
 #: Opcodes/arrays.c:101
 msgid "Error: no sizes set for array initialization"
 msgstr ""
+"Errore: nessuna impostazione della dimensione dell'array all'inizializzazione"
 
 #: Opcodes/arrays.c:107
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
+"Errore: le dimensioni devono essere > 0 per l'inizializzazione dell'array"
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
-msgstr ""
+msgstr "fillarrray: array con dimensioni > 2 non sono attualmente supportati\n"
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
-msgstr ""
+msgstr "Non ?? possibile impostare un i-array a k-rate\n"
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
-msgstr ""
+msgstr "Dimensione %d del'array fuori intervallo per le dimensioni %d\n"
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
-msgstr ""
+msgstr "Indice %d dell'array fuori intervallo (0,%d) per la dimensione %d"
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
-msgstr ""
+msgstr "Dimensione %d del'array fuori intervallo per le dimensioni %d"
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
-msgstr ""
-
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
-#, fuzzy
+msgstr "Le dimensioni non combaciano nell'aritmetica dell'array"
+
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
-msgstr "table: non inizializzato"
+msgstr "array-variable non inizializzata"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
-msgstr ""
+msgstr "La dimensione non combacia nell'aritmetica dell'array"
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
-msgstr ""
+msgstr "divisione per zero in array-var all'indice %d"
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
-msgstr ""
+msgstr "potenza non definita in array-var all'indice %d"
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
-msgstr ""
+msgstr "divisione per zero in array-var"
 
-#: Opcodes/arrays.c:919
-#, fuzzy
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, fuzzy, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr "divisione per zero in array-var all'indice %d"
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
-msgstr "table: non inizializzato"
+msgstr "array-variable non un vettore"
 
-#: Opcodes/arrays.c:1012
-#, fuzzy
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
-msgstr "table: non inizializzato"
+msgstr "array-variable le dimensioni non combaciano"
 
-#: Opcodes/arrays.c:1014
-#, fuzzy
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
-msgstr "table: non inizializzato"
+msgstr "array-variable i tipi non combaciano"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
-#, fuzzy
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
-msgstr "table: non inizializzato"
+msgstr "array-var non inizializzato"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
-msgstr ""
+msgstr "Nessuna tavola per copy2ftab"
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
-msgstr ""
+msgstr "parametri di inizio, fine e incremento inconsistenti"
 
-#: Opcodes/arrays.c:1198
-#, fuzzy
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
-msgstr "%s sr, kr e ksmps sono incongruenti"
+msgstr "parametri di inizio, fine incongruenti"
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
-msgstr ""
+msgstr "slice ?? maggiore della dimensione originale"
 
-#: Opcodes/arrays.c:1272
-#, fuzzy, c-format
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr "l'incremento di slice deve essere positivo"
+
+#: Opcodes/arrays.c:1730
+#, c-format
 msgid "%s not found"
-msgstr "Nome %s non trovato"
+msgstr "%s non trovato"
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
-msgstr ""
+msgstr "map fn non trovata a k rate"
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "rfft: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "rifft: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:1544
-#, fuzzy
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
-msgstr "table: non inizializzato"
+msgstr "le dimensioni dell'array non combaciano\n"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "fft: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "fftinv: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
-msgstr ""
+msgstr "in array le dimensioni non combaciano: %d e %d\n"
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
-msgstr ""
+msgstr "caso di non potenza di due non ancora implementato\n"
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
-msgstr ""
+msgstr "dimensione FFT troppo piccola (min 64 campioni)\n"
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
-msgstr ""
+msgstr "l'array in non ?? bidimensionale\n"
 
-#: Opcodes/arrays.c:1939
-#, fuzzy
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
-msgstr "%s dispositivo numero %d fuori range"
+msgstr "la riga richiesta ?? fuori intervallo\n"
 
-#: Opcodes/arrays.c:1964
-#, fuzzy
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
-msgstr "%s dispositivo numero %d fuori range"
+msgstr "la colonna richiesta ?? fuori intervallo\n"
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
-#, fuzzy
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
-msgstr "errore: numero del dispositivo fuori range"
+msgstr "Errore: indice fuori intervallo\n"
 
-#: Opcodes/arrays.c:2051
-#, fuzzy
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "array d'input troppo piccolo\n"
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "dct: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
-msgstr ""
+msgstr "dct: dimensioni non potenza di due non ancora implementate"
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
-msgstr ""
+msgstr "dctinv: sono permessi solo array unidimensionali"
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
-msgstr ""
+msgstr "dctinv: dimensioni non potenza di due non ancora implementate"
 
 #: Opcodes/babo.c:743
 #, c-format
 msgid "Babo: resonator dimensions are incorrect (%.1f, %.1f, %.1f)"
 msgstr ""
+"Babo: le dimensioni del risuonatore non sono corrette (%.1f, %.1f, %.1f)"
 
 #: Opcodes/bilbar.c:115
 msgid "Ends must be clamped(1), pivoting(2) or free(3)"
@@ -6496,7 +6566,7 @@ msgstr ""
 #: Opcodes/biquad.c:345 Opcodes/biquad.c:395 Opcodes/biquad.c:406
 #: Opcodes/biquad.c:447 Opcodes/biquad.c:458
 msgid "rezzy instability corrected"
-msgstr ""
+msgstr "corretta l'instabilit?? di rezzy"
 
 #: Opcodes/biquad.c:796
 msgid "vco: not initialised"
@@ -6504,7 +6574,7 @@ msgstr "vco: non inizializzato"
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6516,24 +6586,20 @@ msgid "Bowedbar: cannot have zero modes\n"
 msgstr ""
 
 #: Opcodes/cellular.c:50 Opcodes/cellular.c:56
-#, fuzzy
 msgid "cell: invalid num of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "cell: numero di elementi non valido"
 
 #: Opcodes/cellular.c:52
-#, fuzzy
 msgid "cell: invalid output table"
-msgstr "GEN53: window table non valida"
+msgstr "cell: tavola d'output non valida"
 
 #: Opcodes/cellular.c:59
-#, fuzzy
 msgid "cell: invalid initial state table"
-msgstr "GEN53: window table non valida"
+msgstr "cell: tavola dello stato iniziale non valida"
 
 #: Opcodes/cellular.c:64
-#, fuzzy
 msgid "cell: invalid rule table"
-msgstr "GEN53: window table non valida"
+msgstr "cell: tavola dei ruoli non valida"
 
 #: Opcodes/clfilt.c:54
 msgid "filter type not lowpass or highpass in clfilt"
@@ -6542,12 +6608,12 @@ msgstr ""
 #: Opcodes/clfilt.c:60
 #, c-format
 msgid "filter kind, %d, out of range in clfilt"
-msgstr ""
+msgstr "tipo di filtro, %d, fuori intervallo in clfilt"
 
 #: Opcodes/clfilt.c:64
 #, c-format
 msgid "number of poles, %f, out of range in clfilt"
-msgstr ""
+msgstr "numero di poli, %f, fuori intervallo in clfilt"
 
 #: Opcodes/clfilt.c:70
 #, c-format
@@ -6581,7 +6647,7 @@ msgstr ""
 #: Opcodes/clfilt.c:174 Opcodes/clfilt.c:277 Opcodes/clfilt.c:350
 #: Opcodes/clfilt.c:388
 msgid "code error, ikind out of range"
-msgstr ""
+msgstr "errore codice, ikind fuori intervallo"
 
 #: Opcodes/clfilt.c:273 Opcodes/clfilt.c:383
 msgid "Highpass Elliptical not implemented yet. Sorry!"
@@ -6589,196 +6655,197 @@ msgstr ""
 
 #: Opcodes/clfilt.c:281 Opcodes/clfilt.c:393
 msgid "code error, ihilo out of range"
-msgstr ""
+msgstr "errore codice, ihilo fuori intervallo"
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
-msgstr ""
+msgstr "control: fallita allocazione delle globali"
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
-msgstr ""
+msgstr "Slider %d impostato a %s\n"
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
-msgstr ""
+msgstr "Controllo conosciuto %d"
 
 #: Opcodes/cpumeter.c:80
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open /proc/stat: %s"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "Fallita apertura /proc/stat: %s"
 
 #: Opcodes/cpumeter.c:82 Opcodes/cpumeter.c:87 Opcodes/cpumeter.c:115
 #: Opcodes/cpumeter.c:156
 msgid "failed /proc/stat read"
-msgstr ""
+msgstr "fallita lettura di /proc/stat"
 
 #: Opcodes/cross2.c:318
 msgid "cross2: length must be at least 1"
 msgstr ""
 
 #: Opcodes/crossfm.c:34
-#, fuzzy
 msgid "crossfm: ftable not found"
-msgstr "GEN30: source ftable non trovata"
+msgstr "crossfm:  ftable non trovata"
 
 #: Opcodes/date.c:124
-#, fuzzy, c-format
+#, c-format
 msgid "cannot determine current directory: %s\n"
-msgstr "Impossibile ridefinire %s"
+msgstr "non riesco a determinare la directory corrente: %s\n"
 
 #: Opcodes/date.c:164
-#, fuzzy
 msgid "readf: failed to open file"
-msgstr "fallita apertura del dispositivo"
+msgstr "readf: fallita apertura file"
 
 #: Opcodes/date.c:191
-#, fuzzy
 msgid "readf: read failure"
-msgstr "Allocazione di memoria fallita"
+msgstr "readf: lettura fallita"
 
 #: Opcodes/date.c:201 Opcodes/date.c:209
-#, fuzzy
 msgid "readi failed to initialise"
-msgstr "lpread: non inizializzato"
+msgstr "readi fallita inizializzazione"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
+#, c-format
 msgid "DSSI4CS: Failed to load %s."
-msgstr "Caricamento del file MIDI fallito"
+msgstr "DSSI4CS: Fallito caricamento di %s."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
-msgstr ""
+msgstr "Errore nella creazione della variabile globale '$DSSI4CS'"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
-msgstr ""
+msgstr "DSSI4CS: Caricamento della prima istanza.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
-msgstr ""
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+#, fuzzy
+msgid "No ladspa descriptor\n"
+msgstr "Nessun descrittore lapspa\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
-#, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
+#, fuzzy, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
+"DSSI4CS: Non trovo la funzione ladspa_descriptor(%d) o\n"
+"la funzione dssi_descriptor(%d) nel file plugin \"%s\": %s.\n"
+"Sicuri che questo sia un file plugin LADSPA o DSSI ?"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
-#, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
+#, fuzzy, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
+"DSSI4CS: Non trovo la funzione ladspa_descriptor(%d) o\n"
+"la funzione dssi_descriptor(%d) nel file plugin \"%s\".\n"
+"Sicuri che questo sia un file plugin LADSPA o DSSI ?"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
-msgstr ""
+msgstr "DSSI4CS: Nessun indice %lu nel plugin in %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
-msgstr ""
+msgstr "DSSI4CS: Non riesco ad istanziare il plugin: %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
-msgstr ""
+msgstr "DSSI4CS: Nessuna funzione run() in: %s"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
-msgstr ""
+msgstr "DSSI4CS: plugin: %i non valido (MAX= %i)."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
+#, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
-msgstr ""
-"subinstr: numero di argomenti dell'output maggiore del numero dei canali"
+msgstr "DSSI4CS: il numero di canali audio d'input ?? maggiore di %d"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
+#, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
-msgstr ""
-"subinstr: numero di argomenti dell'output maggiore del numero dei canali"
+msgstr "DSSI4CS: il numero di canali audio d'output ?? maggiore di %d"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
-msgstr ""
+msgstr "DSSI4CS: Plugin '%s' ha %i porte audio input audio input scartato.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
-msgstr ""
+msgstr "DSSI4CS: Plugin '%s' ha %i porte audio input."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
-msgstr ""
+msgstr "DSSI4CS: Plugin '%s' ha %i porte audio output."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 #, fuzzy
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr "nome di variabile non valido"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
-msgstr ""
+msgstr "DSSI4CS: La porta %lu da '%s' non esiste."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
-msgstr ""
+msgstr "DSSI4CS: La porta %lu da '%s' ?? una porta d'output."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr "DSSI4CS: non inizializzato or wrong argument types."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
-msgstr ""
+msgstr "DSSI4CS: dssinote non ancora implementato."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
-msgstr ""
+msgstr "DSSI4CS: dssievent non ancora implementato."
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
-msgstr ""
+msgstr "DSSI4CS: variabile d'ambiente LADSPA_PATH non impostata.\n"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
-msgstr ""
+msgstr "DSSI4CS: variabile d'ambiente DSSI_PATH non impostata.\n"
 
-#: Opcodes/dssi4cs/src/load.c:137
-#, fuzzy, c-format
+#: Opcodes/dssi4cs/src/load.c:140
+#, c-format
 msgid "Failed to load plugin \"%s\": %s"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "Fallito caricamento del plugin \"%s\": %s"
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6786,216 +6853,218 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr "linlin.k: Divisione per zero"
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
-msgstr ""
+msgstr "ci si aspetta un carattere tra A e G, ma ottengo %c\n"
 
-#: Opcodes/emugens/emugens.c:312
-#, fuzzy
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
-msgstr "strumento %s non trovato"
+msgstr "formato incomprensibile\n"
+
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
 
 #: Opcodes/fareygen.c:116
-#, fuzzy
 msgid "insufficient arguments for fareytable"
-msgstr "argomenti insufficienti"
+msgstr "argomenti insufficienti per fareytable"
 
 #: Opcodes/fareyseq.c:252 Opcodes/fareyseq.c:302
 #, c-format
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
-msgstr ""
+msgstr "Farey: Tavola no. < 1 dft=%.2f  sft=%.2f"
 
-#: Opcodes/fareyseq.c:257
-#, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
-msgstr ""
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
+#, fuzzy, c-format
+msgid "Farey: Filter type < 1 ftype=%.2f"
+msgstr "Farey:  tipo filtro < 1 dft=%.2f  sft=%.2f"
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
-#, fuzzy, c-format
+#, c-format
 msgid "Farey: Destination dft table %.2f not found."
-msgstr "GEN32: source ftable %d non trovata"
+msgstr "Farey: Tavola %.2f di destinazione dft non trovata."
 
 #: Opcodes/fareyseq.c:283 Opcodes/fareyseq.c:331
-#, fuzzy, c-format
+#, c-format
 msgid "Farey: Source sft table %.2f not found."
-msgstr "GEN32: source ftable %d non trovata"
-
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
+msgstr "Farey: Tavola %.2f sorgente sft non trovata."
 
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
-msgstr ""
+msgstr "Tavola no. < 1 sft=%.2f"
 
 #: Opcodes/fareyseq.c:454 Opcodes/fareyseq.c:476
 #, c-format
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
 "Faust compilation problem:\n"
 "line %s\n"
 msgstr ""
+"\n"
+"problema di compilazione Faust:\n"
+"linea %s\n"
 
-#: Opcodes/faustgen.cpp:389
-#, fuzzy, c-format
+#: Opcodes/faustgen.cpp:394
+#, c-format
 msgid "could not find DSP %p for deletion"
-msgstr "GEN30: source ftable non trovata"
+msgstr "non riesco a trovare DSP %p per la cancellazione"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 #, fuzzy
 msgid "no factory available\n"
 msgstr "nessun dispositivo di output disponibile"
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, fuzzy, c-format
 msgid "factory not found %d\n"
 msgstr "strumento %s non trovato"
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
-msgstr ""
+msgstr "problema istanziamento Faust \n"
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
-#, fuzzy
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
-msgstr "Numero di argomenti in input sbagliato"
+msgstr "numero di argomenti in input sbagliato\n"
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
-#, fuzzy
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
-msgstr "numero di argomenti sbagliato"
+msgstr "numero di argomenti d'output sbagliato\n"
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
-msgstr ""
+msgstr "problema di compilazione Faust: %s\n"
 
-#: Opcodes/faustgen.cpp:688
-#, fuzzy
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
-msgstr "nessun dispositivo di input disponibile"
+msgstr "nessuna istanza dsp disponibile\n"
 
-#: Opcodes/faustgen.cpp:695
-#, fuzzy, c-format
+#: Opcodes/faustgen.cpp:699
+#, c-format
 msgid "dsp instance not found %d\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "istanza dsp non trovata %d\n"
 
-#: Opcodes/faustgen.cpp:700
-#, fuzzy, c-format
+#: Opcodes/faustgen.cpp:704
+#, c-format
 msgid "dsp control %s not found\n"
-msgstr "strumento %s non trovato"
+msgstr "controllo dsp %s non trovato\n"
 
 #: Opcodes/filter.c:187 Opcodes/filter.c:225
 msgid "Filter order out of bounds: (1 <= nb < 51, 0 <= na <= 50)"
-msgstr ""
+msgstr "Ordine del filtro fuori dai limiti: (1 <= nb < 51, 0 <= na <= 50)"
 
 #: Opcodes/filter.c:688
 msgid "too many iterations in laguer"
-msgstr ""
+msgstr "troppe iterazioni in laguer"
 
 #: Opcodes/flanger.c:202
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
-#, fuzzy
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
-msgstr "allocazione di memoria fallita"
+msgstr "errore allocazione fluid engine\n"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
-msgstr ""
+msgstr "fluid: non riesco a caricare %s"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
+"risultato: %d \n"
+" Note off: c:%3d k:%3d\n"
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
-msgstr ""
+msgstr "Metodo d'interpolazione illegale: Deve essere 0, 1, 4, o 7.\n"
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
-msgstr ""
+msgstr "Nessuna tavola per VibWaveato"
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
-msgstr ""
+msgstr "Nessuna tavola per FM4Op"
 
 #: Opcodes/follow.c:38
 msgid "follow - zero length!"
 msgstr ""
 
 #: Opcodes/fout.c:60
-#, fuzzy, c-format
+#, c-format
 msgid "Closing file '%s'...\n"
-msgstr "Lettura del file MIDI '%s'...\n"
+msgstr "Chiusura file '%s'...\n"
 
 #: Opcodes/fout.c:105
 #, fuzzy
 msgid "invalid file handle"
 msgstr "nome di variabile non valido"
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
-#, fuzzy
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
-msgstr "nome di variabile non valido"
+msgstr "nome file non valido"
 
 #: Opcodes/fout.c:169
-#, fuzzy, c-format
+#, c-format
 msgid "error opening file '%s'"
-msgstr "errore nel processamento del file %s\n"
+msgstr "errore in apertura file '%s'"
 
-#: Opcodes/fout.c:216
-#, fuzzy, c-format
+#: Opcodes/fout.c:218
+#, c-format
 msgid "error opening sound file '%s'"
-msgstr " *** errore in apertura del file MIDI out '%s'"
+msgstr "errore in apertura sound file '%s'"
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
-msgstr ""
+msgstr "impossibile chiudere '%s': non si trova nella lista dei file aperti"
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 #, fuzzy
 msgid "fouti: invalid file handle"
 msgstr "soundin: skip time non valido"
@@ -7033,9 +7102,8 @@ msgid ""
 msgstr ""
 
 #: Opcodes/framebuffer/OLABuffer.c:149
-#, fuzzy
 msgid "olabuffer: Error, overlap factor must be an integer"
-msgstr "la frequenza di campionamento deve essere un intero"
+msgstr "olabuffer: Errore, il fattore di overlap deve essere un intero"
 
 #: Opcodes/framebuffer/OLABuffer.c:157
 msgid "olabuffer: Error, k-rate array must be one dimensional"
@@ -7051,20 +7119,19 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr "freeverb: non inizializzato"
 
 #: Opcodes/ftconv.c:157
-#, fuzzy
 msgid "ftconv: invalid number of channels"
-msgstr "numero di canali non valido"
+msgstr "ftconv: numero di canali non valido"
 
 #: Opcodes/ftconv.c:162
 msgid "ftconv: invalid impulse response partition length"
@@ -7079,167 +7146,152 @@ msgid "ftconv: not initialised"
 msgstr "ftconv: non inizializzato"
 
 #: Opcodes/ftgen.c:69 Opcodes/ftgen.c:241
-#, fuzzy, c-format
+#, c-format
 msgid "Error deleting ftable %d"
-msgstr "sostituisco la precedente ftable %d"
+msgstr "Errore cancellazione ftable %d"
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
-msgstr ""
+msgstr "ftgen argomento stringa non permesso"
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
-msgstr ""
+msgstr "errore ftgen"
 
 #: Opcodes/ftgen.c:238
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid table number: %d"
-msgstr "ftable num. %f non valida"
+msgstr "numero di tavola non valida: %d"
 
 #: Opcodes/ftgen.c:304
-#, fuzzy
 msgid "table length too long"
 msgstr "dimensione della tavola troppo grande"
 
 #: Opcodes/ftgen.c:431
-#, fuzzy
 msgid "ftload: error allocating ftable"
-msgstr "rtmidi: allocazione di memoria fallita"
+msgstr "ftload: errore allocazione ftable"
 
 #: Opcodes/ftgen.c:433
-#, fuzzy
 msgid "ftload: no table numbers"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "ftload: nessun numero di tavola"
 
 #: Opcodes/ftgen.c:435
-#, fuzzy
 msgid "ftload: unable to open file"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "ftload: non riesco ad aprire il file"
 
 #: Opcodes/ftgen.c:438
 msgid "ftload: incorrect file"
-msgstr ""
+msgstr "ftload: file non corretto"
 
 #: Opcodes/ftgen.c:576
 msgid "ftsave: Bad table number. Saving is possible only for existing tables."
 msgstr ""
+"ftsave: Numero di tavola sbagliato. E' possibile salvare solo tavole "
+"esistenti."
 
 #: Opcodes/ftgen.c:579
-#, fuzzy
 msgid "ftsave: no table numbers"
-msgstr "numero di srctable sconosciuto"
+msgstr "ftsave: nessun numero di tavola"
 
 #: Opcodes/ftgen.c:581
-#, fuzzy
 msgid "ftsave: unable to open file"
-msgstr "non riesco ad aprire il file pvocex %s: %s"
+msgstr "ftsave: non riesco ad aprire il file"
 
 #: Opcodes/ftgen.c:583
 msgid "ftsave: failed to write file"
-msgstr ""
+msgstr "ftsave: fallita scrittura del file"
 
-#: Opcodes/ftsamplebank.cpp:204
-#, fuzzy, c-format
+#: Opcodes/ftsamplebank.cpp:205
+#, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
-msgstr "errore in apertura del dispositivo di input %d: %s"
+msgstr "Non riesco a caricare il file. Errore apertura directory: %s\n"
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
-msgstr ""
+msgstr "Error: dovete passare una directory come stringa."
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
-msgstr ""
+msgstr "Errore: il secondo parametro alla directory deve essere una stringa"
 
-#: Opcodes/ftsamplebank.cpp:338
-#, fuzzy, c-format
+#: Opcodes/ftsamplebank.cpp:339
+#, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
-msgstr "errore in apertura del dispositivo di input %d: %s"
+msgstr "Non riesco a trovare la directory. Errore apertura directory: %s\n"
 
-#: Opcodes/gab/gab.c:116
-#, fuzzy
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "fastab: numero di tavola non corretto"
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
 #: Opcodes/gab/gab.c:171
-#, fuzzy, c-format
+#, c-format
 msgid "tab off end %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "tab off end %i"
 
 #: Opcodes/gab/gab.c:197
-#, fuzzy
 msgid "tab_i: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "tab_i: numero di tavola non corretto"
 
 #: Opcodes/gab/gab.c:204
-#, fuzzy, c-format
+#, c-format
 msgid "tab_i off end: table number: %d\n"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "tab_i off end: numero di tavola: %d\n"
 
 #: Opcodes/gab/gab.c:217
-#, fuzzy
 msgid "tabw_i: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "tabw_i: numero di tavola non corretto"
 
 #: Opcodes/gab/gab.c:224
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
-#, fuzzy, c-format
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
+#, c-format
 msgid "tab off end %d"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "tab off end %d"
 
-#: Opcodes/gab/gab.c:271
-#, fuzzy
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "tab_init: numero di tavola non corretto"
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
-#, fuzzy
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
-msgstr "GEN30: source ftable non trovata"
+msgstr "adsynt2: wavetable non trovata!"
 
-#: Opcodes/gab/gab.c:465
-#, fuzzy
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
-msgstr "GEN30: source ftable non trovata"
+msgstr "adsynt2: freqtable non trovata!"
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
+"adsynt2: il conto delle parziali ?? maggiore della dimensione di freqtable!"
 
-#: Opcodes/gab/gab.c:479
-#, fuzzy
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
-msgstr "GEN30: source ftable non trovata"
+msgstr "adsynt2: amptable non trovata!"
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
+"adsynt2: il conto delle parziali ?? maggiore della dimensione di amptable!"
 
-#: Opcodes/gab/gab.c:528
-#, fuzzy
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
-msgstr "adsynt: non inizializzato"
+msgstr "adsynt2: non inizializzato"
 
-#: Opcodes/gab/gab.c:809
-#, fuzzy
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
-msgstr "%s valore di ksmps non valido"
+msgstr "max_k: valore di imaxflag non valido"
 
 #: Opcodes/gab/hvs.c:64 Opcodes/gab/hvs.c:150 Opcodes/gab/hvs.c:249
 msgid "hvs: No out table"
-msgstr ""
+msgstr "hvs: Nessuna tavola d'out"
 
 #: Opcodes/gab/hvs.c:67 Opcodes/gab/hvs.c:153 Opcodes/gab/hvs.c:252
 msgid "hvs: No positions table"
@@ -7251,59 +7303,55 @@ msgstr ""
 
 #: Opcodes/gab/hvs.c:73
 msgid "hvs1: a line segment must be delimited by 2 points at least"
-msgstr ""
+msgstr "hvs1: un segmento di linea deve essere delimitato da almeno 2 punti"
 
 #: Opcodes/gab/hvs.c:80 Opcodes/gab/hvs.c:166 Opcodes/gab/hvs.c:266
-#, fuzzy
 msgid "hvs: no config table"
-msgstr "vosim: non inizializzato"
+msgstr "hvs: nessuna tavola config"
 
 #: Opcodes/gab/hvs.c:159
 msgid "hvs2: a square area must be delimited by 2 lines at least"
-msgstr ""
+msgstr "hvs2: un'area quadrata deve essere delimitata da almeno 2 linee"
 
 #: Opcodes/gab/hvs.c:258
 msgid "hvs3: a square area must be delimited by 2 lines at least"
-msgstr ""
+msgstr "hvs3: un'area quadrata deve essere delimitata da almeno 2 linee"
 
 #: Opcodes/gab/hvs.c:401
 msgid "vphaseseg: the first function is invalid or missing"
-msgstr ""
+msgstr "vphaseseg: la prima funzione ?? mancante o non valida"
 
 #: Opcodes/gab/hvs.c:407
-#, fuzzy
 msgid "Failed to find ftable"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "Fallito a trovare la ftable"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
-#, fuzzy
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "vphaseseg: numero di elementi non valido"
 
 #: Opcodes/gab/hvs.c:428
 msgid "vphaseseg: function invalid or missing"
-msgstr ""
+msgstr "vphaseseg: funzione mancante o non valida"
 
 #: Opcodes/gab/newgabopc.c:40 Opcodes/gab/newgabopc.c:56
-#, fuzzy
 msgid "vtable1: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtable1: numero di tavola non corretto"
 
 #: Opcodes/gab/newgabopc.c:245 Opcodes/gab/newgabopc.c:303
-#, fuzzy
 msgid "copyTabElems: incorrect destination table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "copyTabElems: numero di tavola di destinazione non corretto"
 
 #: Opcodes/gab/newgabopc.c:251 Opcodes/gab/newgabopc.c:308
 msgid ""
 "copyTabElems: destination table too short or number of elements to copy too "
 "big"
 msgstr ""
+"copyTabElems: tavola di destinazione troppo piccola o numero di elementi da "
+"copiare troppo grande"
 
 #: Opcodes/gab/newgabopc.c:257 Opcodes/gab/newgabopc.c:313
-#, fuzzy
 msgid "copyTabElems: incorrect source table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "copyTabElems: numero di tavola sorgente non corretto"
 
 #: Opcodes/gab/newgabopc.c:262 Opcodes/gab/newgabopc.c:317
 msgid ""
@@ -7311,26 +7359,24 @@ msgid ""
 msgstr ""
 
 #: Opcodes/gab/newgabopc.c:280 Opcodes/gab/newgabopc.c:327
-#, fuzzy
 msgid "copyTabElems: source table too short"
-msgstr "GEN53: numero di source table non valido"
+msgstr "copyTabElems: tavola sorgente troppo corta"
 
 #: Opcodes/gab/newgabopc.c:283 Opcodes/gab/newgabopc.c:330
-#, fuzzy
 msgid "copyTabElems: destination table too short"
-msgstr "GEN53: numero di source table non valido"
+msgstr "copyTabElems: tavola di destinazione troppo corta"
 
 #: Opcodes/gab/newgabopc.c:356
 msgid "inrg: audio input is not enabled"
-msgstr ""
+msgstr "inrg: l'input audio non ?? abilitato"
 
 #: Opcodes/gab/newgabopc.c:374
 msgid "inrg: channel number cannot be < 1 (1 is the first channel)"
-msgstr ""
+msgstr "inrg: il numero di canale non pu?? essere < 1 (1 ?? il primo canale)"
 
 #: Opcodes/gab/newgabopc.c:401 Opcodes/gab/newgabopc.c:475
 msgid "invalid function"
-msgstr ""
+msgstr "funzione non valida"
 
 #: Opcodes/gab/newgabopc.c:404
 msgid "lposc: no sample rate stored in function; assuming=sr\n"
@@ -7344,13 +7390,13 @@ msgstr ""
 #: Opcodes/midiops3.c:44 Opcodes/midiops3.c:146 Opcodes/midiops3.c:259
 #: Opcodes/midiops3.c:317 Opcodes/midiops3.c:413
 msgid "illegal channel"
-msgstr ""
+msgstr "canale illegale"
 
 #: Opcodes/gab/sliderTable.c:67 Opcodes/gab/sliderTable.c:281
 #: Opcodes/midiops3.c:58 Opcodes/midiops3.c:162 Opcodes/midiops3.c:273
 #, c-format
 msgid "illegal control number at position n.%d"
-msgstr ""
+msgstr "numero di controllo illegale alla posizione n.%d"
 
 #: Opcodes/gab/sliderTable.c:77
 #, c-format
@@ -7364,11 +7410,11 @@ msgstr ""
 #: Opcodes/midiops3.c:347
 #, c-format
 msgid "illegal initvalue at position n.%d"
-msgstr ""
+msgstr "initvalue non valido alla posizione n.%d"
 
 #: Opcodes/gab/sliderTable.c:99 Opcodes/gab/sliderTable.c:300
 msgid "sliderXtable: zero is illegal in exponential operations"
-msgstr ""
+msgstr "sliderXtable: zero ?? illegale nelle operazioni esponenziali"
 
 #: Opcodes/gab/sliderTable.c:317
 #, c-format
@@ -7376,467 +7422,438 @@ msgid ""
 "sliderXtable: illegal initvalue at position %d. When using table indexing, "
 "the init range is 0 to 1"
 msgstr ""
+"sliderXtable: initvalue non valido alla posizione %d. Quando si usano gli "
+"indici della tavola, l'intervallo di init ?? tra 0 e 1"
 
 #: Opcodes/gab/sliderTable.c:570 Opcodes/midiops2.c:339 Opcodes/midiops2.c:377
 #: Opcodes/midiops2.c:409 Opcodes/midiops2.c:458 Opcodes/midiops2.c:493
 #: Opcodes/midiops2.c:535 Opcodes/midiops2.c:550 Opcodes/midiops2.c:569
 msgid "illegal midi channel"
-msgstr ""
+msgstr "canale midi non valido"
 
 #: Opcodes/gab/tabmorph.c:43
-#, fuzzy
 msgid "tabmorph: invalid table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "tabmorph: numero di tavola non valido"
 
 #: Opcodes/gab/tabmorph.c:47
 msgid "tabmorph: all tables must have the same length!"
-msgstr ""
+msgstr "tabmorph: le tavole devono avere tutte la stessa lunghezza!"
 
 #: Opcodes/gab/vectorial.c:35
-#, fuzzy
 msgid "vtablei: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablei: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:65
-#, fuzzy
 msgid "vtable: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtable: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:86
-#, fuzzy
 msgid "vtablek: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablek: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:140
-#, fuzzy
 msgid "vtablea: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablea: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:200
-#, fuzzy
 msgid "vtabi: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtabi: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:215
-#, fuzzy
 msgid "vtab: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtab: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:277
-#, fuzzy
 msgid "vtablewi: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablewi: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:293 Opcodes/gab/vectorial.c:392
-#, fuzzy
 msgid "vtablew: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablew: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:314 Opcodes/gab/vectorial.c:411
-#, fuzzy
 msgid "vtablewk: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablewk: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:347
-#, fuzzy
 msgid "vtablewa: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtablewa: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:378
-#, fuzzy
 msgid "vtabwi: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtabwi: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:440
-#, fuzzy
 msgid "vtabwa: incorrect table number"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vtabwa: numero di tavola non corretto"
 
 #: Opcodes/gab/vectorial.c:489 Opcodes/gab/vectorial.c:548
-#, fuzzy, c-format
+#, c-format
 msgid "vadd_i: invalid table number %i"
-msgstr "ftable num. %f non valida"
+msgstr "vadd_i: numero di tavola %i non valido"
 
 #: Opcodes/gab/vectorial.c:505
 msgid "vadd_i: ifn length exceeded"
-msgstr ""
+msgstr "vadd_i: lunghezza ifn eccedente"
 
 #: Opcodes/gab/vectorial.c:532
 msgid "vadd: ifn1 length exceeded"
-msgstr ""
+msgstr "vadd: lunghezza ifn1 eccedente"
 
 #: Opcodes/gab/vectorial.c:564
 msgid "vmult_i: ifn length exceeded"
-msgstr ""
+msgstr "vmult_i: lunghezza ifn eccedente"
 
 #: Opcodes/gab/vectorial.c:591
 msgid "vmult: ifn1 length exceeded"
-msgstr ""
+msgstr "vmult: lunghezza ifn1 eccedente"
 
 #: Opcodes/gab/vectorial.c:607
-#, fuzzy, c-format
+#, c-format
 msgid "vpow_i: invalid table number %i"
-msgstr "soundin: skip time non valido"
+msgstr "vpow_i: numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
-msgstr ""
+msgstr "vpow_i: lunghezza ifn eccedente"
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
-msgstr ""
+msgstr "vpow: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:668
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:667
+#, c-format
 msgid "vexp_i: invalid table number %i"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vexp_i: numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
-msgstr ""
+msgstr "vexp_i: lunghezza ifn eccedente"
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
-msgstr ""
+msgstr "vexp: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:729
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:728
+#, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vectorsop: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:734
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:733
+#, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vectorsop: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
-msgstr ""
+msgstr "vcopy: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
-msgstr ""
+msgstr "vcopy: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:819
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:818
+#, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vcopy_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:824
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:823
+#, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vcopy_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vcopy_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vcopy_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
-msgstr ""
+msgstr "vaddv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
-msgstr ""
+msgstr "vaddv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:947
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:946
+#, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vaddv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:952
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:951
+#, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vaddv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vaddv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vaddv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
-msgstr ""
+msgstr "vsubv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
-msgstr ""
+msgstr "vsubv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1069
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1068
+#, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vsubv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1074
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1073
+#, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vsubv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vsubv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vsubv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
-msgstr ""
+msgstr "vmultv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
-msgstr ""
+msgstr "vmultv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1197
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1196
+#, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vmultv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1202
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1201
+#, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vmultv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vmultv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vmultv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
-msgstr ""
+msgstr "vdivv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
-msgstr ""
+msgstr "vdivv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1324
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1323
+#, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vdivv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1329
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1328
+#, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vdivv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vdivv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vdivv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
-msgstr ""
+msgstr "vpowv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
-msgstr ""
+msgstr "vpowv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1452
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1451
+#, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vpowv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1457
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1456
+#, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "vpowv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vpowv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vpowv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
-msgstr ""
+msgstr "vexpv: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
-msgstr ""
+msgstr "vexpv: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1579
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1578
+#, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vexpv_i: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1584
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1583
+#, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vexpv_i: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
-msgstr ""
+msgstr "vexpv_i: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
-msgstr ""
+msgstr "vexpv_i: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
-msgstr ""
+msgstr "vmap: Errore: ifn1 e ifn2 non possono essere la stessa"
 
-#: Opcodes/gab/vectorial.c:1666
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1665
+#, c-format
 msgid "vmap: ifn1 invalid table number %i"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vmap: ifn1 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1671
-#, fuzzy, c-format
+#: Opcodes/gab/vectorial.c:1670
+#, c-format
 msgid "vmap: ifn2 invalid table number %i"
-msgstr "GEN53: numero di source table non valido"
+msgstr "vmap: ifn2 numero di tavola %i non valido"
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
-msgstr ""
+msgstr "vmap: lunghezza ifn1 eccedente"
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
-msgstr ""
+msgstr "vmap: lunghezza ifn2 eccedente"
 
-#: Opcodes/gab/vectorial.c:1731
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "vectorop: numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:1760
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
-msgstr "GEN53: lunghezza della tavola non valida"
+msgstr "vport: lunghezza tavola o numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:1763
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
-msgstr "soundin: skip time non valido"
+msgstr "vport: tavola non valida"
 
-#: Opcodes/gab/vectorial.c:1768
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
-msgstr "GEN53: lunghezza della tavola non valida"
+msgstr "vport: lunghezza tavola init o numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:1771
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
-msgstr "soundin: skip time non valido"
+msgstr "vport: tavola init non valida"
 
-#: Opcodes/gab/vectorial.c:1908
-#, c-format
-msgid "vrandh: Seeding from current time %lu\n"
-msgstr ""
+#: Opcodes/gab/vectorial.c:1907
+#, fuzzy, c-format
+msgid "vrandh: Seeding from current time %u\n"
+msgstr "Seme dal tempo attuale %u\n"
 
-#: Opcodes/gab/vectorial.c:1921
-#, fuzzy
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
-msgstr "ftable num. %f non valida"
+msgstr "vrandh: tavola non valida"
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
-#, c-format
-msgid "vrandi: Seeding from current time %lu\n"
-msgstr ""
+#: Opcodes/gab/vectorial.c:2007
+#, fuzzy, c-format
+msgid "vrandi: Seeding from current time %u\n"
+msgstr "Seme dal tempo attuale %u\n"
 
-#: Opcodes/gab/vectorial.c:2020
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
-msgstr "ftable num. %f non valida"
+msgstr "vrandi: tavola non valida"
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "vecdelay: numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:2112
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
-msgstr "GEN53: window table non valida"
+msgstr "vecdly: tavola d'output non valida"
 
-#: Opcodes/gab/vectorial.c:2119
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
-msgstr "GEN53: window table non valida"
+msgstr "vecdly: tavola d'input non valida"
 
-#: Opcodes/gab/vectorial.c:2126
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
-msgstr "GEN53: window table non valida"
+msgstr "vecdly: tavola delay non valida"
 
-#: Opcodes/gab/vectorial.c:2171
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
-msgstr "vdelay: non inizializzato"
+msgstr "vecdly: non inizializzato"
 
-#: Opcodes/gab/vectorial.c:2220
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "vlinseg/vexpseg: numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr "tableseg: non inizializzato"
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr "tablexseg: non inizializzato"
 
-#: Opcodes/gab/vectorial.c:2445
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
-msgstr "delayk: non inizializzato"
+msgstr "vdelayk: non inizializzato"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
-msgstr "numero errato di discussioni ftable"
+msgstr "cella: numero di elementi non valido"
 
-#: Opcodes/gab/vectorial.c:2480
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
-msgstr "GEN53: window table non valida"
+msgstr "cella: tavola d'output non valida"
 
-#: Opcodes/gab/vectorial.c:2487
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
-msgstr "GEN53: window table non valida"
+msgstr "cella: tavola dello stato iniziale non valida"
 
-#: Opcodes/gab/vectorial.c:2491
-#, fuzzy
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
-msgstr "GEN53: window table non valida"
+msgstr "cella: tavola dei ruoli non valida"
 
 #: Opcodes/grain.c:95
 msgid "grain: grain length zero"
@@ -7848,87 +7865,89 @@ msgstr "grain: non inizializzato"
 
 #: Opcodes/grain4.c:59
 msgid "granule_set: Unable to find function table"
-msgstr ""
+msgstr "granule_set: Non riesco a trovare la tavola funzione"
 
 #: Opcodes/grain4.c:69
 msgid "granule_set: Unable to find function table for envelope"
-msgstr ""
+msgstr "granule_set: Non riesco a trovare la tavola funzione per l'inviluppo"
 
 #: Opcodes/grain4.c:75
 msgid "granule_set: Too many voices"
-msgstr ""
+msgstr "granule_set: Troppe voci"
 
 #: Opcodes/grain4.c:78
 msgid "granule_set: iratio must be greater then 0"
-msgstr ""
+msgstr "granule_set: iratio deve essere maggiore di 0"
 
 #: Opcodes/grain4.c:82
 msgid "granule_set: imode must be -1, 0 or +1"
-msgstr ""
+msgstr "granule_set: imode deve essere -1, 0 o +1"
 
 #: Opcodes/grain4.c:86
 msgid "granule_set: Illegal ithd, must be greater than zero"
-msgstr ""
+msgstr "granule_set: ithd non valido, deve essere maggiore di zero"
 
 #: Opcodes/grain4.c:91
 msgid "granule_set: ipshift must be integer between 0 and 4"
-msgstr ""
+msgstr "granule_set: ipshift deve essere un intero tra 0 e 4"
 
 #: Opcodes/grain4.c:96
 msgid "granule_set: Not enough voices for the number of pitches"
-msgstr ""
+msgstr "granule_set: Non ci sono abbastanza voci per il numero di altezze"
 
 #: Opcodes/grain4.c:103
 msgid "granule_set: ipitch1 must be greater then zero"
-msgstr ""
+msgstr "granule_set: ipitch1 deve essere maggiore di zero"
 
 #: Opcodes/grain4.c:108
 msgid "granule_set: ipitch2 must be greater then zero"
-msgstr ""
+msgstr "granule_set: ipitch2 deve essere maggiore di zero"
 
 #: Opcodes/grain4.c:113
 msgid "granule_set: ipitch3 must be greater then zero"
-msgstr ""
+msgstr "granule_set: ipitch3 deve essere maggiore di zero"
 
 #: Opcodes/grain4.c:118
 msgid "granule_set: ipitch4 must be greater then zero"
-msgstr ""
+msgstr "granule_set: ipitch4 deve essere maggiore di zero"
 
 #: Opcodes/grain4.c:123
 msgid "granule_set: must be positive and less than function table length"
 msgstr ""
+"granule_set: deve essere positivo e minore della lunghezza della tavola "
+"funzione"
 
 #: Opcodes/grain4.c:127
 msgid "granule_set: igskip_os must be greater then 0"
-msgstr ""
+msgstr "granule_set: igskip_os deve essere maggiore di 0"
 
 #: Opcodes/grain4.c:136
 msgid "granule_set: kgap must be greater then 0"
-msgstr ""
+msgstr "granule_set: kgap deve essere maggiore di 0"
 
 #: Opcodes/grain4.c:140
 #, c-format
 msgid "granule_set: igap_os must be 0%% to 100%%"
-msgstr ""
+msgstr "granule_set: igap_os deve essere da 0%% a 100%%"
 
 #: Opcodes/grain4.c:144
 msgid "granule_set: kgsize must be greater then 0"
-msgstr ""
+msgstr "granule_set: kgsize deve essere maggiore di 0"
 
 #: Opcodes/grain4.c:148
 #, c-format
 msgid "granule_set: igsize_os must be 0%% to 100%%"
-msgstr ""
+msgstr "granule_set: igsize_os deve essere da 0%% a 100%%"
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
-msgstr ""
+msgstr "granule_set: valore di iatt e/o idec non valido"
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
-msgstr ""
+msgstr "granule_set: combinazione di igskip e ilength non valida"
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7938,7 +7957,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr "grain4: non inizializzato"
 
@@ -7952,56 +7971,56 @@ msgstr ""
 
 #: Opcodes/harmon.c:395
 msgid "harmon234: out of range\n"
-msgstr ""
+msgstr "harmon234: fuori intervallo\n"
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -8100,12 +8119,12 @@ msgstr ""
 #: Opcodes/imageOpcodes.c:105 Opcodes/imageOpcodes.c:433
 #, c-format
 msgid "imageload: cannot open image %s.\n"
-msgstr ""
+msgstr "imageload: non posso aprire l'immagine %s.\n"
 
 #: Opcodes/imageOpcodes.c:111 Opcodes/imageOpcodes.c:117
 #, c-format
 msgid "imageload: file %s is not in PNG format.\n"
-msgstr ""
+msgstr "imageload: il file %s non ?? in formato PNG.\n"
 
 #: Opcodes/imageOpcodes.c:125 Opcodes/imageOpcodes.c:132
 #: Opcodes/imageOpcodes.c:172 Opcodes/imageOpcodes.c:181
@@ -8117,15 +8136,15 @@ msgstr ""
 #: Opcodes/imageOpcodes.c:291
 #, c-format
 msgid "imageload: cannot open image %s for writing.\n"
-msgstr ""
+msgstr "imageload: non posso aprire l'immagine %s in scrittura.\n"
 
 #: Opcodes/imageOpcodes.c:400
 msgid "Cannot allocate memory.\n"
-msgstr ""
+msgstr "Non posso allocare memoria.\n"
 
 #: Opcodes/jackTransport.c:58
 msgid "Cannot find Jack client.\n"
-msgstr ""
+msgstr "Non riesco a trovare il cliente Jack.\n"
 
 #: Opcodes/jackTransport.c:67
 #, c-format
@@ -8144,69 +8163,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
+msgstr "BEGAN JackoState::close()...\n"
+
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
-msgid "ENDED JackoState::close().\n"
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:723
+msgid "ENDED JackoState::close().\n"
+msgstr "ENDED JackoState::close().\n"
+
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
-msgstr ""
+msgstr "Non posso creare la porta Jack \"%s\".\n"
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -8241,22 +8280,21 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
-#, fuzzy
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
-msgstr "vco: non inizializzato"
+msgstr "liveconv: non inizializzato"
 
 #: Opcodes/locsig.c:42
 msgid "Wrong number of outputs in locsig; must be 2 or 4"
-msgstr ""
+msgstr "Numero sbagliato di output in locsig; deve essere 2 o 4"
 
 #: Opcodes/locsig.c:164
 msgid "Number of outputs must be the same as the previous locsig"
@@ -8265,16 +8303,16 @@ msgstr ""
 #: Opcodes/loscilx.c:81 Opcodes/loscilx.c:199
 #, c-format
 msgid "could not load '%s'"
-msgstr ""
+msgstr "impossibile caricare '%s'"
 
 #: Opcodes/loscilx.c:95 Opcodes/loscilx.c:279
 #, c-format
 msgid "invalid loop mode: %d"
-msgstr ""
+msgstr "modo loop non valido: %d"
 
 #: Opcodes/loscilx.c:189
 msgid "loscilx: invalid number of output arguments"
-msgstr ""
+msgstr "loscilx: numero di argomenti d'output non valido"
 
 #: Opcodes/loscilx.c:211 Opcodes/loscilx.c:240 Opcodes/pvlock.c:182
 #: Opcodes/pvlock.c:407 Opcodes/pvsbasic.c:593
@@ -8289,15 +8327,15 @@ msgstr "loscilx: non inizializzato"
 #: Opcodes/lowpassr.c:55 Opcodes/lowpassr.c:99 Opcodes/lowpassr.c:121
 #: Opcodes/lowpassr.c:155 Opcodes/lowpassr.c:176 Opcodes/lowpassr.c:210
 msgid "Cutoff parameter must be positive"
-msgstr ""
+msgstr "parametro Cutoff deve essere positivo"
 
 #: Opcodes/lowpassr.c:252 Opcodes/lowpassr.c:312
 msgid "illegal order num. (min 1, max 10)"
-msgstr ""
+msgstr "numero order illegale. (min 1, max 10)"
 
 #: Opcodes/mandolin.c:82
 msgid "No table for Mandolin"
-msgstr ""
+msgstr "Nessuna tavola per Mandolin"
 
 #: Opcodes/mandolin.c:92
 msgid "No base frequency for mandolin"
@@ -8313,12 +8351,12 @@ msgstr ""
 
 #: Opcodes/midiops2.c:532 Opcodes/midiops2.c:547 Opcodes/midiops2.c:566
 msgid "value out of range"
-msgstr ""
+msgstr "valore fuori intervallo"
 
 #: Opcodes/midiops2.c:598
 #, c-format
 msgid "invalid channel number: %d"
-msgstr ""
+msgstr "numero di canale non valido: %d"
 
 #: Opcodes/midiops3.c:333 Opcodes/midiops3.c:428
 #, c-format
@@ -8332,7 +8370,7 @@ msgstr ""
 
 #: Opcodes/modal4.c:46
 msgid "No table for Modal4 case"
-msgstr ""
+msgstr "Nessuna tavola per il caso Modal4"
 
 #: Opcodes/modal4.c:247
 msgid "No table for Marimba strike"
@@ -8356,31 +8394,30 @@ msgstr ""
 
 #: Opcodes/modmatrix.c:22
 msgid "modmatrix: "
-msgstr ""
+msgstr "modmatrix: "
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
-#, fuzzy, c-format
+#: Opcodes/mp3in.c:468
+#, c-format
 msgid "mp3scale: %s: failed to open file"
-msgstr "fallita apertura del dispositivo"
+msgstr "mp3scale: %s: fallita apertura file"
 
 #: Opcodes/nlfilt.c:130
 msgid "nlfilt: not initialised"
 msgstr "nlfilt: non inizializzato"
 
 #: Opcodes/nlfilt.c:206
-#, fuzzy
 msgid "nlfilt2: not initialised"
-msgstr "nlfilt: non inizializzato"
+msgstr "nlfilt2: non inizializzato"
 
 #: Opcodes/nlfilt.c:241
 msgid "More arguments than p fields"
@@ -8396,99 +8433,99 @@ msgstr "grain2: non inizializzato"
 
 #: Opcodes/oscbnk.c:922
 msgid "grain3: invalid grain duration"
-msgstr ""
+msgstr "grain3: durata grain non valida"
 
 #: Opcodes/oscbnk.c:929
 msgid "grain3: invalid grain density"
-msgstr ""
+msgstr "grain3: densit?? grain non valida"
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr "grain3: non inizializzato"
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr "rnd31: non inizializzato"
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr "vco2ft: non inizializzato"
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr "vco2: non inizializzato"
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr "delayk: non inizializzato"
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr "vdel_k: non inizializzato"
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8504,6 +8541,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr "partials: il primo input non ?? nel formato AMP_FREQ\n"
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr "partikkel: "
@@ -8517,19 +8562,18 @@ msgid "partikkelsync: could not find opcode id"
 msgstr ""
 
 #: Opcodes/partikkel.c:882
-#, fuzzy, c-format
+#, c-format
 msgid "%s: partikkel not initialized"
-msgstr "spat3di: non inizializzato"
+msgstr "%s: partikkel non inizializzato"
 
 #: Opcodes/partikkel.c:890
-#, fuzzy, c-format
+#, c-format
 msgid "%s: could not find opcode id"
-msgstr "GEN30: source ftable non trovata"
+msgstr "%s: non riesco a trovare l'id dell'opcode"
 
 #: Opcodes/paulstretch.c:125
-#, fuzzy
 msgid "paulstretch: table not found"
-msgstr "GEN30: source ftable non trovata"
+msgstr "paulstretch: tavola non trovata"
 
 #: Opcodes/physmod.c:122
 msgid "No table for Clarinet"
@@ -8571,47 +8615,47 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
-msgstr ""
+msgstr "iprd illegale"
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
-msgstr ""
+msgstr "iocts illegale"
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
-msgstr ""
+msgstr "ifrqs illegale"
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
-msgstr ""
+msgstr "numero di parziali illegale"
 
 #: Opcodes/pitch.c:206
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
-msgstr ""
+msgstr "valori di lo-hi  illegali"
 
 #: Opcodes/pitch.c:462
 msgid "pitch: not initialised"
@@ -8680,8 +8724,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8693,11 +8736,8 @@ msgid "Incorrect argument count in transegb"
 msgstr ""
 
 #: Opcodes/pitch.c:1788 Opcodes/pitch.c:1947
-#, fuzzy
 msgid "Error: transeg not initialised (krate)\n"
-msgstr ""
-"\n"
-"Error: transeg non inizializzato (krate)"
+msgstr "Errore: transeg non inizializzato (krate)\n"
 
 #: Opcodes/pitch.c:1826 Opcodes/pitch.c:2006
 msgid "transeg: not initialised (arate)\n"
@@ -8707,20 +8747,18 @@ msgstr "transeg: non inizializzato (arate)\n"
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
-#, fuzzy
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
-msgstr "linseg: non inizializzato (arate)\n"
+msgstr "median: non inizializzato (arate)\n"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
-#, fuzzy
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
-msgstr "linseg non inizializzato (krate)\n"
+msgstr "median: non inizializzato (krate)\n"
 
 #: Opcodes/pitch0.c:44 Opcodes/pitch0.c:62
 #, c-format
@@ -8732,12 +8770,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8747,22 +8785,13 @@ msgid "Missing input table or too short"
 msgstr ""
 
 #: Opcodes/platerev.c:81
-#, fuzzy
-msgid "Missing output table or too short"
-msgstr "tipo di output non valido per l'opcode %s"
-
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
+msgid "Missing output table or too short"
+msgstr "Tavola d'output mancante o troppo corta"
 
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
-msgstr "Errore: %s, %s"
+#: Opcodes/pluck.c:172
+#, fuzzy
+msgid "wgpluck:Could not allocate for initial shape"
+msgstr "pluck: non inizializzato"
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
 msgid "psynth: first input not in TRACKS format\n"
@@ -8824,7 +8853,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8837,30 +8866,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8868,8 +8897,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr "pvbufread: non inizializzato"
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8887,46 +8916,45 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr "pvinterp: non inizializzato"
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr "pvcross: non inizializzato"
 
 #: Opcodes/pvlock.c:85 Opcodes/pvsbasic.c:505
-#, fuzzy
 msgid "invalid number of output arguments"
-msgstr "numero errato di discussioni ftable"
+msgstr "numero di argomenti d'output non valido"
 
 #: Opcodes/pvlock.c:584
 #, c-format
@@ -8936,14 +8964,13 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
 #: Opcodes/pvlock.c:892
-#, fuzzy
 msgid "pvsfreeze: signal format must be amp-freq."
-msgstr "formato campione non valido: deve essere -s, -l, o -f"
+msgstr "pvsfreeze: il formato del segnale deve essere amp-freq."
 
 #: Opcodes/pvoc.c:71
 msgid "Error allocating PVOC globals"
@@ -8959,9 +8986,8 @@ msgid "pvsband: not initialised"
 msgstr "pvsband: non inizializzato"
 
 #: Opcodes/pvsbasic.c:69
-#, fuzzy
 msgid "pvsgain: signal format must be amp-phase or amp-freq."
-msgstr "formato campione non valido: deve essere -s, -l, o -f"
+msgstr "pvsgain: il formato del segnale deve essere amp-phase o amp-freq."
 
 #: Opcodes/pvsbasic.c:226 Opcodes/pvsbasic.c:362
 msgid "SDFT Not implemented in this case yet"
@@ -8982,9 +9008,9 @@ msgid "pvsdiskin: could not open file %s\n"
 msgstr ""
 
 #: Opcodes/pvsbasic.c:579 Opcodes/pvsbasic.c:2336
-#, fuzzy, c-format
+#, c-format
 msgid "could not find table number %d\n"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "non riesco a trovare la tavola numero %d\n"
 
 #: Opcodes/pvsbasic.c:745
 msgid "pvsfreeze: signal format must be amp-phase or amp-freq."
@@ -9027,9 +9053,8 @@ msgid "pvshift: not initialised"
 msgstr "pvshift: non inizializzato"
 
 #: Opcodes/pvsbasic.c:1989
-#, fuzzy
 msgid "pvswarp: not initialised"
-msgstr "pvsarp: non inizializzato\n"
+msgstr "pvswarp: non inizializzato"
 
 #: Opcodes/pvsbasic.c:2006
 msgid "pvsblur does not work sliding yet"
@@ -9052,9 +9077,8 @@ msgid "pvstencil: not initialised"
 msgstr "pvstencil: non inizializzato"
 
 #: Opcodes/pvsbasic.c:2428 Opcodes/pvsbasic.c:2456
-#, fuzzy
 msgid "pvs2tab: signal format must be amp-phase or amp-freq."
-msgstr "formato campione non valido: deve essere -s, -l, o -f"
+msgstr "pvs2tab: il formato del segnale deve essere amp-phase o amp-freq."
 
 #: Opcodes/pvsbasic.c:2566
 msgid ""
@@ -9065,21 +9089,21 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 #, fuzzy
 msgid "error... could not create global var for handle\n"
 msgstr "attenzione... impossibile creare global var\n"
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 #, fuzzy
 msgid "error... could not read handle from global variable\n"
 msgstr "attenzione... impossibile creare global var\n"
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -9094,39 +9118,35 @@ msgid "centroid requested fftsize = %.0f, actual = %d\n"
 msgstr ""
 
 #: Opcodes/pvscent.c:281
-#, fuzzy
 msgid "PV Frames must be in AMP_FREQ format!\n"
-msgstr "il file pvoc-ex %s non è nel formato AMP_FREQ"
+msgstr "PV Frames deve essere nel formato AMP_FREQ!\n"
 
 #: Opcodes/pvsdemix.c:179
 msgid "pvsdemix : formats are different.\n"
 msgstr ""
 
 #: Opcodes/pvsdemix.c:182
-#, fuzzy
 msgid "pvsdemix : not initialised \n"
-msgstr "pvsmaska: non inizializzato\n"
+msgstr "pvsdemix: non inizializzato\n"
 
 #: Opcodes/pvsgendy.c:113
-#, fuzzy
 msgid "pvsgendy: not initialised"
-msgstr "pvsband: non inizializzato"
+msgstr "pvsgendy: non inizializzato"
 
 #: Opcodes/pvsops.cpp:32
 msgid "sliding not supported"
 msgstr ""
 
 #: Opcodes/pvsops.cpp:36
-#, fuzzy
 msgid "fsig format not supported"
-msgstr " *** il formato del file MIDI %d non è supportato\n"
+msgstr "formato fsig non supportato"
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9299,19 +9319,17 @@ msgid "seqtim: incorrect table number"
 msgstr ""
 
 #: Opcodes/serial.c:111
-#, fuzzy
 msgid "No ports available"
-msgstr "nessun dispositivo di output disponibile"
+msgstr "nessuna porta disponibile"
 
 #: Opcodes/serial.c:256
-#, fuzzy
 msgid "serial: failed to allocate globals"
-msgstr "fallita apertura del dispositivo"
+msgstr "serial: fallita allocazione delle globali"
 
 #: Opcodes/serial.c:275
-#, fuzzy, c-format
+#, c-format
 msgid "%s not available.\n"
-msgstr "Nessuno %s dispositivi sono disponibili\n"
+msgstr "%s non disponibile\n"
 
 #: Opcodes/serial.c:305
 msgid "Number of serial handles exhausted"
@@ -9327,18 +9345,16 @@ msgid "sfload: cannot open SoundFont file \"%s\" (error %s)"
 msgstr ""
 
 #: Opcodes/sfont.c:126
-#, fuzzy
 msgid "sfont: failed to read file\n"
-msgstr "fallita apertura del dispositivo"
+msgstr "sfont: fallita lettura file\n"
 
 #: Opcodes/sfont.c:155
 msgid "sfload: could not open globals\n"
 msgstr ""
 
 #: Opcodes/sfont.c:177
-#, fuzzy
 msgid "Extending soundfonts"
-msgstr "troppi buffers"
+msgstr "Estensione soundfonts"
 
 #: Opcodes/sfont.c:217
 #, c-format
@@ -9427,127 +9443,127 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
+#, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Creata l'istanza 0x%x di %d istanze di outlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:315
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:353
+#, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Rimossa l'istanza 0x%x di %d istanze di outleta %s\n"
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
+#, c-format
 msgid "Created instance 0x%x of inlet %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Creata l'istanza 0x%x di inlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:501
+#, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Rimossa 0x%x di %d istanze di outletk %s\n"
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:625
+#, c-format
 msgid "Created instance 0x%x of outlet %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Creata l'istanza 0x%x di outlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:590
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:636
+#, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Rimossa 0x%x di %d istanze di outletf %s\n"
 
-#: Opcodes/signalflowgraph.cpp:715
-#, fuzzy
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
-msgstr "formato campione non valido: deve essere -s, -l, o -f"
+msgstr "inletf: il formato del segnale deve essere amp-phase o amp-freq."
 
-#: Opcodes/signalflowgraph.cpp:779
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:829
+#, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr ""
+"Creata l'istanza 0x%x di %d istanze di outlet %s (out arraydat: 0x%x dims: "
+"%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 
-#: Opcodes/signalflowgraph.cpp:792
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:842
+#, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Rimossa 0x%x di %d istanze di outletv %s\n"
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:918
+#, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Connesse le istanze di outlet %s all'istanza 0x%x di inlet %s\n"
 
-#: Opcodes/signalflowgraph.cpp:956
-#, fuzzy, c-format
+#: Opcodes/signalflowgraph.cpp:1010
+#, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
-msgstr "rimossa l'istanza dello strumento %d\n"
+msgstr "Rimossa 0x%x di %d istanze di outletkid %s\n"
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
-#, fuzzy
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
-msgstr "(nessun errore)"
+msgstr "errore ftgenonce"
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9581,9 +9597,9 @@ msgid "function table channels do not match opcode outputs"
 msgstr ""
 
 #: Opcodes/sndloop.c:490
-#, fuzzy, c-format
+#, c-format
 msgid "table %d invalid\n"
-msgstr "la ftable %d viene cancellata\n"
+msgstr "tavola %d non valida\n"
 
 #: Opcodes/sndloop.c:1131
 msgid "pvsarp: signal format must be amp-phase or amp-freq.\n"
@@ -9621,34 +9637,37 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr "sndwarpst: non inizializzato"
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
-#, fuzzy
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
-msgstr "tipo di output non valido per l'opcode %s"
+msgstr "array d'output troppo piccolo\n"
 
 #: Opcodes/socksend.c:149 Opcodes/socksend.c:186 Opcodes/socksend.c:223
 #: Opcodes/socksend.c:302
@@ -9656,9 +9675,8 @@ msgid "sendto failed"
 msgstr ""
 
 #: Opcodes/socksend.c:215
-#, fuzzy
 msgid "string truncated in socksend"
-msgstr "    Stringa troncata\n"
+msgstr "stringa troncata in socksend"
 
 #: Opcodes/socksend.c:374
 #, c-format
@@ -9670,22 +9688,20 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
-#, fuzzy
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
-msgstr "argomenti insufficienti"
+msgstr "numero di argomenti insufficienti per il tipo di messaggio OSC\n"
 
-#: Opcodes/socksend.c:472
-#, fuzzy
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
-msgstr "uso di argomenti estesi\n"
+msgstr "ci si aspetta un argomento stringa\n"
 
-#: Opcodes/socksend.c:505
-#, fuzzy, c-format
+#: Opcodes/socksend.c:508
+#, c-format
 msgid "%c: data type not supported\n"
-msgstr " *** il formato del file MIDI %d non è supportato\n"
+msgstr "%c: tipo di dato non supportato\n"
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9705,162 +9721,166 @@ msgstr "spat3d: non inizializzato"
 msgid "spat3di: not initialised"
 msgstr "spat3di: non inizializzato"
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr "specdisp: non inizializzato"
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr "specptrk: non inizializzato"
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr "specsum: non inizializzato"
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr "specaddm: non inizializzato"
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr "specdiff: local buffers non inizializzato"
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr "specdiff: non inizializzato"
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr "specscal: local buffer non inizializzato"
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr "specscal: non inizializzato"
 
-#: Opcodes/spectra.c:1096
-#, fuzzy
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
-msgstr "specfilt: local buffers non inizializzato"
+msgstr "spechist: local buffers non inizializzato"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr "spechist: non inizializzato"
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr "specfilt: local buffers non inizializzato"
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr "specfilt: non inizializzato"
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr "fsig = : source signal is non inizializzato"
@@ -9889,7 +9909,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9921,9 +9941,8 @@ msgid "tabsum: No table"
 msgstr ""
 
 #: Opcodes/tabsum.c:56
-#, fuzzy
 msgid "tabsum: Not initialised"
-msgstr "table: non inizializzato"
+msgstr "tabsum: non inizializzato"
 
 #: Opcodes/ugens7.c:46 Opcodes/ugensa.c:49
 msgid "illegal value for iolaps"
@@ -9969,7 +9988,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9982,7 +10001,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -10012,9 +10031,8 @@ msgid "PCONVOLVE: number of output channels not equal to input channels"
 msgstr ""
 
 #: Opcodes/ugens9.c:434
-#, fuzzy
 msgid "IR srate != orch's srate"
-msgstr "%s's srate = %8.0f, orch's srate = %8.0f"
+msgstr "IR srate != orch's srate"
 
 #: Opcodes/ugens9.c:467
 msgid "PCONVOLVE: less sound than expected!"
@@ -10029,21 +10047,18 @@ msgid "Min and max the same"
 msgstr ""
 
 #: Opcodes/uggab.c:236
-#, fuzzy
 msgid "table not found in poscil"
-msgstr "GEN30: source ftable non trovata"
+msgstr "tavola non trovata in poscil"
 
 #: Opcodes/uggab.c:261 Opcodes/uggab.c:292 Opcodes/uggab.c:329
 #: Opcodes/uggab.c:366
-#, fuzzy
 msgid "poscil: not initialised"
-msgstr "oscil: non inizializzato"
+msgstr "poscil: non inizializzato"
 
 #: Opcodes/uggab.c:421 Opcodes/uggab.c:476 Opcodes/uggab.c:532
 #: Opcodes/uggab.c:589
-#, fuzzy
 msgid "poscil3: not initialised"
-msgstr "oscil3: non inizializzato"
+msgstr "poscil3: non inizializzato"
 
 #: Opcodes/uggab.c:675
 msgid "losc: no sample rate stored in function assuming=sr\n"
@@ -10063,9 +10078,8 @@ msgid "loop opcode: wrong argument count"
 msgstr ""
 
 #: Opcodes/uggab.c:1297
-#, fuzzy
 msgid "vibrato@ Phase out of range"
-msgstr "Numero dispositivo fuori range"
+msgstr "vibrato@ Fase fuori intervallo"
 
 #: Opcodes/uggab.c:1357 Opcodes/uggab.c:1400
 msgid "vibrato(krate): not initialised"
@@ -10075,34 +10089,34 @@ msgstr "vibrato(krate): non inizializzato"
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr "vcomb: non inizializzato"
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr "valpass: non inizializzato"
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -10111,12 +10125,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -10124,128 +10138,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr "ATSREAD: non inizializzato"
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr "ATSREADNZ: non inizializzato"
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr "ATSADD: non inizializzato"
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -10309,7 +10323,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10323,153 +10337,182 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
-#, fuzzy
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
-msgstr "termini insufficienti"
+msgstr "speakers validi insufficienti"
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
-#, fuzzy, c-format
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
+#, c-format
 msgid "could not find layout table no.%d"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "non riesco a trovare la tavola di layout no.%d"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
-#, fuzzy
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
-msgstr "Manca endin"
+msgstr "Mancano dei campi in vbapmove\n"
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
-#, fuzzy
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
-msgstr "table: non inizializzato"
+msgstr "Array d'output non inizializzato"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
-#, fuzzy
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
-msgstr "non posso trovare lo strumento %f che suona indefinitamente\n"
+msgstr "non riesco a trovare la tavola di layout no.0"
 
-#: Opcodes/vbap_n.c:780
-#, fuzzy
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
-msgstr "table: non inizializzato"
+msgstr "Array d'output in vpabmove non inizializzato"
 
 #: Opcodes/vbap_zak.c:355 Opcodes/vbap_zak.c:400
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr "vpvoc: non inizializzato"
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr "vstinit: Errore nel caricare l'effetto."
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr "vstaudio: troppi argomenti in input"
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10497,61 +10540,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10584,847 +10627,872 @@ msgid "wiimote %d does not exist"
 msgstr ""
 
 #: Opcodes/wiimote.c:351
-#, fuzzy
 msgid "Not open"
-msgstr "Non #define"
+msgstr "Non aperto"
 
 #: Opcodes/wiimote.c:374
 msgid "No wii range"
 msgstr ""
 
 #: Top/argdecode.c:86
-#, fuzzy, c-format
+#, c-format
 msgid "Error opening log file '%s': %s\n"
-msgstr "errore nel processamento del file %s\n"
+msgstr "Errore in apertura del file di log '%s': %s\n"
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
-msgstr ""
+msgid "--version   print version details"
+msgstr "--version   stampa i dettagli della versione"
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
-msgstr ""
+msgid "-U unam     run utility program unam"
+msgstr "-U unam     avvia il programma di utilit?? unam"
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
-msgstr ""
+msgid "-C          use Cscore processing of scorefile"
+msgstr "-C          usa il processamento di Cscore del scorefile"
 
 #: Top/argdecode.c:128
-#, fuzzy
-msgid "-j N\tuse N threads in performance"
-msgstr ""
-"\n"
-"%d errori nell'esecuzione\n"
+msgid "-j N        use N threads in performance"
+msgstr "-j N        usa N threads per la perfomance"
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
-msgstr ""
+msgid "-I          I-time only orch run"
+msgstr "-I          esecuzione dell'orchestra solo a I-time"
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
-msgstr ""
+msgid "-n          no sound onto disk"
+msgstr "-n          nessun audio su disco"
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
-msgstr ""
+msgid "-i fnam     sound input filename"
+msgstr "-i fnam     nome del file audio in input"
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
-msgstr ""
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
+msgstr "-o fnam     nome del file audio d'output"
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
-msgstr ""
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
+msgstr "-A          crea un formato AIFF per il file audio d'output"
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
-msgstr ""
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
+msgstr "-W          crea un formato WAV per il file audio d'output"
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
-msgstr ""
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
+msgstr "-J          crea un formato IRCAM per il file audio d'output"
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
-msgstr ""
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
+msgstr "-h          nessun header sul file audio d'output"
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
-msgstr ""
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
+msgstr "-c          8-bit signed_char sound samples"
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
-msgstr ""
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
+msgstr "-a          alaw sound samples"
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
-msgstr ""
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
+msgstr "-8          8-bit unsigned_char sound samples"
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
-msgstr ""
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
+msgstr "-u          ulaw sound samples"
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
-msgstr ""
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
+msgstr "-s          short_int sound samples"
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
-msgstr ""
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
+msgstr "-l          long_int sound samples"
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
-msgstr ""
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
+msgstr "-f          float sound samples"
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
-msgstr ""
+msgid "-3          24bit sound samples"
+msgstr "-3          24bit sound samples"
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
-msgstr ""
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
+msgstr "-r N        sovrascrive la srate dell'orchestra"
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
-msgstr ""
+msgid "-k N        orchestra krate override"
+msgstr "-k N        sovrascrive la krate dell'orchestra"
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
-msgstr ""
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
+msgstr "-K          non generare i chunks PEAK"
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
-msgstr ""
-
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
-msgstr ""
-
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
-msgstr ""
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
+msgstr "-Q dnam     seleziona il dispositivo MIDI d'output"
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-#, fuzzy
-msgid "--nchnls=N\t\t override number of audio channels"
-msgstr "numero di canali non valido"
+msgid "                          key number to pfield N as linear octave"
+msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:283
+msgid "                          key number to pfield N as oct.pch"
+msgstr ""
+
+#: Top/argdecode.c:284
+msgid "--midi-velocity=N       route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:285
+msgid ""
+"                          velocity number to pfield N as MIDI value [0-127]"
+msgstr ""
+
+#: Top/argdecode.c:287
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
+msgstr ""
+
+#: Top/argdecode.c:289
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
+msgstr ""
+
+#: Top/argdecode.c:290
+msgid "--sample-accurate       use sample-accurate timing of score events"
+msgstr ""
+
+#: Top/argdecode.c:291
+msgid "--realtime              realtime priority mode"
+msgstr ""
+
+#: Top/argdecode.c:292
+msgid "--nchnls=N              override number of audio channels"
+msgstr "--nchnls=N              sovrascrive il numero di canali audio"
+
+#: Top/argdecode.c:293
+msgid "--nchnls_i=N            override number of input audio channels"
 msgstr ""
+"--nchnls_i=N              sovrascrive il numero di canali audio d'input"
 
-#: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+#: Top/argdecode.c:294
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
 msgstr ""
 
-#: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
-#: Top/argdecode.c:285
+#: Top/argdecode.c:296
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
 msgstr ""
 
-#: Top/argdecode.c:287
+#: Top/argdecode.c:298
 msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
 msgstr ""
 
-#: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
 msgstr ""
 
-#: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
 msgstr ""
 
-#: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
 msgstr ""
 
-#: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
 msgstr ""
 
-#: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
 msgstr ""
 
-#: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
 msgstr ""
 
-#: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
+msgstr ""
+
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
-#, fuzzy
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
-msgstr "rtaudio: modulo JACK abilitato\n"
+msgstr "abilitata modalit?? tempo reale\n"
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
-#, fuzzy
+#: Top/argdecode.c:1488
 msgid "no number of threads"
-msgstr "numero di argomenti sbagliato"
+msgstr "nessun numero di threads"
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
-#, fuzzy, c-format
+#: Top/argdecode.c:1802
+#, c-format
 msgid "%d audio output devices \n"
-msgstr "dispositivo selezionato: %u \n"
+msgstr "%d dispositivi audio d'output \n"
 
-#: Top/argdecode.c:1758
-#, fuzzy, c-format
+#: Top/argdecode.c:1805
+#, c-format
 msgid "%d audio input devices \n"
-msgstr "I dispositivi di input disponibili sono:\n"
+msgstr "%d dispositivi audio d'input \n"
 
-#: Top/argdecode.c:1773
-#, fuzzy, c-format
+#: Top/argdecode.c:1820
+#, c-format
 msgid "%d MIDI output devices \n"
-msgstr "Apertura del file del dispositivo di output MIDI '%s'\n"
+msgstr "%d dispositivi MIDI d'output \n"
 
-#: Top/argdecode.c:1776
-#, fuzzy, c-format
+#: Top/argdecode.c:1823
+#, c-format
 msgid "%d MIDI input devices \n"
-msgstr "Apertura del file del dispositivo di input MIDI '%s'\n"
+msgstr "%d dispositivi MIDI d'input \n"
 
 #: Top/cscorfns.c:285
 msgid "PMAX exceeded, string event truncated.\n"
@@ -11565,336 +11633,341 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
-#, fuzzy, c-format
+#: Top/csound.c:117
+#, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
-msgstr "Csound versione %s beta (double samples) %s\n"
+msgstr ""
+"--versione Csound %s beta (double samples) %s \n"
+"[commit: %s]\n"
 
-#: Top/csound.c:120
-#, fuzzy, c-format
+#: Top/csound.c:122
+#, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
-msgstr "Csound versione %s (double samples) %s\n"
+msgstr ""
+"--versione Csound %s (double samples) %s \n"
+"[commit: %s]\n"
 
-#: Top/csound.c:127
-#, fuzzy, c-format
+#: Top/csound.c:129
+#, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
-msgstr "Csound versione %s beta (float samples) %s\n"
+msgstr ""
+"--versione Csound %s beta (float samples) %s \n"
+"[commit: %s]\n"
 
-#: Top/csound.c:132
-#, fuzzy, c-format
+#: Top/csound.c:134
+#, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
-msgstr "Csound versione %s (float samples) %s\n"
+msgstr ""
+"--versione Csound %s (float samples) %s \n"
+"[commit: %s]\n"
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr "ATTENZIONE: "
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 #, fuzzy
 msgid "setting dummy interface\n"
 msgstr "uso dell'interfaccia callback\n"
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
-#, fuzzy
+#: Top/csound.c:3392
 msgid "Real time audio module name"
-msgstr "PortAudio modulo audio in tempo reale per Csound\n"
+msgstr "Nome modulo audio per tempo reale"
 
-#: Top/csound.c:3345
-#, fuzzy
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
-msgstr "rtmidi: PortMIDI modulo abilitato\n"
+msgstr "Nome modulo MIDI per tempo reale"
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
-#, fuzzy, c-format
+#: Top/main.c:65
+#, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
-msgstr "Impossibile aprire il file #include %s"
+msgstr "ATTENZIONE: non posso aprire il file csound6rc %s\n"
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, fuzzy, c-format
-msgid "Failed to open input file - %s\n"
-msgstr "Non è possibile aprire il file di input %s"
+msgid "main: failed to open input file - %s\n"
+msgstr "Fallita apertura del file d'input - %s\n"
 
-#: Top/main.c:254
-#, fuzzy
+#: Top/main.c:255
 msgid "cannot compile orchestra"
-msgstr "impossibile aprire l'orchestra file %s"
+msgstr "non posso compilare l'orchestra"
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11945,19 +12018,18 @@ msgid " *** type of option '%s' is not boolean"
 msgstr ""
 
 #: Top/new_opts.c:147 Top/new_opts.c:153 Top/new_opts.c:165
-#, fuzzy, c-format
+#, c-format
 msgid " *** '%s': invalid option name"
-msgstr "%s frequenza dei segnali di controllo (kr) non valida"
+msgstr " *** '%s': nome opzione non valido"
 
 #: Top/new_opts.c:175
-#, fuzzy
 msgid " *** memory allocation failure"
-msgstr "allocazione di memoria fallita"
+msgstr "*** allocazione di memoria fallita"
 
 #: Top/new_opts.c:197
-#, fuzzy, c-format
+#, c-format
 msgid " *** error setting option '%s' to '%s': %s"
-msgstr " *** errore in apertura del file MIDI '%s': %s"
+msgstr " *** errore nell'impostare l'opzione '%s' a '%s': %s"
 
 #: Top/new_opts.c:207
 msgid " *** Type 'csound --help' for the list of available options."
@@ -11992,169 +12064,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr "manca \" per finire la stringa"
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
-#, fuzzy
+#: Top/one_file.c:649
 msgid "and cannot remove"
-msgstr "Impossibile riaprire %s"
+msgstr "e non riesco a rimuovere"
 
-#: Top/one_file.c:474 Top/one_file.c:483
-#, fuzzy, c-format
+#: Top/one_file.c:654 Top/one_file.c:663
+#, c-format
 msgid "and cannot remove %s"
-msgstr "Impossibile riaprire %s"
+msgstr "e non riesco a rimuovere %s"
 
-#: Top/one_file.c:487
-#, fuzzy, c-format
+#: Top/one_file.c:667
+#, c-format
 msgid "opened %s\n"
-msgstr "Impossibile aprire %s"
+msgstr "aperto %s\n"
 
-#: Top/one_file.c:490
-#, fuzzy, c-format
+#: Top/one_file.c:670
+#, c-format
 msgid "closing %s\n"
-msgstr "errore chiusura disositivo di input"
+msgstr "chiusura %s\n"
 
-#: Top/one_file.c:493
-#, fuzzy, c-format
+#: Top/one_file.c:673
+#, c-format
 msgid "and cannot remove %s\n"
-msgstr "Impossibile riaprire %s"
+msgstr "e non riesco a rimuovere %s\n"
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -12167,26 +12256,78 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+#, fuzzy
+msgid "UDP: error creating socket"
+msgstr "Errore nella creazione del socket"
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+#, fuzzy
+msgid "UDP: sock end failed"
+msgstr "CLsend fallito"
+
+#: Top/server.c:112
+#, fuzzy, c-format
+msgid "UDP server started on port %d \n"
+msgstr "OSC ascoltatore #%d avviato sulla porta %s\n"
+
+#: Top/server.c:184
+#, fuzzy, c-format
+msgid "could not retrieve channel %s"
+msgstr "Non posso recuperare il numero massimo di canali"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+#, fuzzy
+msgid "error creating socket"
+msgstr "Errore nella creazione del socket"
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+#, fuzzy
+msgid "UDP Server: failed to allocate memory"
+msgstr "OSC: fallita allocazione delle globali"
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr "util %s:\n"
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -12201,8 +12342,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -12327,171 +12468,170 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
-#, fuzzy
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "Fallita scrittura\n"
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12519,48 +12659,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12582,43 +12722,43 @@ msgstr ""
 
 #: util/dnoise.c:360
 msgid "no t argument"
-msgstr ""
+msgstr "nessun argomento t"
 
 #: util/dnoise.c:383
 msgid "no n argument"
-msgstr ""
+msgstr "nessun argomento n"
 
 #: util/dnoise.c:388
 msgid "no b argument"
-msgstr ""
+msgstr "nessun argomento b"
 
 #: util/dnoise.c:396
 msgid "no B argument"
-msgstr ""
+msgstr "nessun argomento B"
 
 #: util/dnoise.c:408
 msgid "no E argument"
-msgstr ""
+msgstr "nessun argomento E"
 
 #: util/dnoise.c:412
 msgid "no N argument"
-msgstr ""
+msgstr "nessun argomento N"
 
 #: util/dnoise.c:416
 msgid "no M argument"
-msgstr ""
+msgstr "nessun argomento M"
 
 #: util/dnoise.c:420
 msgid "no L argument"
-msgstr ""
+msgstr "nessun argomento L"
 
 #: util/dnoise.c:424
 msgid "no w argument"
-msgstr ""
+msgstr "nessun argomento w"
 
 #: util/dnoise.c:428
 msgid "no D argument"
-msgstr ""
+msgstr "nessun argomento D"
 
 #: util/dnoise.c:435 util/srconv.c:332
 #, c-format
@@ -12695,125 +12835,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr "flags:"
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12821,7 +12961,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12957,87 +13097,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -13120,120 +13260,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -13245,14 +13385,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
-#, fuzzy
 msgid "Read failure\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "Falita lettura\n"
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -13265,9 +13404,8 @@ msgid "translate text file to linear predictive coding file"
 msgstr ""
 
 #: util/lpci_main.c:85
-#, fuzzy
 msgid "memory allocation failure\n"
-msgstr "allocazione di memoria fallita"
+msgstr "allocazione di memoria fallita\n"
 
 #: util/lpci_main.c:91
 msgid "Ill formed data\n"
@@ -13290,10 +13428,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13387,47 +13577,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13449,9 +13639,8 @@ msgid "Not a PV file\n"
 msgstr ""
 
 #: util/pv_import.c:133
-#, fuzzy
 msgid "Memory failure\n"
-msgstr "Allocazione di memoria fallita"
+msgstr "Fallimento della memoria\n"
 
 #: util/pv_import.c:144
 msgid "Sync error\n"
@@ -13641,7 +13830,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13668,7 +13857,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13684,37 +13873,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13873,39 +14062,51 @@ msgid "srconv: invalid x values in time-vary function"
 msgstr ""
 
 #: util/srconv.c:486
-#, fuzzy, c-format
+#, c-format
 msgid "libsndfile error: %s\n"
-msgstr "%s: errore: %s\n"
+msgstr "errore libsndfile: %s\n"
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13930,9 +14131,8 @@ msgid "-Z integer\tsample number at which to end file\n"
 msgstr ""
 
 #: util/xtrct.c:73
-#, fuzzy
 msgid "-Q integer\tnumber of samples to read\n"
-msgstr "\t numero di campioni fuori portata:"
+msgstr "-Q intero\tnumero di campioni da leggere\n"
 
 #: util/xtrct.c:75
 msgid "-T fpnum\ttime in secs at which to start file\n"
@@ -14080,116 +14280,138 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr "scot: %d errori.\n"
 
+#~ msgid " merging constants %d) %f\n"
+#~ msgstr " unione delle costanti %d) %f\n"
+
+#~ msgid "input message kcount, %d, %d.%06d\n"
+#~ msgstr "messaggio in input kcount, %d, %d.%06d\n"
+
+#~ msgid "Seeding from current time %lu\n"
+#~ msgstr "Seme dal tempo attuale %lu\n"
+
+#~ msgid "Farey: Filter type < 1"
+#~ msgstr "Farey: tipo filtro < 1"
+
+#~ msgid "printi parameter was not a \"quoted string\""
+#~ msgstr "parametro di printi non ?? una \"stringa quotata\""
+
+#~ msgid "Error: %s, %s"
+#~ msgstr "Errore: %s, %s"
+
+#, fuzzy
+#~ msgid "perf-pass statements illegal in header blk (%s)\n"
+#~ msgstr "dichiarazione d'esecuzione non valida nel blocco header\n"
+
 #~ msgid "Macro expansion symbol ($) without macro name"
 #~ msgstr "Simbolo di espansione macro ($) senza il nome della macro"
 
@@ -14318,9 +14540,6 @@ msgstr "scot: %d errori.\n"
 #~ msgid "unmatched quotes"
 #~ msgstr "virgolette senza corrispondenza"
 
-#~ msgid "missing or extra arg"
-#~ msgstr "argomento mancante o in più"
-
 #, fuzzy
 #~ msgid "too many input args\n"
 #~ msgstr "troppi argomenti in input"
@@ -14403,16 +14622,13 @@ msgstr "scot: %d errori.\n"
 #~ msgid ""
 #~ "output name previously used, type 'w' must be uniquely defined, line %d"
 #~ msgstr ""
-#~ "nome di output già usato, il tipo '%c' deve essere definito unicamente"
+#~ "nome di output gi?? usato, il tipo '%c' deve essere definito unicamente"
 
 #~ msgid "create_instrument: instr name %s\n"
 #~ msgstr "create_instrument: nome dello strumento %s\n"
 
-#~ msgid "bad value for 0dbfs: must be positive."
-#~ msgstr "pessimo valore per 0dbfs: deve essere positivo."
-
 #~ msgid "schedule event ignored. instr %d undefined\n"
-#~ msgstr "evento programmato ignorato. Lo strumento %d non è definito\n"
+#~ msgstr "evento programmato ignorato. Lo strumento %d non ?? definito\n"
 
 #, fuzzy
 #~ msgid "instr %s pmax = %d, note pcnt = %d"
@@ -14511,16 +14727,16 @@ msgstr "scot: %d errori.\n"
 
 #, fuzzy
 #~ msgid "instr %s expects midi event data, cannot run from score\n"
-#~ msgstr "lo strumento %s aspetta eventi midi, non può suonare dalla score\n"
+#~ msgstr "lo strumento %s aspetta eventi midi, non pu?? suonare dalla score\n"
 
 #~ msgid "instr %d expects midi event data, cannot run from score\n"
-#~ msgstr "lo strumento %d aspetta eventi midi, non può suonare dalla score\n"
+#~ msgstr "lo strumento %d aspetta eventi midi, non pu?? suonare dalla score\n"
 
 #~ msgid "multiple string p-fields"
 #~ msgstr "multiple stringhe p-fields"
 
 #~ msgid "string p-field is too long"
-#~ msgstr "la stringa in p-field è troppo lunga"
+#~ msgstr "la stringa in p-field ?? troppo lunga"
 
 #~ msgid "instr %ld redefined"
 #~ msgstr "strumento %ld ridefinito"
@@ -14626,7 +14842,7 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "numero di strumento illecito"
 
 #~ msgid "No opcode name"
-#~ msgstr "Non c'è il nome dell'opcode"
+#~ msgstr "Non c'?? il nome dell'opcode"
 
 #~ msgid ""
 #~ "opcode declaration error (usage: opcode name, outtypes, intypes) -- "
@@ -14682,7 +14898,7 @@ msgstr "scot: %d errori.\n"
 #~ "dichiarazione 'elseif' non valida.  Deve aver un corrispondente 'if'"
 
 #~ msgid "'elseif' statement cannot occur after an 'else'"
-#~ msgstr "una dichiarazione 'elseif' non può venire dopo un 'else'"
+#~ msgstr "una dichiarazione 'elseif' non pu?? venire dopo un 'else'"
 
 #, fuzzy
 #~ msgid "Unmatched comment"
@@ -14721,7 +14937,7 @@ msgstr "scot: %d errori.\n"
 
 #~ msgid "setksmps is allowed only in user defined opcodes"
 #~ msgstr ""
-#~ "setksmps è permesso solo in user defined opcodes (opcode definito "
+#~ "setksmps ?? permesso solo in user defined opcodes (opcode definito "
 #~ "dall'utente)"
 
 #~ msgid "multiple uses of setksmps in the same opcode definition"
@@ -14731,7 +14947,7 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "%s incompatibile con canali globali (%d); sostituito con %s\n"
 
 #~ msgid "opcode blks cannot be nested (missing 'endop'?)"
-#~ msgstr "il blocco opcode non può essere innestato (manca 'endop'?)"
+#~ msgstr "il blocco opcode non pu?? essere innestato (manca 'endop'?)"
 
 #~ msgid "opcode not allowed in instr block"
 #~ msgstr "opcode non permesso nel blocco strumento"
@@ -14747,7 +14963,7 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "instr non permesso nel blocco opcode"
 
 #~ msgid "instr blocks cannot be nested (missing 'endin'?)"
-#~ msgstr "il blocco strumento non può essere innestato (manca 'endin'?)"
+#~ msgstr "il blocco strumento non pu?? essere innestato (manca 'endin'?)"
 
 #~ msgid "endin not allowed in opcode blk"
 #~ msgstr "endin non permesso nel blocco opcode"
@@ -14759,20 +14975,17 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "opcode messo male"
 
 #~ msgid "xout is allowed only in user defined opcodes"
-#~ msgstr "xout è permesso solo in udo (opcode definito dall'utente)"
+#~ msgstr "xout ?? permesso solo in udo (opcode definito dall'utente)"
 
 #~ msgid "multiple uses of xout in the same opcode definition"
 #~ msgstr "uso di multipli xout nella stessa definizione di opcode"
 
-#~ msgid "too many input args"
-#~ msgstr "troppi argomenti in input"
-
 #, fuzzy
 #~ msgid "insufficient required arguments"
 #~ msgstr "gli argomenti richiesti sono insufficienti"
 
 #~ msgid "xin is allowed only in user defined opcodes"
-#~ msgstr "xin è permesso solo in udo (opcode definito dall'utente)"
+#~ msgstr "xin ?? permesso solo in udo (opcode definito dall'utente)"
 
 #~ msgid "multiple uses of xin in the same opcode definition"
 #~ msgstr "uso di multipli xin nella stessa definizione di opcode"
@@ -14782,7 +14995,7 @@ msgstr "scot: %d errori.\n"
 
 #~ msgid "output name previously used, type '%c' must be uniquely defined"
 #~ msgstr ""
-#~ "nome di output già usato, il tipo '%c' deve essere definito unicamente"
+#~ "nome di output gi?? usato, il tipo '%c' deve essere definito unicamente"
 
 #~ msgid "output arg '%s' illegal type"
 #~ msgstr "argomento di output '%s' di tipo illegale"
@@ -14827,7 +15040,7 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "Linea %d: carattere sconosciuto: '%s'\n"
 
 #~ msgid "Cannot open file \"%s\"\n"
-#~ msgstr "Non è possibile aprire il file: \"%s\"\n"
+#~ msgstr "Non ?? possibile aprire il file: \"%s\"\n"
 
 #~ msgid "cannot find end of file %s"
 #~ msgstr "impossibile trovare la fine del file %s"
@@ -14845,13 +15058,13 @@ msgstr "scot: %d errori.\n"
 #~ msgstr "  alla linea %d del file di input %s%s"
 
 #~ msgid "Loop cannot start inside of a macro"
-#~ msgstr "Il loop non può partire da dentro una macro"
+#~ msgstr "Il loop non pu?? partire da dentro una macro"
 
 #~ msgid "Repeat cannot start inside of a macro (ignored)"
-#~ msgstr "Repeat non può partire da dentro una macro (ignorato)"
+#~ msgstr "Repeat non pu?? partire da dentro una macro (ignorato)"
 
 #~ msgid "Ignoring name %s not in file\n"
-#~ msgstr "Ignorato il nome %s non è nel file\n"
+#~ msgstr "Ignorato il nome %s non ?? nel file\n"
 
 #, fuzzy
 #~ msgid "rtaudio: AuHAL module enabled\n"
@@ -14869,11 +15082,11 @@ msgstr "scot: %d errori.\n"
 
 #~ msgid "cannot open %s.  Not in cur dir, SSDIR or SFDIR as defined"
 #~ msgstr ""
-#~ "impossibile aprire %s.  Non è nella directory corrente ne in SSDIR o "
+#~ "impossibile aprire %s.  Non ?? nella directory corrente ne in SSDIR o "
 #~ "SFDIR (come definite)"
 
 #~ msgid "cannot open %s, SFDIR undefined"
-#~ msgstr "impossibile aprire %s, SFDIR non è definita"
+#~ msgstr "impossibile aprire %s, SFDIR non ?? definita"
 
 #, fuzzy
 #~ msgid "openout: illegal dirtyp"
@@ -14881,7 +15094,7 @@ msgstr "scot: %d errori.\n"
 
 #~ msgid "cannot open %s.  Not in cur dir, INCDIR SSDIR or SFDIR as defined"
 #~ msgstr ""
-#~ "impossibile aprire %s.  Non è nella directory corrente nè in INCDIR, "
+#~ "impossibile aprire %s.  Non ?? nella directory corrente n?? in INCDIR, "
 #~ "SSDIR o SFDIR (come definite)"
 
 #, fuzzy
diff --git a/po/romanian.po b/po/romanian.po
index 368a409..b448272 100644
--- a/po/romanian.po
+++ b/po/romanian.po
@@ -34,7 +34,7 @@ msgstr ""
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -101,7 +101,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -109,11 +109,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -123,43 +123,43 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr ""
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr ""
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr ""
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr ""
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr ""
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr ""
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr ""
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr ""
 
@@ -172,11 +172,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -210,344 +210,349 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, c-format
+msgid "%s invalid number of samples"
+msgstr ""
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
+msgid "create_instrument: instr num %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr ""
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr ""
@@ -562,212 +567,203 @@ msgstr ""
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 msgid "No number following instr\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr ""
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr ""
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr ""
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -815,7 +811,7 @@ msgstr ""
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr ""
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr ""
 
@@ -832,14 +828,14 @@ msgstr ""
 msgid "ftable %d now deleted\n"
 msgstr ""
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr ""
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr ""
@@ -870,10 +866,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -886,13 +882,13 @@ msgid "illegal x interval"
 msgstr ""
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr ""
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr ""
 
@@ -924,102 +920,102 @@ msgstr ""
 msgid "illegal xamp value"
 msgstr ""
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr ""
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr ""
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr ""
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr ""
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr ""
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr ""
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr ""
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr ""
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr ""
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr ""
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr ""
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr ""
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr ""
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr ""
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr ""
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr ""
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr ""
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1039,7 +1035,7 @@ msgid "replacing previous ftable %d"
 msgstr ""
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1105,7 +1101,7 @@ msgid "GEN1 read error"
 msgstr ""
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1117,7 +1113,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr ""
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1130,56 +1126,64 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
 msgstr ""
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
+msgid "activating instr %d at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:127
@@ -1192,12 +1196,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 
@@ -1211,244 +1215,239 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr ""
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr ""
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr ""
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr ""
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
 msgstr ""
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1456,121 +1455,137 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr ""
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
+msgid "memory allocate failure for %zu"
 msgstr ""
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, c-format
+msgid "failed to open file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:54
+#, c-format
+msgid "failed to read file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr ""
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr ""
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr ""
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1623,7 +1638,7 @@ msgstr ""
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr ""
 
@@ -1631,8 +1646,8 @@ msgstr ""
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1642,107 +1657,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1752,30 +1767,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr ""
 
@@ -1784,9 +1799,9 @@ msgstr ""
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, c-format
-msgid "Failed to open input file %s\n"
+msgid "parser: failed to open input file %s\n"
 msgstr ""
 
 #: Engine/new_orc_parser.c:187
@@ -1810,259 +1825,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2113,11 +2132,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2148,138 +2167,138 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr ""
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr ""
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr ""
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr ""
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2449,133 +2468,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr ""
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr ""
 
@@ -2883,285 +2902,285 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3180,11 +3199,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr ""
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3217,10 +3241,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3289,19 +3313,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3309,25 +3333,25 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3335,144 +3359,144 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3480,68 +3504,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3721,291 +3745,291 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr ""
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr ""
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
 msgstr ""
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
 msgstr ""
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
 msgstr ""
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4036,7 +4060,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4057,68 +4081,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4154,35 +4178,35 @@ msgstr ""
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr ""
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr ""
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4190,7 +4214,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4200,12 +4224,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr ""
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr ""
@@ -4233,27 +4257,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr ""
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4290,37 +4314,37 @@ msgstr ""
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr ""
 
@@ -4383,7 +4407,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr ""
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4463,11 +4487,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4501,11 +4525,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4517,164 +4541,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr ""
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr ""
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr ""
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr ""
 
@@ -4944,31 +4968,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr ""
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr ""
 
@@ -5040,17 +5068,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5115,104 +5143,104 @@ msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr ""
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr ""
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5229,91 +5257,97 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr ""
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr ""
 
@@ -5396,11 +5430,6 @@ msgstr ""
 msgid "oscil3: not initialised"
 msgstr ""
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr ""
@@ -5417,42 +5446,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr ""
 
@@ -5492,120 +5521,115 @@ msgstr ""
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr ""
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr ""
 
@@ -5663,8 +5687,8 @@ msgstr ""
 msgid "deltap3: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5684,11 +5708,11 @@ msgstr ""
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr ""
 
@@ -5821,191 +5845,190 @@ msgstr ""
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr ""
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+msgid "Insufficient arguments in formatted printing"
+msgstr ""
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, c-format
 msgid "table: could not find ftable %d"
 msgstr ""
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr ""
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr ""
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
 msgstr ""
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr ""
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr ""
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr ""
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, c-format
 msgid "Invalid ftable no. %d"
 msgstr ""
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr ""
 
@@ -6086,7 +6109,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr ""
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6098,182 +6121,197 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
 msgstr ""
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr ""
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6298,7 +6336,7 @@ msgstr ""
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6381,21 +6419,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6435,133 +6473,133 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6569,27 +6607,35 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 msgid "insufficient arguments for fareytable"
 msgstr ""
@@ -6599,9 +6645,9 @@ msgstr ""
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6614,10 +6660,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6628,7 +6670,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6636,53 +6678,53 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, c-format
 msgid "could not find DSP %p for deletion"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6699,31 +6741,31 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6740,7 +6782,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr ""
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
 msgstr ""
 
@@ -6749,27 +6791,27 @@ msgstr ""
 msgid "error opening file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 msgid "fouti: invalid file handle"
 msgstr ""
 
@@ -6823,13 +6865,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr ""
 
@@ -6854,12 +6896,12 @@ msgstr ""
 msgid "Error deleting ftable %d"
 msgstr ""
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -6904,29 +6946,29 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -6952,44 +6994,40 @@ msgstr ""
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
 msgstr ""
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7029,7 +7067,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr ""
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
 msgstr ""
 
@@ -7213,345 +7251,345 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
 msgstr ""
 
@@ -7637,15 +7675,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7655,7 +7693,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr ""
 
@@ -7671,54 +7709,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -7861,69 +7899,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -7958,15 +8016,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
 msgstr ""
 
@@ -8074,17 +8132,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr ""
@@ -8117,93 +8175,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8219,6 +8277,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8285,37 +8351,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8323,7 +8389,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8394,8 +8460,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8418,16 +8483,16 @@ msgstr ""
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr ""
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr ""
 
@@ -8441,12 +8506,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8459,17 +8524,8 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
 msgstr ""
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
@@ -8532,7 +8588,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8545,30 +8601,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8576,8 +8632,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8595,39 +8651,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr ""
 
@@ -8643,7 +8699,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8768,19 +8824,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8818,12 +8874,12 @@ msgstr ""
 msgid "fsig format not supported"
 msgstr ""
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9120,125 +9176,125 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9312,31 +9368,35 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr ""
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
 msgstr ""
 
@@ -9359,20 +9419,20 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr ""
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr ""
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9392,161 +9452,166 @@ msgstr ""
 msgid "spat3di: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr ""
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr ""
@@ -9575,7 +9640,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9654,7 +9719,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9667,7 +9732,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9755,34 +9820,34 @@ msgstr ""
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -9791,12 +9856,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9804,128 +9869,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -9989,7 +10054,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10003,113 +10068,114 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
 msgstr ""
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, c-format
 msgid "could not find layout table no.%d"
 msgstr ""
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
 msgstr ""
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
 msgstr ""
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
 msgstr ""
 
@@ -10117,34 +10183,67 @@ msgstr ""
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr ""
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10172,61 +10271,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10272,824 +10371,855 @@ msgid "Error opening log file '%s': %s\n"
 msgstr ""
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
-msgstr ""
-
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
-msgstr ""
-
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-msgid "--nchnls=N\t\t override number of audio channels"
+msgid "                          key number to pfield N as linear octave"
 msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
+msgid "--nchnls=N              override number of audio channels"
 msgstr ""
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
+msgid "--nchnls_i=N            override number of input audio channels"
 msgstr ""
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr ""
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr ""
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr ""
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11233,332 +11363,332 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr ""
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr ""
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, c-format
-msgid "Failed to open input file - %s\n"
+msgid "main: failed to open input file - %s\n"
 msgstr ""
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr ""
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11655,168 +11785,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr ""
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr ""
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr ""
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr ""
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -11829,26 +11977,74 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr ""
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, c-format
+msgid "could not retrieve channel %s"
+msgstr ""
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr ""
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+msgid "UDP Server: failed to allocate memory"
+msgstr ""
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -11863,8 +12059,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -11989,170 +12185,170 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12180,48 +12376,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12356,125 +12552,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12482,7 +12678,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12618,87 +12814,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12781,120 +12977,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -12906,13 +13102,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -12949,10 +13145,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13046,47 +13294,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13299,7 +13547,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13326,7 +13574,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13342,37 +13590,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13535,35 +13783,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr ""
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13737,112 +13997,112 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
diff --git a/po/russian.po b/po/russian.po
index 3cf0f27..d36b7fe 100644
--- a/po/russian.po
+++ b/po/russian.po
@@ -33,7 +33,7 @@ msgstr ""
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -100,7 +100,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -108,11 +108,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -122,43 +122,43 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr ""
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr ""
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr ""
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr ""
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr ""
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr ""
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr ""
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr ""
 
@@ -171,11 +171,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -209,344 +209,349 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, fuzzy, c-format
+msgid "%s invalid number of samples"
+msgstr "неправильный число аргументов"
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
+msgid "create_instrument: instr num %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr ""
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, fuzzy, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr "недостаточные аргументы"
@@ -561,213 +566,204 @@ msgstr ""
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 #, fuzzy
 msgid "No number following instr\n"
 msgstr "неправильный число аргументов входного сигнала"
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr ""
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr ""
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr ""
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -816,7 +812,7 @@ msgstr ""
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr ""
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 #, fuzzy
 msgid "instrument number out of range"
 msgstr "неправильный число аргументов"
@@ -834,14 +830,14 @@ msgstr ""
 msgid "ftable %d now deleted\n"
 msgstr ""
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr ""
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr ""
@@ -872,10 +868,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -888,13 +884,13 @@ msgid "illegal x interval"
 msgstr ""
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr "недостаточные аргументы"
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr ""
 
@@ -926,102 +922,102 @@ msgstr ""
 msgid "illegal xamp value"
 msgstr ""
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr ""
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr ""
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr "неправильный число аргументов"
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr ""
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr ""
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr ""
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr "неправильный число аргументов входного сигнала"
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr ""
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr ""
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr ""
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr ""
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr ""
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr ""
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr ""
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr ""
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr ""
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr ""
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1041,7 +1037,7 @@ msgid "replacing previous ftable %d"
 msgstr ""
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1107,7 +1103,7 @@ msgid "GEN1 read error"
 msgstr ""
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1119,7 +1115,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr ""
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1132,56 +1128,65 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
-msgstr ""
+#: Engine/fgens.c:3299
+#, fuzzy
+msgid "GEN53: invalid source table length:"
+msgstr "неправильный число аргументов"
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
+msgid "activating instr %d at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:127
@@ -1194,12 +1199,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 
@@ -1213,245 +1218,240 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr ""
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr ""
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr ""
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 #, fuzzy
 msgid "Failed to set file status\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1459,121 +1459,137 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr ""
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
+msgid "memory allocate failure for %zu"
 msgstr ""
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, fuzzy, c-format
+msgid "failed to open file %s\n"
+msgstr "%s: не выступлено с иничиативой"
+
+#: Engine/memfiles.c:54
+#, fuzzy, c-format
+msgid "failed to read file %s\n"
+msgstr "%s: не выступлено с иничиативой"
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr ""
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr ""
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr ""
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1626,7 +1642,7 @@ msgstr ""
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr ""
 
@@ -1634,8 +1650,8 @@ msgstr ""
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1645,107 +1661,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1755,30 +1771,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr ""
 
@@ -1787,10 +1803,10 @@ msgstr ""
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
-#, c-format
-msgid "Failed to open input file %s\n"
-msgstr ""
+#: Engine/new_orc_parser.c:149
+#, fuzzy, c-format
+msgid "parser: failed to open input file %s\n"
+msgstr "%s: не выступлено с иничиативой"
 
 #: Engine/new_orc_parser.c:187
 msgid "Unmatched #ifdef\n"
@@ -1813,259 +1829,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2116,11 +2136,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2151,138 +2171,138 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr ""
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr ""
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr ""
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr ""
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2452,133 +2472,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr ""
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr ""
 
@@ -2888,285 +2908,285 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr "неправильный число аргументов"
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3185,11 +3205,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, fuzzy, c-format
+msgid "requested device %d (%s) out of range"
+msgstr "неправильный число аргументов"
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3222,10 +3247,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3296,19 +3321,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3316,26 +3341,26 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 #, fuzzy
 msgid "put port not connected\n"
 msgstr "---> Не смогл соединиться \n"
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3343,145 +3368,145 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 #, fuzzy
 msgid "output port not connected\n"
 msgstr "---> Не смогл соединиться \n"
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3489,68 +3514,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3730,302 +3755,302 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 #, fuzzy
 msgid "FLsetsnap: invalid table"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr ""
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 #, fuzzy
 msgid "FLslider: invalid slider type"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 #, fuzzy
 msgid "FLknob: invalid knob type"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 #, fuzzy
 msgid "FLroller: invalid roller type"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 #, fuzzy
 msgid "FLkeyIn: invalid table number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 #, fuzzy
 msgid "FLsldBnkSet: invalid table number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 #, fuzzy
 msgid "FLsldBnkSet: invalid outable number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 #, fuzzy
 msgid "FLsldBnkSetk: invalid table number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 #, fuzzy
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 #, fuzzy
 msgid "FLslidBnkSetk: invalid table number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 #, fuzzy
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr "неправильный число аргументов"
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4056,7 +4081,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4077,68 +4102,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4176,35 +4201,35 @@ msgstr "неправильный число аргументов"
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr ""
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr ""
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4212,7 +4237,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4222,12 +4247,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr ""
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr ""
@@ -4255,27 +4280,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr ""
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4312,37 +4337,37 @@ msgstr ""
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr ""
 
@@ -4405,7 +4430,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr ""
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4485,11 +4510,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4523,11 +4548,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4539,164 +4564,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr ""
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr ""
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr ""
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr ""
 
@@ -4966,31 +4991,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr ""
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr ""
 
@@ -5062,17 +5091,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5137,106 +5166,106 @@ msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr ""
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 #, fuzzy
 msgid "insufficient arguments for format"
 msgstr "недостаточные аргументы"
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr ""
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 #, fuzzy
 msgid "invalid format"
 msgstr "неправильный число аргументов"
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5253,94 +5282,101 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+#, fuzzy
+msgid "incomplete number of input arguments"
+msgstr "неправильный число аргументов входного сигнала"
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 #, fuzzy
 msgid "linseg not initialised (krate)\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 #, fuzzy
 msgid "cosseg not initialised (krate)\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 #, fuzzy
 msgid "cosseg: not initialised (arate)\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 #, fuzzy
 msgid "cossegr: not initialised (arate)\n"
 msgstr "%s: не выступлено с иничиативой"
@@ -5424,11 +5460,6 @@ msgstr ""
 msgid "oscil3: not initialised"
 msgstr ""
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr ""
@@ -5445,42 +5476,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr ""
 
@@ -5520,120 +5551,115 @@ msgstr ""
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr ""
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr ""
 
@@ -5691,8 +5717,8 @@ msgstr ""
 msgid "deltap3: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5713,11 +5739,12 @@ msgstr ""
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
-msgstr ""
+#: OOps/ugens6.c:1176
+#, fuzzy
+msgid "reverb: not initialised"
+msgstr "%s: не выступлено с иничиативой"
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr ""
 
@@ -5850,193 +5877,193 @@ msgstr ""
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr ""
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+#, fuzzy
+msgid "Insufficient arguments in formatted printing"
+msgstr "недостаточные аргументы"
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, fuzzy, c-format
 msgid "table: could not find ftable %d"
 msgstr "%s: не выступлено с иничиативой"
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr ""
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr ""
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 #, fuzzy
 msgid "Failed to set multicast"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr ""
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr ""
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 #, fuzzy
 msgid "invalid number of arguments"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, fuzzy, c-format
 msgid "Invalid ftable no. %d"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr ""
 
@@ -6119,7 +6146,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6131,191 +6158,206 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 #, fuzzy
 msgid "array-variable not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 #, fuzzy
 msgid "array-variable not a vector"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 #, fuzzy
 msgid "array-variable dimensions do not match"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 #, fuzzy
 msgid "array-variable types do not match"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 #, fuzzy
 msgid "array-var not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr ""
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 #, fuzzy
 msgid "array sizes do not match\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 #, fuzzy
 msgid "requested row is out of range\n"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 #, fuzzy
 msgid "requested col is out of range\n"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 #, fuzzy
 msgid "Error: index out of range\n"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6340,7 +6382,7 @@ msgstr ""
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6427,21 +6469,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6482,134 +6524,134 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 #, fuzzy
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr "неправильный число аргументов"
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6617,27 +6659,35 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 #, fuzzy
 msgid "insufficient arguments for fareytable"
@@ -6648,9 +6698,9 @@ msgstr "недостаточные аргументы"
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6663,10 +6713,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6677,7 +6723,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6685,55 +6731,55 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, fuzzy, c-format
 msgid "could not find DSP %p for deletion"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 #, fuzzy
 msgid "wrong number of input args\n"
 msgstr "неправильный число аргументов входного сигнала"
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 #, fuzzy
 msgid "wrong number of output args\n"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6750,31 +6796,31 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6792,7 +6838,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 #, fuzzy
 msgid "invalid file name"
 msgstr "неправильный число аргументов"
@@ -6802,27 +6848,27 @@ msgstr "неправильный число аргументов"
 msgid "error opening file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 #, fuzzy
 msgid "fouti: invalid file handle"
 msgstr "неправильный число аргументов"
@@ -6877,13 +6923,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 #, fuzzy
 msgid "freeverb: not initialised"
 msgstr "%s: не выступлено с иничиативой"
@@ -6911,12 +6957,12 @@ msgstr "%s: не выступлено с иничиативой"
 msgid "Error deleting ftable %d"
 msgstr ""
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -6961,29 +7007,29 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -7009,45 +7055,41 @@ msgstr ""
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 #, fuzzy
 msgid "adsynt2: not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7089,7 +7131,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 #, fuzzy
 msgid "vphaseseg: invalid num. of elements"
 msgstr "неправильный число аргументов"
@@ -7284,362 +7326,362 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, fuzzy, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, fuzzy, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 #, fuzzy
 msgid "vectorop: invalid num of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 #, fuzzy
 msgid "vport: invalid table length or num of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 #, fuzzy
 msgid "vport: invalid table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 #, fuzzy
 msgid "vport: invalid init table length or num of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 #, fuzzy
 msgid "vport: invalid init table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 #, fuzzy
 msgid "vrandh: Invalid table."
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 #, fuzzy
 msgid "vrandi: Invalid table."
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 #, fuzzy
 msgid "vecdelay: invalid num of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 #, fuzzy
 msgid "vecdly: invalid output table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 #, fuzzy
 msgid "vecdly: invalid input table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 #, fuzzy
 msgid "vecdly: invalid delay table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 #, fuzzy
 msgid "vecdly: not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 #, fuzzy
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 #, fuzzy
 msgid "vdelayk: not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 #, fuzzy
 msgid "cella: invalid num of elements"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 #, fuzzy
 msgid "cella: invalid output table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 #, fuzzy
 msgid "cella: invalid initial state table"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 #, fuzzy
 msgid "cella: invalid rule table"
 msgstr "неправильный число аргументов"
@@ -7726,15 +7768,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7744,7 +7786,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr ""
 
@@ -7760,54 +7802,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -7950,69 +7992,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -8047,15 +8109,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 #, fuzzy
 msgid "liveconv: not initialised"
 msgstr "%s: не выступлено с иничиативой"
@@ -8164,17 +8226,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr ""
@@ -8208,93 +8270,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8310,6 +8372,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8376,37 +8446,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8414,7 +8484,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8485,8 +8555,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8510,17 +8579,17 @@ msgstr ""
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 #, fuzzy
 msgid "median: not initialised (arate)\n"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 #, fuzzy
 msgid "median: not initialised (krate)\n"
 msgstr "%s: не выступлено с иничиативой"
@@ -8535,12 +8604,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8553,17 +8622,8 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
 msgstr ""
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
@@ -8626,7 +8686,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8639,30 +8699,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8670,8 +8730,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8689,39 +8749,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr ""
 
@@ -8738,7 +8798,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8864,20 +8924,20 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 #, fuzzy
 msgid "Invalid buffer handle"
 msgstr "неправильный число аргументов"
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8917,12 +8977,12 @@ msgstr ""
 msgid "fsig format not supported"
 msgstr ""
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9219,125 +9279,125 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9411,31 +9471,35 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr ""
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 #, fuzzy
 msgid "output array too small\n"
 msgstr "%s: не выступлено с иничиативой"
@@ -9459,21 +9523,21 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 #, fuzzy
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr "недостаточные аргументы"
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr ""
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9493,162 +9557,167 @@ msgstr ""
 msgid "spat3di: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 #, fuzzy
 msgid "spechist: local buffers not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr ""
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr ""
@@ -9677,7 +9746,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9757,7 +9826,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9770,7 +9839,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9861,34 +9930,34 @@ msgstr ""
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -9897,12 +9966,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9910,128 +9979,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -10095,7 +10164,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10109,116 +10178,117 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 #, fuzzy
 msgid "insufficient valid speakers"
 msgstr "недостаточные аргументы"
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, fuzzy, c-format
 msgid "could not find layout table no.%d"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 #, fuzzy
 msgid "Output array not initialised"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 #, fuzzy
 msgid "could not find layout table no.0"
 msgstr "%s: не выступлено с иничиативой"
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 #, fuzzy
 msgid "Output array in vpabmove not initalised"
 msgstr "%s: не выступлено с иничиативой"
@@ -10227,34 +10297,67 @@ msgstr "%s: не выступлено с иничиативой"
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr ""
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10282,61 +10385,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10382,826 +10485,858 @@ msgid "Error opening log file '%s': %s\n"
 msgstr ""
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
-msgstr ""
-
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
-msgstr ""
-
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-#, fuzzy
-msgid "--nchnls=N\t\t override number of audio channels"
-msgstr "неправильный число аргументов"
+msgid "                          key number to pfield N as linear octave"
+msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
-msgstr ""
+#, fuzzy
+msgid "--nchnls=N              override number of audio channels"
+msgstr "неправильный число аргументов"
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
-msgstr ""
+#, fuzzy
+msgid "--nchnls_i=N            override number of input audio channels"
+msgstr "неправильный число аргументов"
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
+msgstr ""
+
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
+msgstr ""
+
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 #, fuzzy
 msgid "no number of threads"
 msgstr "неправильный число аргументов"
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11345,332 +11480,332 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr "ПРЕДУПРЕЖДЕНИЕ:"
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr ""
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
-#, c-format
-msgid "Failed to open input file - %s\n"
-msgstr ""
+#: Top/main.c:239
+#, fuzzy, c-format
+msgid "main: failed to open input file - %s\n"
+msgstr "%s: не выступлено с иничиативой"
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr ""
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11767,168 +11902,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr ""
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr ""
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr ""
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr ""
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -11941,26 +12094,74 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr ""
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, fuzzy, c-format
+msgid "could not retrieve channel %s"
+msgstr "неправильный число аргументов"
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr ""
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+msgid "UDP Server: failed to allocate memory"
+msgstr ""
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -11975,8 +12176,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -12101,170 +12302,170 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12292,48 +12493,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12468,125 +12669,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12594,7 +12795,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12730,87 +12931,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12893,120 +13094,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -13018,13 +13219,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -13061,10 +13262,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13158,47 +13411,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13411,7 +13664,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13438,7 +13691,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13454,37 +13707,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13647,35 +13900,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr ""
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13849,112 +14114,112 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
diff --git a/po/spanish.po b/po/spanish.po
index 1dcc08e..9a958ba 100644
--- a/po/spanish.po
+++ b/po/spanish.po
@@ -34,7 +34,7 @@ msgstr ""
 
 #: Engine/auxfd.c:201
 #, c-format
-msgid "\tauxch at %p: size %ld, auxp %p, endp %p\n"
+msgid "\tauxch at %p: size %zu, auxp %p, endp %p\n"
 msgstr ""
 
 #: Engine/auxfd.c:213
@@ -101,7 +101,7 @@ msgid "(unknown error)"
 msgstr ""
 
 #: Engine/corfiles.c:60 Engine/corfiles.c:81 Engine/corfiles.c:95
-#: Engine/corfiles.c:111 Engine/fgens.c:1634 Engine/rdscor.c:215
+#: Engine/corfiles.c:111 Engine/fgens.c:1633 Engine/rdscor.c:216
 msgid "Out of Memory\n"
 msgstr ""
 
@@ -109,11 +109,11 @@ msgstr ""
 msgid "Null file name in copy_to_corefile"
 msgstr ""
 
-#: Engine/corfiles.c:293
+#: Engine/corfiles.c:295
 msgid "not enough memory (realloc returned NULL)\n"
 msgstr ""
 
-#: Engine/corfiles.c:319
+#: Engine/corfiles.c:322
 #, c-format
 msgid "curl_easy_perform() failed: %s\n"
 msgstr ""
@@ -123,43 +123,43 @@ msgstr ""
 msgid "Failed to find semantic information for instrument '%i'"
 msgstr ""
 
-#: Engine/cs_par_base.c:148 Engine/cs_par_base.c:162
+#: Engine/cs_par_base.c:149 Engine/cs_par_base.c:162
 msgid "Invalid NULL Parameter barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:150
+#: Engine/cs_par_base.c:151
 msgid "Invalid Parameter thread_count must be > 0"
 msgstr ""
 
-#: Engine/cs_par_base.c:154
+#: Engine/cs_par_base.c:155
 msgid "Failed to allocate barrier"
 msgstr ""
 
-#: Engine/cs_par_base.c:288 Engine/cs_par_base.c:308 Engine/cs_par_base.c:443
+#: Engine/cs_par_base.c:192 Engine/cs_par_base.c:212 Engine/cs_par_base.c:347
 msgid "Invalid NULL Parameter set"
 msgstr ""
 
-#: Engine/cs_par_base.c:292
+#: Engine/cs_par_base.c:196
 msgid "Failed to allocate set"
 msgstr ""
 
-#: Engine/cs_par_base.c:310
+#: Engine/cs_par_base.c:214
 msgid "Invalid Parameter set not a set"
 msgstr ""
 
-#: Engine/cs_par_base.c:332 Engine/cs_par_base.c:445
+#: Engine/cs_par_base.c:236 Engine/cs_par_base.c:349
 msgid "Invalid NULL Parameter data"
 msgstr ""
 
-#: Engine/cs_par_base.c:336
+#: Engine/cs_par_base.c:240
 msgid "Failed to allocate set element"
 msgstr ""
 
-#: Engine/cs_par_base.c:349
+#: Engine/cs_par_base.c:253
 msgid "Invalid NULL Parameter set_element"
 msgstr ""
 
-#: Engine/cs_par_base.c:447
+#: Engine/cs_par_base.c:351
 msgid "Invalid NULL Parameter out_set_element"
 msgstr ""
 
@@ -172,11 +172,11 @@ msgstr ""
 msgid "Invalid NULL parameter name for a global variable\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:137
+#: Engine/cs_par_dispatch.c:138
 msgid "Inserting Parallelism Constructs into AST\n"
 msgstr ""
 
-#: Engine/cs_par_dispatch.c:160
+#: Engine/cs_par_dispatch.c:161
 #, c-format
 msgid "Instr %d needs locks"
 msgstr ""
@@ -210,344 +210,349 @@ msgstr ""
 msgid "Not a proper list of ints"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:242
+#: Engine/csound_orc_compile.c:243
 msgid "ERROR: Unmatched bracket found in arrayargument type specification\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:414
+#: Engine/csound_orc_compile.c:415
 #, c-format
 msgid "create_opcode: No rule to handle statement of type %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:590 Engine/csound_orc_compile.c:675
+#: Engine/csound_orc_compile.c:604 Engine/csound_orc_compile.c:691
 #, c-format
 msgid "%s invalid sample rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:592 Engine/csound_orc_compile.c:677
+#: Engine/csound_orc_compile.c:606 Engine/csound_orc_compile.c:693
 #, c-format
 msgid "%s invalid control rate"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:596 Engine/csound_orc_compile.c:673
+#: Engine/csound_orc_compile.c:608
+#, c-format
+msgid "%s invalid number of samples"
+msgstr ""
+
+#: Engine/csound_orc_compile.c:612 Engine/csound_orc_compile.c:689
 #, c-format
 msgid "%s invalid ksmps value"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:598
+#: Engine/csound_orc_compile.c:614
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:600
+#: Engine/csound_orc_compile.c:616
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:620
+#: Engine/csound_orc_compile.c:636
 msgid "bad value for 0dbfs: must be positive. Setting default value."
 msgstr ""
 
-#: Engine/csound_orc_compile.c:670
+#: Engine/csound_orc_compile.c:686
 #, c-format
 msgid ""
 "sr = %.7g, kr = %.7g, ksmps = %.7g\n"
 "error:"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:679
+#: Engine/csound_orc_compile.c:695
 #, c-format
 msgid "%s inconsistent sr, kr, ksmps"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:681
+#: Engine/csound_orc_compile.c:697
 #, c-format
 msgid "sample rate overrides: esr = %7.4f, ekr = %7.4f, ksmps = %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:757
+#: Engine/csound_orc_compile.c:774
 msgid "system constants can only be set once\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:843
+#: Engine/csound_orc_compile.c:860
 #, c-format
-msgid "create_instrument: instr num %ld\n"
+msgid "create_instrument: instr num %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:960
+#: Engine/csound_orc_compile.c:977
 msgid "-- deleted instr from deadpool \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:988
+#: Engine/csound_orc_compile.c:1005
 #, c-format
 msgid " -- free instr def %p %p \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1002 Engine/csound_orc_compile.c:1013
+#: Engine/csound_orc_compile.c:1019 Engine/csound_orc_compile.c:1030
 #, c-format
 msgid " -- added to deadpool slot %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1041 Engine/csound_orc_compile.c:1196
+#: Engine/csound_orc_compile.c:1058 Engine/csound_orc_compile.c:1214
 #, c-format
-msgid "instr %ld redefined, replacing previous definition"
+msgid "instr %d redefined, replacing previous definition"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1068
+#: Engine/csound_orc_compile.c:1085
 msgid "no active instances \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1145
+#: Engine/csound_orc_compile.c:1163
 #, c-format
 msgid "instr %s uses instrument number %d\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1193
+#: Engine/csound_orc_compile.c:1211
 #, c-format
 msgid "instr %d redefined\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1226
+#: Engine/csound_orc_compile.c:1244
 #, c-format
 msgid "no active instances of instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1272
+#: Engine/csound_orc_compile.c:1290
 msgid "!!! csound->opcodeInfo is NULL !!!\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1308
-#, c-format
-msgid " merging constants %d) %f\n"
-msgstr ""
-
-#: Engine/csound_orc_compile.c:1318
+#: Engine/csound_orc_compile.c:1338
 #, c-format
 msgid " merging %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1334
+#: Engine/csound_orc_compile.c:1354
 #, c-format
 msgid " adding %p %d) %s:%s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1357
+#: Engine/csound_orc_compile.c:1381
 #, c-format
 msgid "merging instr %d \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1365
+#: Engine/csound_orc_compile.c:1389
 #, c-format
 msgid "merging instr %s \n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1558 Engine/csound_orc_compile.c:1593
-#: Engine/csound_orc_compile.c:1616
+#: Engine/csound_orc_compile.c:1607 Engine/csound_orc_compile.c:1642
+#: Engine/csound_orc_compile.c:1665
 msgid "invalid name for instrument"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1598 Engine/csound_orc_compile.c:1621
+#: Engine/csound_orc_compile.c:1647 Engine/csound_orc_compile.c:1670
 #, c-format
 msgid "instr %s redefined"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1643
+#: Engine/csound_orc_compile.c:1692
 #, c-format
 msgid "ERROR: Could not find OPCODINFO for opname: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1665
+#: Engine/csound_orc_compile.c:1714
 #, c-format
 msgid "Unknown TREE node of type %d (%s) found in root.\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1674
+#: Engine/csound_orc_compile.c:1723
 #, c-format
 msgid "%d syntax errors in orchestra.  compilation invalid\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1718
+#: Engine/csound_orc_compile.c:1766
 #, c-format
-msgid "perf-pass statements illegal in header blk (%s)\n"
+msgid "%s: perf-time code in global space, ignored"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:1910
+#: Engine/csound_orc_compile.c:1944
 msgid "i[fixme] pset args != pmax"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2054
+#: Engine/csound_orc_compile.c:2098
 #, c-format
 msgid "Missing local arg: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2114
+#: Engine/csound_orc_compile.c:2158
 msgid "**unrecorded**"
 msgstr ""
 
-#: Engine/csound_orc_compile.c:2187
+#: Engine/csound_orc_compile.c:2235
 #, c-format
 msgid "Opcode \"%s\" is deprecated\n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:485
+#: Engine/csound_orc_expressions.c:491
 #, c-format
 msgid "error: function %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_expressions.c:506
+#: Engine/csound_orc_expressions.c:512
 #, c-format
 msgid "error: opcode %s with output type %s not found, line %d"
 msgstr ""
 
+#: Engine/csound_orc_expressions.c:1218
+#, c-format
+msgid "ERROR: Neither if-goto or if-then found on line %d!!!"
+msgstr ""
+
 #: Engine/csound_orc_semantics.c:129
 #, c-format
 msgid "Unknown function type found: %d [%c]\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:154
+#: Engine/csound_orc_semantics.c:156
 #, c-format
 msgid "Unknown boolean expression type found: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:265
+#: Engine/csound_orc_semantics.c:271
 #, c-format
 msgid "unable to find array operator for types %s line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:285
+#: Engine/csound_orc_semantics.c:291
 #, c-format
 msgid "non-boolean expression found for ternary operator, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:303
+#: Engine/csound_orc_semantics.c:309
 #, c-format
 msgid "unable to find ternary operator for types '%s ? %s : %s' line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:328
+#: Engine/csound_orc_semantics.c:334
 #, c-format
 msgid "Use of i() with expression not permitted on line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:345
+#: Engine/csound_orc_semantics.c:351
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:370
+#: Engine/csound_orc_semantics.c:376
 #, c-format
 msgid ""
 "Unable to verify arg types for expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:395
+#: Engine/csound_orc_semantics.c:401
 #, c-format
 msgid ""
 "error: opcode '%s' for expression with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:427
+#: Engine/csound_orc_semantics.c:437
 #, c-format
 msgid ""
 "Unable to verify arg types for boolean expression '%s'\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:449
+#: Engine/csound_orc_semantics.c:459
 #, c-format
 msgid "error: boolean expression '%s' with arg types %s not found, line %d \n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:527 Engine/csound_orc_semantics.c:1254
+#: Engine/csound_orc_semantics.c:538 Engine/csound_orc_semantics.c:1267
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "Line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:568
+#: Engine/csound_orc_semantics.c:579
 #, c-format
 msgid "Unknown arg type: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1209
+#: Engine/csound_orc_semantics.c:1222
 #, c-format
 msgid "Variable type for %s could not be determined.\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1231
+#: Engine/csound_orc_semantics.c:1244
 #, c-format
 msgid ""
 "Variable '%s' used before defined\n"
 "line %d"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1459
+#: Engine/csound_orc_semantics.c:1472
 #, c-format
 msgid "Unable to find opcode with name: %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1477
+#: Engine/csound_orc_semantics.c:1490
 #, c-format
 msgid "Unable to find opcode entry for '%s' with matching argument types:\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1480
+#: Engine/csound_orc_semantics.c:1493
 #, c-format
 msgid "Found: %s %s %s\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1482
+#: Engine/csound_orc_semantics.c:1495
 #, c-format
 msgid "Line: %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1637
+#: Engine/csound_orc_semantics.c:1650
 #, c-format
 msgid ""
 "expression for until/while statement not a boolean expression, line %d\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1680
+#: Engine/csound_orc_semantics.c:1693
 msgid "Multiple xin statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1689
+#: Engine/csound_orc_semantics.c:1702
 msgid "Multiple xout statements found. Only one is allowed."
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1706
+#: Engine/csound_orc_semantics.c:1719
 #, c-format
 msgid "invalid xin statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1715
+#: Engine/csound_orc_semantics.c:1728
 #, c-format
 msgid "invalid xout statement for UDO: defined '%s', found '%s'\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1883
+#: Engine/csound_orc_semantics.c:1939
 #, c-format
 msgid ""
 "\n"
 "error: %s  (token \"%s\")"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1886
+#: Engine/csound_orc_semantics.c:1942
 #, c-format
 msgid ""
 " line %d:\n"
 ">>>"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:1905
+#: Engine/csound_orc_semantics.c:1961
 #, c-format
 msgid " from file %s (%d)\n"
 msgstr ""
 
-#: Engine/csound_orc_semantics.c:2487
+#: Engine/csound_orc_semantics.c:2542
 #, c-format
 msgid "insufficient required arguments for opcode %s on line %d:\n"
 msgstr ""
@@ -562,212 +567,203 @@ msgstr ""
 msgid "unterminated string found on line %d >>%s<<\n"
 msgstr ""
 
-#: Engine/csound_orc.y:248
+#: Engine/csound_orc.y:252
 msgid "No number following instr\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:234 Engine/csound_pre.lex:272
-#: Engine/csound_pre.lex:314 Engine/csound_pre.lex:424
-#: Engine/csound_prs.lex:161 Engine/csound_prs.lex:209
-#: Engine/csound_prs.lex:257 Engine/csound_prs.lex:366
+#: Engine/csound_pre.lex:235 Engine/csound_pre.lex:280
+#: Engine/csound_prs.lex:163 Engine/csound_prs.lex:214
+#: Engine/csound_prs.lex:549
 #, c-format
 msgid "Undefined macro: '%s'"
 msgstr ""
 
-#: Engine/csound_pre.lex:245 Engine/csound_pre.lex:283
-#: Engine/csound_pre.lex:327 Engine/csound_pre.lex:332
-#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:368
-#: Engine/csound_pre.lex:386 Engine/csound_pre.lex:437
-#: Engine/csound_pre.lex:442 Engine/csound_pre.lex:452
-#: Engine/csound_pre.lex:477 Engine/csound_pre.lex:495
-#: Engine/csound_pre.lex:871 Engine/csound_pre.lex:905
-#: Engine/csound_pre.lex:911 Engine/csound_pre.lex:924
-#: Engine/csound_pre.lex:932 Engine/csound_pre.lex:940
-#: Engine/csound_pre.lex:951 Engine/csound_pre.lex:960
-#: Engine/csound_pre.lex:968 Engine/csound_pre.lex:1013
-#: Engine/csound_pre.lex:1025 Engine/csound_pre.lex:1039
-#: Engine/csound_pre.lex:1048 Engine/csound_pre.lex:1070
-#: Engine/csound_pre.lex:1078 Engine/csound_pre.lex:1113
-#: Engine/csound_pre.lex:1123 Engine/csound_pre.lex:1132
-#: Engine/csound_pre.lex:1189 Engine/csound_pre.lex:1332
-#: Engine/csound_pre.lex:1345 Engine/csound_pre.lex:1360
-#: Engine/csound_prs.lex:176 Engine/csound_prs.lex:225
-#: Engine/csound_prs.lex:270 Engine/csound_prs.lex:275
-#: Engine/csound_prs.lex:285 Engine/csound_prs.lex:310
-#: Engine/csound_prs.lex:328 Engine/csound_prs.lex:379
-#: Engine/csound_prs.lex:384 Engine/csound_prs.lex:394
-#: Engine/csound_prs.lex:419 Engine/csound_prs.lex:437
-#: Engine/csound_prs.lex:660 Engine/csound_prs.lex:707
-#: Engine/csound_prs.lex:745 Engine/csound_prs.lex:827
-#: Engine/csound_prs.lex:1002 Engine/csound_prs.lex:1030
-#: Engine/csound_prs.lex:1036 Engine/csound_prs.lex:1049
-#: Engine/csound_prs.lex:1057 Engine/csound_prs.lex:1065
-#: Engine/csound_prs.lex:1076 Engine/csound_prs.lex:1085
-#: Engine/csound_prs.lex:1093 Engine/csound_prs.lex:1138
-#: Engine/csound_prs.lex:1150 Engine/csound_prs.lex:1164
-#: Engine/csound_prs.lex:1173 Engine/csound_prs.lex:1195
-#: Engine/csound_prs.lex:1203 Engine/csound_prs.lex:1239
-#: Engine/csound_prs.lex:1249 Engine/csound_prs.lex:1258
-#: Engine/csound_prs.lex:1315 Engine/csound_prs.lex:1421
-#: Engine/csound_prs.lex:1434 Engine/csound_prs.lex:1449
+#: Engine/csound_pre.lex:249 Engine/csound_pre.lex:294
+#: Engine/csound_pre.lex:299 Engine/csound_pre.lex:309
+#: Engine/csound_pre.lex:342 Engine/csound_pre.lex:363
+#: Engine/csound_pre.lex:758 Engine/csound_pre.lex:792
+#: Engine/csound_pre.lex:798 Engine/csound_pre.lex:811
+#: Engine/csound_pre.lex:819 Engine/csound_pre.lex:827
+#: Engine/csound_pre.lex:838 Engine/csound_pre.lex:847
+#: Engine/csound_pre.lex:855 Engine/csound_pre.lex:901
+#: Engine/csound_pre.lex:913 Engine/csound_pre.lex:927
+#: Engine/csound_pre.lex:936 Engine/csound_pre.lex:958
+#: Engine/csound_pre.lex:966 Engine/csound_pre.lex:1003
+#: Engine/csound_pre.lex:1013 Engine/csound_pre.lex:1022
+#: Engine/csound_pre.lex:1079 Engine/csound_pre.lex:1222
+#: Engine/csound_pre.lex:1235 Engine/csound_pre.lex:1250
+#: Engine/csound_prs.lex:180 Engine/csound_prs.lex:229
+#: Engine/csound_prs.lex:234 Engine/csound_prs.lex:244
+#: Engine/csound_prs.lex:295 Engine/csound_prs.lex:530
+#: Engine/csound_prs.lex:600 Engine/csound_prs.lex:638
+#: Engine/csound_prs.lex:723 Engine/csound_prs.lex:923
+#: Engine/csound_prs.lex:951 Engine/csound_prs.lex:957
+#: Engine/csound_prs.lex:970 Engine/csound_prs.lex:978
+#: Engine/csound_prs.lex:986 Engine/csound_prs.lex:997
+#: Engine/csound_prs.lex:1006 Engine/csound_prs.lex:1014
+#: Engine/csound_prs.lex:1060 Engine/csound_prs.lex:1072
+#: Engine/csound_prs.lex:1086 Engine/csound_prs.lex:1095
+#: Engine/csound_prs.lex:1117 Engine/csound_prs.lex:1125
+#: Engine/csound_prs.lex:1162 Engine/csound_prs.lex:1172
+#: Engine/csound_prs.lex:1181 Engine/csound_prs.lex:1238
+#: Engine/csound_prs.lex:1344 Engine/csound_prs.lex:1357
+#: Engine/csound_prs.lex:1372
 msgid "Memory exhausted"
 msgstr ""
 
-#: Engine/csound_pre.lex:259 Engine/csound_pre.lex:297
-#: Engine/csound_pre.lex:408 Engine/csound_pre.lex:510
-#: Engine/csound_prs.lex:190 Engine/csound_prs.lex:195
-#: Engine/csound_prs.lex:239 Engine/csound_prs.lex:350
-#: Engine/csound_prs.lex:456
+#: Engine/csound_pre.lex:261 Engine/csound_pre.lex:388
+#: Engine/csound_prs.lex:194 Engine/csound_prs.lex:320
 msgid "macros/include nested too deep: "
 msgstr ""
 
-#: Engine/csound_pre.lex:349 Engine/csound_pre.lex:461
-#: Engine/csound_prs.lex:292 Engine/csound_prs.lex:403
+#: Engine/csound_pre.lex:317 Engine/csound_prs.lex:252
 msgid "Too few arguments to macro\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:361 Engine/csound_pre.lex:470
-#: Engine/csound_prs.lex:303 Engine/csound_prs.lex:412
+#: Engine/csound_pre.lex:331 Engine/csound_prs.lex:265
 #, c-format
 msgid ""
 "Missing argument terminator\n"
 "%.98s"
 msgstr ""
 
-#: Engine/csound_pre.lex:540
+#: Engine/csound_pre.lex:423
 msgid "unexpected EOF!"
 msgstr ""
 
-#: Engine/csound_pre.lex:615 Engine/csound_prs.lex:566
+#: Engine/csound_pre.lex:498 Engine/csound_prs.lex:436
 #, c-format
 msgid "Unexpected character %c(%.2x) line %d\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:654 Engine/csound_prs.lex:605
+#: Engine/csound_pre.lex:537 Engine/csound_prs.lex:475
 msgid "#else without #if\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:658 Engine/csound_pre.lex:1250
-#: Engine/csound_prs.lex:609 Engine/csound_prs.lex:1376
+#: Engine/csound_pre.lex:541 Engine/csound_pre.lex:1140
+#: Engine/csound_prs.lex:479 Engine/csound_prs.lex:1299
 msgid "#else after #else\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:676 Engine/csound_prs.lex:627
+#: Engine/csound_pre.lex:559 Engine/csound_prs.lex:497
 msgid "Unmatched #end\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:846 Engine/csound_prs.lex:451
-#: Engine/csound_prs.lex:975
+#: Engine/csound_pre.lex:724 Engine/csound_prs.lex:887
+msgid "Ill formed #include ignored"
+msgstr ""
+
+#: Engine/csound_pre.lex:733 Engine/csound_prs.lex:896
 msgid "Includes nested too deeply"
 msgstr ""
 
-#: Engine/csound_pre.lex:861 Engine/csound_prs.lex:992
+#: Engine/csound_pre.lex:748 Engine/csound_prs.lex:913
 #, c-format
 msgid "%s is a directory; not including"
 msgstr ""
 
-#: Engine/csound_pre.lex:865 Engine/csound_prs.lex:996
+#: Engine/csound_pre.lex:752 Engine/csound_prs.lex:917
 #, c-format
 msgid "Cannot open #include'd file %s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:977 Engine/csound_prs.lex:1102
+#: Engine/csound_pre.lex:864 Engine/csound_prs.lex:1023
 msgid "macro error\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:982 Engine/csound_pre.lex:986
-#: Engine/csound_pre.lex:993 Engine/csound_pre.lex:998
-#: Engine/csound_pre.lex:1085 Engine/csound_pre.lex:1089
-#: Engine/csound_pre.lex:1096 Engine/csound_pre.lex:1101
-#: Engine/csound_prs.lex:1107 Engine/csound_prs.lex:1111
-#: Engine/csound_prs.lex:1118 Engine/csound_prs.lex:1123
-#: Engine/csound_prs.lex:1210 Engine/csound_prs.lex:1214
-#: Engine/csound_prs.lex:1221 Engine/csound_prs.lex:1226
+#: Engine/csound_pre.lex:869 Engine/csound_pre.lex:873
+#: Engine/csound_pre.lex:880 Engine/csound_pre.lex:886
+#: Engine/csound_pre.lex:973 Engine/csound_pre.lex:977
+#: Engine/csound_pre.lex:984 Engine/csound_pre.lex:990
+#: Engine/csound_prs.lex:1028 Engine/csound_prs.lex:1032
+#: Engine/csound_prs.lex:1039 Engine/csound_prs.lex:1045
+#: Engine/csound_prs.lex:1132 Engine/csound_prs.lex:1136
+#: Engine/csound_prs.lex:1143 Engine/csound_prs.lex:1149
 msgid "define macro runaway\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1005 Engine/csound_pre.lex:1108
-#: Engine/csound_prs.lex:1130
+#: Engine/csound_pre.lex:893 Engine/csound_pre.lex:997
+#: Engine/csound_prs.lex:1052
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x) awaiting #\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1019 Engine/csound_prs.lex:1144
+#: Engine/csound_pre.lex:907 Engine/csound_prs.lex:1066
 msgid "define macro with args: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1118 Engine/csound_prs.lex:1244
+#: Engine/csound_pre.lex:1008 Engine/csound_prs.lex:1167
 msgid "define macro: unexpected EOF"
 msgstr ""
 
-#: Engine/csound_pre.lex:1153 Engine/csound_prs.lex:1279
+#: Engine/csound_pre.lex:1043 Engine/csound_prs.lex:1202
 #, c-format
 msgid "macro %s undefined\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1168 Engine/csound_prs.lex:1294 Engine/sread.c:219
+#: Engine/csound_pre.lex:1058 Engine/csound_prs.lex:1217 Engine/sread.c:218
 msgid "Undefining undefined macro"
 msgstr ""
 
-#: Engine/csound_pre.lex:1223 Engine/csound_prs.lex:1349
+#: Engine/csound_pre.lex:1113 Engine/csound_prs.lex:1272
 #, c-format
 msgid "Unmatched #if%sdef\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1325 Engine/csound_prs.lex:1414
+#: Engine/csound_pre.lex:1215 Engine/csound_prs.lex:1337
 #, c-format
 msgid "Macro definition for %*s\n"
 msgstr ""
 
-#: Engine/csound_pre.lex:1328
+#: Engine/csound_pre.lex:1218
 msgid "Invalid macro name for --omacro"
 msgstr ""
 
-#: Engine/csound_prs.lex:490
+#: Engine/csound_prs.lex:360
 msgid "unexpected EOF!!\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:656
+#: Engine/csound_prs.lex:526
 msgid "Loops are nested too deeply"
 msgstr ""
 
-#: Engine/csound_prs.lex:674
+#: Engine/csound_prs.lex:567
 msgid "{: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:683
+#: Engine/csound_prs.lex:576
 #, c-format
 msgid "%s Nested LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:689
+#: Engine/csound_prs.lex:582
 #, c-format
 msgid "External LOOP=%d Level:%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:731
+#: Engine/csound_prs.lex:624
 msgid "unmatched } in score\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:796
+#: Engine/csound_prs.lex:690
 msgid "Section loops cannot be nested"
 msgstr ""
 
-#: Engine/csound_prs.lex:809
+#: Engine/csound_prs.lex:703
 msgid "r: invalid repeat count"
 msgstr ""
 
-#: Engine/csound_prs.lex:811
+#: Engine/csound_prs.lex:707
 #, c-format
 msgid "r LOOP=%d\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1233
+#: Engine/csound_prs.lex:1156
 #, c-format
 msgid "define macro unexpected character %c(0x%.2x)awaiting #\n"
 msgstr ""
 
-#: Engine/csound_prs.lex:1417 Engine/sread.c:730
+#: Engine/csound_prs.lex:1340 Engine/sread.c:734
 msgid "Invalid macro name for --smacro"
 msgstr ""
 
@@ -815,7 +811,7 @@ msgstr ""
 msgid "internal error: csoundCreateFileHandle(): invalid type: %d"
 msgstr ""
 
-#: Engine/extract.c:89
+#: Engine/extract.c:90
 msgid "instrument number out of range"
 msgstr ""
 
@@ -832,14 +828,14 @@ msgstr ""
 msgid "ftable %d now deleted\n"
 msgstr ""
 
-#: Engine/fgens.c:187 Engine/fgens.c:1697 Engine/fgens.c:1783
-#: Engine/fgens.c:1867 Engine/fgens.c:1984 Engine/fgens.c:2065
-#: Engine/fgens.c:3113
+#: Engine/fgens.c:187 Engine/fgens.c:1696 Engine/fgens.c:1782
+#: Engine/fgens.c:1866 Engine/fgens.c:1983 Engine/fgens.c:2064
+#: Engine/fgens.c:3112
 msgid "insufficient gen arguments"
 msgstr ""
 
 #: Engine/fgens.c:215 Opcodes/ftgen.c:118 Opcodes/ftgen.c:651
-#: Opcodes/signalflowgraph.cpp:1376
+#: Opcodes/signalflowgraph.cpp:1442
 #, c-format
 msgid "Named gen \"%s\" not defined"
 msgstr ""
@@ -870,10 +866,10 @@ msgstr ""
 
 #: Engine/fgens.c:402 Engine/fgens.c:523 Engine/fgens.c:607 Engine/fgens.c:688
 #: Engine/fgens.c:763 Engine/fgens.c:812 Engine/fgens.c:933
-#: Engine/fgens.c:1011 Engine/fgens.c:1114 Engine/fgens.c:1158
-#: Engine/fgens.c:1209 Engine/fgens.c:1480 Engine/fgens.c:1542
-#: Engine/fgens.c:1781 Engine/fgens.c:1864 Engine/fgens.c:2223
-#: Engine/fgens.c:3067 Engine/fgens.c:3110
+#: Engine/fgens.c:1011 Engine/fgens.c:1113 Engine/fgens.c:1157
+#: Engine/fgens.c:1208 Engine/fgens.c:1479 Engine/fgens.c:1541
+#: Engine/fgens.c:1780 Engine/fgens.c:1863 Engine/fgens.c:2223
+#: Engine/fgens.c:3066 Engine/fgens.c:3109
 msgid "using extended arguments\n"
 msgstr ""
 
@@ -886,13 +882,13 @@ msgid "illegal x interval"
 msgstr ""
 
 #: Engine/fgens.c:460 Engine/fgens.c:609 Engine/fgens.c:690 Engine/fgens.c:935
-#: Engine/fgens.c:1437 Engine/fgens.c:2561 Engine/fgens.c:2898
+#: Engine/fgens.c:1436 Engine/fgens.c:2561 Engine/fgens.c:2898
 #: Engine/fgens.c:3039 Opcodes/ftest.c:131 Opcodes/quadbezier.c:64
-#: Top/main.c:124 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
+#: Top/main.c:125 util/cvanal.c:67 util/lpanal.c:406 util/pvanal.c:170
 msgid "insufficient arguments"
 msgstr ""
 
-#: Engine/fgens.c:464 Engine/fgens.c:1442
+#: Engine/fgens.c:464 Engine/fgens.c:1441
 msgid "unknown srctable number"
 msgstr ""
 
@@ -924,102 +920,102 @@ msgstr ""
 msgid "illegal xamp value"
 msgstr ""
 
-#: Engine/fgens.c:1015
+#: Engine/fgens.c:1013
 msgid "uneven number of args"
 msgstr ""
 
-#: Engine/fgens.c:1142
+#: Engine/fgens.c:1141
 msgid "gen call has illegal x-ordinate values:"
 msgstr ""
 
-#: Engine/fgens.c:1160
+#: Engine/fgens.c:1159
 msgid "wrong number of args"
 msgstr ""
 
-#: Engine/fgens.c:1174
+#: Engine/fgens.c:1173
 msgid "a range given exceeds table length"
 msgstr ""
 
-#: Engine/fgens.c:1181
+#: Engine/fgens.c:1180
 msgid "an input function does not exist"
 msgstr ""
 
-#: Engine/fgens.c:1318
+#: Engine/fgens.c:1317
 msgid "No such window type!"
 msgstr ""
 
-#: Engine/fgens.c:1336
+#: Engine/fgens.c:1335
 msgid "Wrong number of input arguments"
 msgstr ""
 
-#: Engine/fgens.c:1337
+#: Engine/fgens.c:1336
 msgid "unknown distribution"
 msgstr ""
 
-#: Engine/fgens.c:1389
+#: Engine/fgens.c:1388
 msgid "error opening ASCII file"
 msgstr ""
 
-#: Engine/fgens.c:1399
+#: Engine/fgens.c:1398
 #, c-format
 msgid "%ld elements in %s\n"
 msgstr ""
 
-#: Engine/fgens.c:1413
+#: Engine/fgens.c:1412
 #, c-format
 msgid "Number(s) after table full in GEN23, starting %f"
 msgstr ""
 
-#: Engine/fgens.c:1450
+#: Engine/fgens.c:1449
 msgid "table size must be the same of source table"
 msgstr ""
 
-#: Engine/fgens.c:1522 Engine/fgens.c:1591
+#: Engine/fgens.c:1521 Engine/fgens.c:1590
 msgid "x coordinates must all be in increasing order:"
 msgstr ""
 
-#: Engine/fgens.c:1525 Engine/fgens.c:1593
+#: Engine/fgens.c:1524 Engine/fgens.c:1592
 msgid "x coordinate greater than function size:"
 msgstr ""
 
-#: Engine/fgens.c:1529
+#: Engine/fgens.c:1528
 msgid "illegal input val (y <= 0) for gen call, beginning:"
 msgstr ""
 
-#: Engine/fgens.c:1611
+#: Engine/fgens.c:1610
 msgid "GEN28 requires zero table length"
 msgstr ""
 
-#: Engine/fgens.c:1680
+#: Engine/fgens.c:1679
 msgid "could not open space file"
 msgstr ""
 
-#: Engine/fgens.c:1683
+#: Engine/fgens.c:1682
 msgid "Time values must be in increasing order"
 msgstr ""
 
-#: Engine/fgens.c:1704
+#: Engine/fgens.c:1703
 msgid "GEN30: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1787
+#: Engine/fgens.c:1786
 msgid "GEN31: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:1900
+#: Engine/fgens.c:1899
 #, c-format
 msgid "GEN32: source ftable %d not found"
 msgstr ""
 
-#: Engine/fgens.c:1995
+#: Engine/fgens.c:1994
 msgid "GEN33: source ftable not found"
 msgstr ""
 
-#: Engine/fgens.c:2164
+#: Engine/fgens.c:2163
 msgid "unknown source table number"
 msgstr ""
 
-#: Engine/fgens.c:2196
+#: Engine/fgens.c:2195
 msgid "Gen41: negative probability not allowed"
 msgstr ""
 
@@ -1039,7 +1035,7 @@ msgid "replacing previous ftable %d"
 msgstr ""
 
 #: Engine/fgens.c:2395 Engine/fgens.c:2511 Engine/fgens.c:2539
-#: Engine/fgens.c:2546 Opcodes/gab/gab.c:593 Opcodes/gab/gab.c:648
+#: Engine/fgens.c:2546 Opcodes/gab/gab.c:572 Opcodes/gab/gab.c:627
 #: Opcodes/midiops2.c:233 Opcodes/midiops2.c:388 Opcodes/midiops2.c:470
 #: Opcodes/uggab.c:1642 Opcodes/uggab.c:1678 Opcodes/uggab.c:1700
 #: Opcodes/uggab.c:1753
@@ -1105,7 +1101,7 @@ msgid "GEN1 read error"
 msgstr ""
 
 #: Engine/fgens.c:2769
-msgid "GEN1: aiff file truncated by ftable size"
+msgid "GEN1: file truncated by ftable size"
 msgstr ""
 
 #: Engine/fgens.c:2770
@@ -1117,7 +1113,7 @@ msgstr ""
 msgid "wrong number of ftable arguments"
 msgstr ""
 
-#: Engine/fgens.c:2833 OOps/pstream.c:391
+#: Engine/fgens.c:2833 OOps/pstream.c:388
 msgid "Failed to load PVOC-EX file"
 msgstr ""
 
@@ -1130,56 +1126,64 @@ msgstr ""
 msgid "ftable size too small"
 msgstr ""
 
-#: Engine/fgens.c:2938 Opcodes/mp3in.c:91 Opcodes/mp3in.c:272
-#: Opcodes/mp3in.c:454 Top/cscorfns.c:176 Top/cscorfns.c:207
+#: Engine/fgens.c:2938 Opcodes/mp3in.c:93 Opcodes/mp3in.c:274
+#: Opcodes/mp3in.c:456 Top/cscorfns.c:176 Top/cscorfns.c:207
 msgid "Not enough memory\n"
 msgstr ""
 
-#: Engine/fgens.c:3077
+#: Engine/fgens.c:3076
 msgid "GEN51: invalid number of p-fields (too few grades)"
 msgstr ""
 
-#: Engine/fgens.c:3117
+#: Engine/fgens.c:3116
 msgid "number of channels inconsistent with number of args"
 msgstr ""
 
-#: Engine/fgens.c:3276
+#: Engine/fgens.c:3278
 msgid "GEN53: invalid number of gen arguments"
 msgstr ""
 
-#: Engine/fgens.c:3286
+#: Engine/fgens.c:3288
 msgid "GEN53: invalid table length"
 msgstr ""
 
-#: Engine/fgens.c:3290
+#: Engine/fgens.c:3292
 msgid "GEN53: invalid source table number"
 msgstr ""
 
-#: Engine/fgens.c:3293
+#: Engine/fgens.c:3295
 msgid "GEN53: mode must be in the range 0 to 15"
 msgstr ""
 
-#: Engine/fgens.c:3297
-msgid "GEN53: invalid source table length"
+#: Engine/fgens.c:3299
+msgid "GEN53: invalid source table length:"
 msgstr ""
 
-#: Engine/fgens.c:3302
+#: Engine/fgens.c:3304
 msgid "GEN53: invalid window table"
 msgstr ""
 
-#: Engine/fgens.c:3420
+#: Engine/fgens.c:3319
+msgid "GEN 53: impulse response input, "
+msgstr ""
+
+#: Engine/fgens.c:3325
+msgid "GEN 53: frequency response input, "
+msgstr ""
+
+#: Engine/fgens.c:3428
 #, c-format
 msgid "Deferred load of '%s' failed"
 msgstr ""
 
 #: Engine/insert.c:116
 #, c-format
-msgid "activating instr %s at %d\n"
+msgid "activating instr %s at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:119
 #, c-format
-msgid "activating instr %d at %d\n"
+msgid "activating instr %d at %lld\n"
 msgstr ""
 
 #: Engine/insert.c:127
@@ -1192,12 +1196,12 @@ msgstr ""
 msgid "Instrument %d muted\n"
 msgstr ""
 
-#: Engine/insert.c:147 Engine/insert.c:424
+#: Engine/insert.c:147 Engine/insert.c:423
 #, c-format
 msgid "cannot allocate last note because it exceeds 100%% of cpu time"
 msgstr ""
 
-#: Engine/insert.c:153 Engine/insert.c:430
+#: Engine/insert.c:153 Engine/insert.c:429
 msgid "cannot allocate last note because it exceeds instr maxalloc"
 msgstr ""
 
@@ -1211,244 +1215,239 @@ msgstr ""
 msgid "new alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:236
+#: Engine/insert.c:235
 #, c-format
 msgid "instr %s uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:239
+#: Engine/insert.c:238
 #, c-format
 msgid "instr %d uses %d p-fields but is given %d"
 msgstr ""
 
-#: Engine/insert.c:390 Engine/insert.c:648
+#: Engine/insert.c:389 Engine/insert.c:646
 #, c-format
 msgid "instr %s now active:\n"
 msgstr ""
 
-#: Engine/insert.c:392 Engine/insert.c:650
+#: Engine/insert.c:391 Engine/insert.c:648
 #, c-format
 msgid "instr %d now active:\n"
 msgstr ""
 
-#: Engine/insert.c:440
+#: Engine/insert.c:439
 #, c-format
 msgid "MIDI activating instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:442
+#: Engine/insert.c:441
 #, c-format
 msgid "MIDI activating instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:451
+#: Engine/insert.c:450
 #, c-format
 msgid "new MIDI alloc for instr %s:\n"
 msgstr ""
 
-#: Engine/insert.c:453
+#: Engine/insert.c:452
 #, c-format
 msgid "new MIDI alloc for instr %d:\n"
 msgstr ""
 
-#: Engine/insert.c:469
+#: Engine/insert.c:468
 #, c-format
 msgid "MIDI note overlaps with key %d on same channel"
 msgstr ""
 
-#: Engine/insert.c:758
+#: Engine/insert.c:756
 #, c-format
 msgid "removed instance of instr %s\n"
 msgstr ""
 
-#: Engine/insert.c:760
+#: Engine/insert.c:758
 #, c-format
 msgid "removed instance of instr %d\n"
 msgstr ""
 
-#: Engine/insert.c:780
+#: Engine/insert.c:778
 msgid "instance not valid \n"
 msgstr ""
 
-#: Engine/insert.c:940
+#: Engine/insert.c:939
 msgid "inactive allocs returned to freespace\n"
 msgstr ""
 
-#: Engine/insert.c:966
+#: Engine/insert.c:965
 #, c-format
 msgid "could not find playing instr %f\n"
 msgstr ""
 
-#: Engine/insert.c:979
+#: Engine/insert.c:978
 msgid ""
 "\n"
 "INIT ERROR: "
 msgstr ""
 
-#: Engine/insert.c:992
+#: Engine/insert.c:991
 #, c-format
 msgid "INIT ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:995
+#: Engine/insert.c:994
 #, c-format
 msgid "INIT ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:999
+#: Engine/insert.c:998
 #, c-format
 msgid "INIT ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1020
+#: Engine/insert.c:1019
 #, c-format
 msgid "PERF ERROR in instr %d (opcode %s): "
 msgstr ""
 
-#: Engine/insert.c:1023
+#: Engine/insert.c:1022
 #, c-format
 msgid "PERF ERROR in instr %d (subinstr %d): "
 msgstr ""
 
-#: Engine/insert.c:1027
+#: Engine/insert.c:1026
 #, c-format
 msgid "PERF ERROR in instr %d: "
 msgstr ""
 
-#: Engine/insert.c:1033
+#: Engine/insert.c:1032
 msgid "   note aborted\n"
 msgstr ""
 
-#: Engine/insert.c:1052
+#: Engine/insert.c:1051
 msgid "subinstr: number of output args greater than nchnls"
 msgstr ""
 
-#: Engine/insert.c:1123
+#: Engine/insert.c:1122
 msgid "subinstr: too many p-fields"
 msgstr ""
 
-#: Engine/insert.c:1247
+#: Engine/insert.c:1249
 #, c-format
 msgid "%s: invalid local ksmps value: %d"
 msgstr ""
 
-#: Engine/insert.c:1398 OOps/bus.c:622 Opcodes/stackops.c:298
+#: Engine/insert.c:1400 OOps/bus.c:622 Opcodes/stackops.c:298
 #, c-format
 msgid "%s: not initialised"
 msgstr ""
 
-#: Engine/insert.c:1479
+#: Engine/insert.c:1481
 #, c-format
 msgid "setksmps: invalid ksmps value: %d, original: %d"
 msgstr ""
 
-#: Engine/insert.c:1619
+#: Engine/insert.c:1621
 msgid "subinstr: not initialised"
 msgstr ""
 
-#: Engine/insert.c:2183
+#: Engine/insert.c:2186
 #, c-format
 msgid ""
 "instr %d allocated at %p\n"
 "\tlclbas %p, opds %p\n"
 msgstr ""
 
-#: Engine/insert.c:2210
+#: Engine/insert.c:2213
 #, c-format
 msgid "op (%s) allocated at %p\n"
 msgstr ""
 
-#: Engine/insert.c:2235
+#: Engine/insert.c:2238
 msgid "null iopadr"
 msgstr ""
 
-#: Engine/insert.c:2246
+#: Engine/insert.c:2249
 msgid "null opadr"
 msgstr ""
 
-#: Engine/insert.c:2269
+#: Engine/insert.c:2272
 #, c-format
 msgid "FIXME: Unhandled out-arg type: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2309
+#: Engine/insert.c:2311
 #, c-format
 msgid "FIXME: instance unexpected arg: %d\n"
 msgstr ""
 
-#: Engine/insert.c:2333
+#: Engine/insert.c:2335
 msgid "inconsistent opds total"
 msgstr ""
 
-#: Engine/insert.c:2393
+#: Engine/insert.c:2395
 #, c-format
 msgid "Instrument %s is still active"
 msgstr ""
 
-#: Engine/insert.c:2396
+#: Engine/insert.c:2398
 #, c-format
 msgid "Instrument %d is still active"
 msgstr ""
 
-#: Engine/linevent.c:79
+#: Engine/linevent.c:83
 msgid "-L stdin fcntl failed"
 msgstr ""
 
-#: Engine/linevent.c:89 Engine/linevent.c:95 OOps/dumpf.c:56 OOps/dumpf.c:85
+#: Engine/linevent.c:93 Engine/linevent.c:99 OOps/dumpf.c:56 OOps/dumpf.c:85
 #: OOps/dumpf.c:110 OOps/dumpf.c:138 OOps/dumpf.c:164 OOps/dumpf.c:193
 #: OOps/dumpf.c:218 OOps/dumpf.c:245 OOps/dumpf.c:394 OOps/dumpf.c:420
 #: OOps/dumpf.c:446 OOps/dumpf.c:474 OOps/dumpf.c:500 OOps/dumpf.c:528
 #: OOps/dumpf.c:554 OOps/dumpf.c:582 OOps/dumpf.c:755 OOps/dumpf.c:782
-#: Opcodes/partials.c:496 util/hetro.c:260
+#: Opcodes/partials.c:497 util/hetro.c:260
 #, c-format
 msgid "Cannot open %s"
 msgstr ""
 
-#: Engine/linevent.c:96 Engine/linevent.c:110
+#: Engine/linevent.c:101 Engine/linevent.c:116
 #, c-format
 msgid "stdmode = %.8x Linefd = %d\n"
 msgstr ""
 
-#: Engine/linevent.c:123
+#: Engine/linevent.c:129
 msgid "Failed to set file status\n"
 msgstr ""
 
-#: Engine/linevent.c:187
-#, c-format
-msgid "input message kcount, %d, %d.%06d\n"
-msgstr ""
-
-#: Engine/linevent.c:201
+#: Engine/linevent.c:213
 msgid "LineBuffer Overflow - Input Data has been Lost"
 msgstr ""
 
-#: Engine/linevent.c:258
+#: Engine/linevent.c:314
 #, c-format
 msgid "unknown opcode %c"
 msgstr ""
 
-#: Engine/linevent.c:307
+#: Engine/linevent.c:367
 msgid "dot carry has no reference"
 msgstr ""
 
-#: Engine/linevent.c:312
+#: Engine/linevent.c:372
 msgid "cannot carry string p-field"
 msgstr ""
 
-#: Engine/linevent.c:323
+#: Engine/linevent.c:383
 #, c-format
 msgid "too few pfields (%d)"
 msgstr ""
 
-#: Engine/linevent.c:327
+#: Engine/linevent.c:387
 msgid "-L with negative p2 illegal"
 msgstr ""
 
-#: Engine/linevent.c:338
+#: Engine/linevent.c:398
 msgid "too many pfields"
 msgstr ""
 
-#: Engine/linevent.c:350
+#: Engine/linevent.c:410
 #, c-format
 msgid ""
 "illegal RT scoreline:\n"
@@ -1456,121 +1455,137 @@ msgid ""
 "%*s"
 msgstr ""
 
-#: Engine/linevent.c:372
+#: Engine/linevent.c:433
 msgid "event: param 1 must be \"a\", \"i\", \"q\", \"f\", \"d\", or \"e\""
 msgstr ""
 
-#: Engine/linevent.c:374
+#: Engine/linevent.c:435
 msgid "event: string name is allowed only for \"i\", \"d\", and \"q\" events"
 msgstr ""
 
-#: Engine/linevent.c:424
+#: Engine/linevent.c:485
 #, c-format
 msgid "event: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:494
+#: Engine/linevent.c:555
 #, c-format
 msgid "event_i: error creating '%c' event"
 msgstr ""
 
-#: Engine/linevent.c:540
+#: Engine/linevent.c:601
 msgid "instance: error creating event"
 msgstr ""
 
 #: Engine/memalloc.c:58
 #, c-format
-msgid "memory allocate failure for %lu"
+msgid "memory allocate failure for %zu"
 msgstr ""
 
-#: Engine/memfiles.c:141
+#: Engine/memfiles.c:48
+#, c-format
+msgid "failed to open file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:54
+#, c-format
+msgid "failed to read file %s\n"
+msgstr ""
+
+#: Engine/memfiles.c:150
 msgid "Ill-formed CV file\n"
 msgstr ""
 
-#: Engine/memfiles.c:197
+#: Engine/memfiles.c:206
 msgid "Ill-formed LPC file\n"
 msgstr ""
 
-#: Engine/memfiles.c:342
+#: Engine/memfiles.c:351
 #, c-format
 msgid "cannot load %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:348
+#: Engine/memfiles.c:357
 #, c-format
 msgid "cannot load %s, or SADIR undefined\n"
 msgstr ""
 
-#: Engine/memfiles.c:360
+#: Engine/memfiles.c:369
 #, c-format
 msgid "error processing file %s\n"
 msgstr ""
 
-#: Engine/memfiles.c:366 Engine/memfiles.c:548
+#: Engine/memfiles.c:375
 #, c-format
 msgid "file %s (%ld bytes) loaded into memory\n"
 msgstr ""
 
-#: Engine/memfiles.c:429
+#: Engine/memfiles.c:438
 msgid ""
 "PVOCEX_LoadFile(): error:\n"
 "    "
 msgstr ""
 
-#: Engine/memfiles.c:446
+#: Engine/memfiles.c:455
 msgid "Empty or NULL file name"
 msgstr ""
 
-#: Engine/memfiles.c:464
+#: Engine/memfiles.c:473
 #, c-format
 msgid "unable to open pvocex file %s: %s"
 msgstr ""
 
-#: Engine/memfiles.c:470
+#: Engine/memfiles.c:479
 #, c-format
 msgid "pvoc-ex file %s is not 32bit floats"
 msgstr ""
 
-#: Engine/memfiles.c:476
+#: Engine/memfiles.c:485
 #, c-format
 msgid "pvoc-ex file %s not in AMP_FREQ format"
 msgstr ""
 
-#: Engine/memfiles.c:482
+#: Engine/memfiles.c:491
 #, c-format
 msgid "pvoc-ex file %s is empty!"
 msgstr ""
 
-#: Engine/memfiles.c:512
+#: Engine/memfiles.c:521
 #, c-format
 msgid "error reading pvoc-ex file %s"
 msgstr ""
 
-#: Engine/memfiles.c:516
+#: Engine/memfiles.c:525
 #, c-format
 msgid "error reading pvoc-ex file %s after %d frames"
 msgstr ""
 
-#: Engine/memfiles.c:521 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
-#: Opcodes/pvinterp.c:383 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:217
+#: Engine/memfiles.c:530 Opcodes/pvinterp.c:77 Opcodes/pvinterp.c:193
+#: Opcodes/pvinterp.c:384 Opcodes/ugens9.c:104 Opcodes/vpvoc.c:216
 #, c-format
 msgid "%s's srate = %8.0f, orch's srate = %8.0f"
 msgstr ""
 
-#: Engine/memfiles.c:612
+#: Engine/memfiles.c:557
+#, c-format
+msgid "file %s (%d bytes) loaded into memory\n"
+msgstr ""
+
+#: Engine/memfiles.c:621
 #, c-format
 msgid "csoundLoadSoundFile(): failed to open '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:663
+#: Engine/memfiles.c:672
 #, c-format
 msgid "csoundLoadSoundFile(): error reading '%s'"
 msgstr ""
 
-#: Engine/memfiles.c:669
+#: Engine/memfiles.c:678
 #, c-format
 msgid ""
-"File '%s' (sr = %d Hz, %d channel(s), %lu sample frames) loaded into memory\n"
+"File '%s' (sr = %d Hz, %d channel(s), %lld sample frames) loaded into "
+"memory\n"
 msgstr ""
 
 #: Engine/musmon.c:72
@@ -1623,7 +1638,7 @@ msgstr ""
 msgid "sorting cscore.out ..\n"
 msgstr ""
 
-#: Engine/musmon.c:347 Top/main.c:314
+#: Engine/musmon.c:347 Top/main.c:316
 msgid "\t... done\n"
 msgstr ""
 
@@ -1631,8 +1646,8 @@ msgstr ""
 msgid "playing from cscore.srt\n"
 msgstr ""
 
-#: Engine/musmon.c:352 Engine/musmon.c:516 Engine/musmon.c:1139
-#: Engine/musmon.c:1365
+#: Engine/musmon.c:352 Engine/musmon.c:515 Engine/musmon.c:1138
+#: Engine/musmon.c:1366
 #, c-format
 msgid "SECTION %d:\n"
 msgstr ""
@@ -1642,107 +1657,107 @@ msgstr ""
 msgid "%c\tbeep!\n"
 msgstr ""
 
-#: Engine/musmon.c:468
+#: Engine/musmon.c:467
 msgid "end of score.\t\t   overall amps:"
 msgstr ""
 
-#: Engine/musmon.c:480
+#: Engine/musmon.c:479
 msgid ""
 "\n"
 "\t   overall samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:484
+#: Engine/musmon.c:483
 #, c-format
 msgid ""
 "\n"
 "%d errors in performance\n"
 msgstr ""
 
-#: Engine/musmon.c:486
+#: Engine/musmon.c:485
 msgid "end of performance"
 msgstr ""
 
-#: Engine/musmon.c:499
+#: Engine/musmon.c:498
 msgid "no sound written to disk\n"
 msgstr ""
 
-#: Engine/musmon.c:592 Engine/musmon.c:638
+#: Engine/musmon.c:591 Engine/musmon.c:637
 msgid "\t number of samples out of range:"
 msgstr ""
 
-#: Engine/musmon.c:631
+#: Engine/musmon.c:630
 #, c-format
 msgid "end of section %d\t sect peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:633
+#: Engine/musmon.c:632
 msgid "end of lplay event list\t      peak amps:"
 msgstr ""
 
-#: Engine/musmon.c:698 Engine/musmon.c:726
+#: Engine/musmon.c:697 Engine/musmon.c:725
 #, c-format
 msgid " - note deleted. instr %s undefined"
 msgstr ""
 
-#: Engine/musmon.c:702
+#: Engine/musmon.c:701
 #, c-format
 msgid "Setting instrument %s %s\n"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "off"
 msgstr ""
 
-#: Engine/musmon.c:703 Engine/musmon.c:717
+#: Engine/musmon.c:702 Engine/musmon.c:716
 msgid "on"
 msgstr ""
 
-#: Engine/musmon.c:712 Engine/musmon.c:759
+#: Engine/musmon.c:711 Engine/musmon.c:758
 #, c-format
 msgid " - note deleted. instr %d(%d) undefined"
 msgstr ""
 
-#: Engine/musmon.c:716
+#: Engine/musmon.c:715
 #, c-format
 msgid "Setting instrument %d %s\n"
 msgstr ""
 
-#: Engine/musmon.c:749
+#: Engine/musmon.c:748
 #, c-format
 msgid " - note deleted.  i%d (%s) had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:780
+#: Engine/musmon.c:779
 #, c-format
 msgid " - note deleted.  i%d had %d init errors"
 msgstr ""
 
-#: Engine/musmon.c:801
+#: Engine/musmon.c:800
 #, c-format
 msgid "time advanced %5.3f beats by score request\n"
 msgstr ""
 
-#: Engine/musmon.c:819
+#: Engine/musmon.c:818
 #, c-format
 msgid "\t\t   T%7.3f - note deleted. "
 msgstr ""
 
-#: Engine/musmon.c:823
+#: Engine/musmon.c:822
 #, c-format
 msgid "instr %s had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:826
+#: Engine/musmon.c:825
 #, c-format
 msgid "instr %d had %d init errors\n"
 msgstr ""
 
-#: Engine/musmon.c:922
+#: Engine/musmon.c:921
 msgid "terminating.\n"
 msgstr ""
 
-#: Engine/musmon.c:1009
+#: Engine/musmon.c:1008
 #, c-format
 msgid "error in score.  illegal opcode %c (ASCII %d)\n"
 msgstr ""
@@ -1752,30 +1767,30 @@ msgstr ""
 msgid "insert_score_event(): invalid instrument number or name %d\n"
 msgstr ""
 
-#: Engine/musmon.c:1297
+#: Engine/musmon.c:1298
 #, c-format
 msgid "insert_score_event(): unknown opcode: %c\n"
 msgstr ""
 
-#: Engine/musmon.c:1320
+#: Engine/musmon.c:1321
 msgid "insert_score_event(): insufficient p-fields\n"
 msgstr ""
 
-#: Engine/musmon.c:1374
+#: Engine/musmon.c:1375
 msgid "cannot rewind score: no score in memory \n"
 msgstr ""
 
-#: Engine/namedins.c:68 Engine/namedins.c:91
+#: Engine/namedins.c:69 Engine/namedins.c:92
 #, c-format
 msgid "instr %s not found"
 msgstr ""
 
-#: Engine/namedins.c:76 Engine/namedins.c:114
+#: Engine/namedins.c:77 Engine/namedins.c:115
 #, c-format
 msgid "Cannot Find Instrument %d"
 msgstr ""
 
-#: Engine/namedins.c:126
+#: Engine/namedins.c:127
 msgid "cannot find the specified instrument or opcode"
 msgstr ""
 
@@ -1784,9 +1799,9 @@ msgstr ""
 msgid "** found CS_UDO_DIR=%s\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:150
+#: Engine/new_orc_parser.c:149
 #, c-format
-msgid "Failed to open input file %s\n"
+msgid "parser: failed to open input file %s\n"
 msgstr ""
 
 #: Engine/new_orc_parser.c:187
@@ -1810,259 +1825,263 @@ msgstr ""
 msgid "Parsing failed due to %d syntax error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:270
+#: Engine/new_orc_parser.c:269
 #, c-format
 msgid "Parsing failed due to %d semantic error%s!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:273
-msgid "Parsing failed to syntax errors\n"
+#: Engine/new_orc_parser.c:272
+msgid "Parsing failed due to syntax errors\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:275
-msgid "Parsing failed due no input!\n"
+#: Engine/new_orc_parser.c:274
+msgid "Parsing failed due to no input!\n"
 msgstr ""
 
-#: Engine/new_orc_parser.c:291
+#: Engine/new_orc_parser.c:290
 msgid "Stopping on parser failure"
 msgstr ""
 
-#: Engine/rdscor.c:102
+#: Engine/rdscor.c:104
 #, c-format
 msgid "ERROR: illegal character %c(%.2x) in scoreline: "
 msgstr ""
 
-#: Engine/rdscor.c:122
+#: Engine/rdscor.c:124
 msgid ""
 "\n"
 "\tremainder of line flushed\n"
 msgstr ""
 
-#: Engine/rdscor.c:170
+#: Engine/rdscor.c:172
 msgid "ERROR: too many pfields: "
 msgstr ""
 
-#: Engine/sort.c:268
+#: Engine/sort.c:272
 #, c-format
 msgid "sort: illegal opcode %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:66
+#: Engine/sread.c:65
 msgid "sread:  text space overrun, increase MARGIN"
 msgstr ""
 
-#: Engine/sread.c:111
+#: Engine/sread.c:110
 msgid "sread: "
 msgstr ""
 
-#: Engine/sread.c:126
+#: Engine/sread.c:125
 msgid "score error:  "
 msgstr ""
 
-#: Engine/sread.c:140
+#: Engine/sread.c:139
 #, c-format
 msgid "  section %d:  at position %d%s"
 msgstr ""
 
-#: Engine/sread.c:146
+#: Engine/sread.c:145
 msgid "Internal error in print_input_backtrace()"
 msgstr ""
 
-#: Engine/sread.c:150
+#: Engine/sread.c:149
 #, c-format
 msgid "  included from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:151
+#: Engine/sread.c:150
 #, c-format
 msgid "  called from line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:153
+#: Engine/sread.c:152
 #, c-format
 msgid "  in line %d of macro %s%s"
 msgstr ""
 
-#: Engine/sread.c:188
+#: Engine/sread.c:187
 #, c-format
 msgid "Internal error op=%c"
 msgstr ""
 
-#: Engine/sread.c:896
+#: Engine/sread.c:902
 #, c-format
 msgid "Clockbase = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1144
+#: Engine/sread.c:1152
 #, c-format
 msgid "m Named section >>>%s<<<\n"
 msgstr ""
 
-#: Engine/sread.c:1159
+#: Engine/sread.c:1167
 #, c-format
-msgid "%d: %s position %ld\n"
+msgid "%d: %s position %d\n"
 msgstr ""
 
-#: Engine/sread.c:1189
+#: Engine/sread.c:1197
 #, c-format
 msgid "Name %s not found"
 msgstr ""
 
-#: Engine/sread.c:1221
+#: Engine/sread.c:1229
 #, c-format
 msgid "Warp_factor = %f\n"
 msgstr ""
 
-#: Engine/sread.c:1249
+#: Engine/sread.c:1261
 #, c-format
 msgid "sread is confused on legal opcodes %c(%.2x)\n"
 msgstr ""
 
-#: Engine/sread.c:1312
+#: Engine/sread.c:1324
 msgid "No previous event for ^"
 msgstr ""
 
-#: Engine/sread.c:1317
+#: Engine/sread.c:1329
 #, c-format
 msgid "illegal space following %s, zero substituted"
 msgstr ""
 
-#: Engine/sread.c:1347
+#: Engine/sread.c:1359
 #, c-format
 msgid "ignoring '%s' in '%c' event"
 msgstr ""
 
-#: Engine/sread.c:1350
+#: Engine/sread.c:1362
 msgid "! invalid in p1, p2, or p3"
 msgstr ""
 
-#: Engine/sread.c:1351 Engine/sread.c:1356 Engine/sread.c:1884
-#: Engine/sread.c:2070 Engine/sread.c:2084
+#: Engine/sread.c:1363 Engine/sread.c:1368 Engine/sread.c:1897
+#: Engine/sread.c:2101 Engine/sread.c:2115
 msgid "      remainder of line flushed\n"
 msgstr ""
 
-#: Engine/sread.c:1355
+#: Engine/sread.c:1367
 #, c-format
 msgid "illegal character after !: '%c'"
 msgstr ""
 
-#: Engine/sread.c:1449
+#: Engine/sread.c:1462
 #, c-format
 msgid "WARNING: instr %s not found, assuming insno = -1\n"
 msgstr ""
 
-#: Engine/sread.c:1470
+#: Engine/sread.c:1483
 msgid "sread: illegal use of carry,   0 substituted\n"
 msgstr ""
 
-#: Engine/sread.c:1883
+#: Engine/sread.c:1896
 #, c-format
 msgid "illegal opcode %c"
 msgstr ""
 
-#: Engine/sread.c:1909
+#: Engine/sread.c:1923
 msgid "illegal placement of number in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1936
+#: Engine/sread.c:1950
 msgid "illegal placement of operator ~ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1946
+#: Engine/sread.c:1960
 msgid "illegal placement of operator @ or @@ in [] expression"
 msgstr ""
 
-#: Engine/sread.c:1978 Engine/sread.c:1992
+#: Engine/sread.c:1992 Engine/sread.c:2006
 #, c-format
 msgid "illegal placement of operator %c in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2004
+#: Engine/sread.c:2018
 msgid "illegal placement of '(' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2010
+#: Engine/sread.c:2024
 msgid "missing operand before ')' in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2024
+#: Engine/sread.c:2038
+msgid "illegal placement of '[' in [] expression"
+msgstr ""
+
+#: Engine/sread.c:2054
 msgid "missing operand before closing bracket in []"
 msgstr ""
 
-#: Engine/sread.c:2039
+#: Engine/sread.c:2070
 #, c-format
 msgid "illegal character %c(%.2x) in [] expression"
 msgstr ""
 
-#: Engine/sread.c:2069
+#: Engine/sread.c:2100
 #, c-format
 msgid "unexpected char %c"
 msgstr ""
 
-#: Engine/sread.c:2083
+#: Engine/sread.c:2114
 msgid "illegally placed string"
 msgstr ""
 
-#: Engine/sread.c:2090
+#: Engine/sread.c:2121
 msgid "unmatched quote"
 msgstr ""
 
-#: Engine/sread.c:2133
+#: Engine/sread.c:2164
 msgid "sread: illegal number format:  "
 msgstr ""
 
-#: Engine/sread.c:2139
+#: Engine/sread.c:2170
 msgid "   zero substituted.\n"
 msgstr ""
 
-#: Engine/swritestr.c:165
+#: Engine/swritestr.c:167
 #, c-format
 msgid "swrite: unexpected opcode %c, section %d line %d\n"
 msgstr ""
 
-#: Engine/swritestr.c:253 Engine/swritestr.c:294
+#: Engine/swritestr.c:255 Engine/swritestr.c:296
 #, c-format
 msgid "swrite: output, sect%d line%d p%d makes illegal reference to "
 msgstr ""
 
-#: Engine/swritestr.c:260 Engine/swritestr.c:300
+#: Engine/swritestr.c:262 Engine/swritestr.c:302
 msgid "   Zero substituted\n"
 msgstr ""
 
-#: Engine/swritestr.c:359
+#: Engine/swritestr.c:361
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal ramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:363
+#: Engine/swritestr.c:365
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d ramp has illegal forward or backward ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:427 Engine/swritestr.c:492
+#: Engine/swritestr.c:429 Engine/swritestr.c:494
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal expramp symbol\n"
 msgstr ""
 
-#: Engine/swritestr.c:432 Engine/swritestr.c:497
+#: Engine/swritestr.c:434 Engine/swritestr.c:499
 #, c-format
 msgid ""
 "swrite: output, sect%d line%d p%d expramp has illegal forward or backward "
 "ref\n"
 msgstr ""
 
-#: Engine/swritestr.c:513
+#: Engine/swritestr.c:515
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegally terminated string   "
 msgstr ""
 
-#: Engine/swritestr.c:565
+#: Engine/swritestr.c:567
 #, c-format
 msgid "swrite: output, sect%d line%d p%d has illegal number  "
 msgstr ""
 
-#: Engine/swritestr.c:572
+#: Engine/swritestr.c:574
 msgid "    String truncated\n"
 msgstr ""
 
@@ -2113,11 +2132,11 @@ msgstr ""
 msgid "twarp: illegal opcode\n"
 msgstr ""
 
-#: Engine/twarp.c:188
+#: Engine/twarp.c:184
 msgid "twarp: t has extra or disordered beat value\n"
 msgstr ""
 
-#: Engine/twarp.c:191
+#: Engine/twarp.c:187
 msgid "twarp: t has non-positive tempo\n"
 msgstr ""
 
@@ -2148,138 +2167,138 @@ msgstr ""
 msgid "rtmidi: CoreMIDI module enabled\n"
 msgstr ""
 
-#: InOut/ipmidi.c:54
+#: InOut/ipmidi.c:53
 msgid "WSAStartup failed!\n"
 msgstr ""
 
-#: InOut/ipmidi.c:65
+#: InOut/ipmidi.c:64
 msgid "Error creating socket"
 msgstr ""
 
-#: InOut/ipmidi.c:83
+#: InOut/ipmidi.c:82
 #, c-format
 msgid "Error binding socket to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:102
+#: InOut/ipmidi.c:101
 #, c-format
 msgid "Error adding membership to interface: %s"
 msgstr ""
 
-#: InOut/ipmidi.c:162
+#: InOut/ipmidi.c:161
 msgid "ipMIDI real time MIDI plugin for Csound\n"
 msgstr ""
 
-#: InOut/ipmidi.c:178
+#: InOut/ipmidi.c:177
 msgid "ipmidi: ipMIDI module enabled\n"
 msgstr ""
 
-#: InOut/libsnd.c:474
+#: InOut/libsnd.c:482
 msgid "error: no input file name"
 msgstr ""
 
-#: InOut/libsnd.c:500 InOut/rtpa.c:483
+#: InOut/libsnd.c:508 InOut/rtpa.c:487
 msgid "Failed to initialise real time audio input"
 msgstr ""
 
-#: InOut/libsnd.c:514 InOut/libsnd.c:533
+#: InOut/libsnd.c:522 InOut/libsnd.c:541
 #, c-format
 msgid "isfinit: cannot open %s -- %s"
 msgstr ""
 
-#: InOut/libsnd.c:520
+#: InOut/libsnd.c:528
 #, c-format
 msgid "isfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:542
+#: InOut/libsnd.c:550
 #, c-format
 msgid "audio_in %s has sr = %d, orch sr = %d"
 msgstr ""
 
-#: InOut/libsnd.c:547
+#: InOut/libsnd.c:555
 #, c-format
 msgid "audio_in %s has %d chnls, orch %d chnls_i"
 msgstr ""
 
-#: InOut/libsnd.c:567
+#: InOut/libsnd.c:575
 #, c-format
-msgid "reading %d sample blks of %d-bit floats from %s \n"
+msgid "reading %d sample blks of %lu-bit floats from %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:571
+#: InOut/libsnd.c:579
 #, c-format
 msgid "reading %d-byte blks of %s from %s (%s)\n"
 msgstr ""
 
-#: InOut/libsnd.c:693 InOut/libsnd.c:771
+#: InOut/libsnd.c:700 InOut/libsnd.c:778
 #, c-format
 msgid "Output file type changed to %s for use in pipe\n"
 msgstr ""
 
-#: InOut/libsnd.c:712
+#: InOut/libsnd.c:719
 msgid "Failed to initialise real time audio output"
 msgstr ""
 
-#: InOut/libsnd.c:759 InOut/libsnd.c:766 InOut/libsnd.c:780
+#: InOut/libsnd.c:766 InOut/libsnd.c:773 InOut/libsnd.c:787
 #, c-format
 msgid ""
 "sfinit: cannot open fd %d\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:786
+#: InOut/libsnd.c:793
 #, c-format
 msgid "sfinit: cannot open %s"
 msgstr ""
 
-#: InOut/libsnd.c:790
+#: InOut/libsnd.c:797
 #, c-format
 msgid ""
 "sfinit: cannot open %s\n"
 "%s"
 msgstr ""
 
-#: InOut/libsnd.c:864
+#: InOut/libsnd.c:871
 #, c-format
-msgid "writing %d sample blks of %d-bit floats to %s \n"
+msgid "writing %d sample blks of %lu-bit floats to %s \n"
 msgstr ""
 
-#: InOut/libsnd.c:867 util/srconv.c:506
+#: InOut/libsnd.c:874 util/srconv.c:506
 #, c-format
 msgid "writing %d-byte blks of %s to %s"
 msgstr ""
 
-#: InOut/libsnd.c:872 InOut/libsnd.c:947
+#: InOut/libsnd.c:879 InOut/libsnd.c:954
 msgid " (raw)\n"
 msgstr ""
 
-#: InOut/libsnd.c:938
+#: InOut/libsnd.c:945
 #, c-format
-msgid "%ld %d sample blks of %d-bit floats written to %s\n"
+msgid "%d %d sample blks of %lu-bit floats written to %s\n"
 msgstr ""
 
-#: InOut/libsnd.c:943
+#: InOut/libsnd.c:950
 #, c-format
-msgid "%ld %d sample blks of %s written to %s"
+msgid "%d %d sample blks of %s written to %s"
 msgstr ""
 
-#: InOut/libsnd.c:960
+#: InOut/libsnd.c:967
 #, c-format
 msgid "soundfile write returned bytecount of %d, not %d"
 msgstr ""
 
-#: InOut/libsnd.c:963
+#: InOut/libsnd.c:970
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)"
 msgstr ""
 
-#: InOut/libsnd.c:966
+#: InOut/libsnd.c:973
 msgid "\t... closed\n"
 msgstr ""
 
-#: InOut/libsnd.c:972
+#: InOut/libsnd.c:979
 msgid "not writing to sound disk\n"
 msgstr ""
 
@@ -2449,133 +2468,133 @@ msgstr ""
 msgid " *** invalid dynamic length data in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:208
+#: InOut/midifile.c:209
 #, c-format
 msgid " *** unexpected event 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:231
+#: InOut/midifile.c:232
 msgid " *** invalid MIDI file data\n"
 msgstr ""
 
-#: InOut/midifile.c:266
+#: InOut/midifile.c:267
 msgid " *** unexpected end of system exclusive message\n"
 msgstr ""
 
-#: InOut/midifile.c:277
+#: InOut/midifile.c:278
 msgid " *** invalid system exclusive message in MIDI file\n"
 msgstr ""
 
-#: InOut/midifile.c:302
+#: InOut/midifile.c:303
 msgid "  Message: "
 msgstr ""
 
-#: InOut/midifile.c:303
+#: InOut/midifile.c:304
 msgid "  Copyright info: "
 msgstr ""
 
-#: InOut/midifile.c:304
+#: InOut/midifile.c:305
 msgid "  Track name: "
 msgstr ""
 
-#: InOut/midifile.c:305
+#: InOut/midifile.c:306
 msgid "  Instrument name: "
 msgstr ""
 
-#: InOut/midifile.c:306
+#: InOut/midifile.c:307
 msgid "  Song lyric: "
 msgstr ""
 
-#: InOut/midifile.c:325
+#: InOut/midifile.c:326
 msgid " *** invalid tempo\n"
 msgstr ""
 
-#: InOut/midifile.c:331
+#: InOut/midifile.c:332
 msgid " *** invalid end of track event\n"
 msgstr ""
 
-#: InOut/midifile.c:335
+#: InOut/midifile.c:336
 msgid " *** trailing garbage at end of MIDI track\n"
 msgstr ""
 
-#: InOut/midifile.c:351
+#: InOut/midifile.c:352
 #, c-format
 msgid " *** unknown MIDI message: 0x%02X\n"
 msgstr ""
 
-#: InOut/midifile.c:367
+#: InOut/midifile.c:368
 msgid " *** invalid MIDI track header\n"
 msgstr ""
 
-#: InOut/midifile.c:568
+#: InOut/midifile.c:569
 #, c-format
 msgid " *** error opening MIDI file '%s': %s"
 msgstr ""
 
-#: InOut/midifile.c:573
+#: InOut/midifile.c:574
 #, c-format
 msgid "Reading MIDI file '%s'...\n"
 msgstr ""
 
-#: InOut/midifile.c:579 InOut/midifile.c:591
+#: InOut/midifile.c:580 InOut/midifile.c:592
 msgid " *** invalid MIDI file header\n"
 msgstr ""
 
-#: InOut/midifile.c:603
+#: InOut/midifile.c:604
 #, c-format
 msgid " *** MIDI file format %d is not supported\n"
 msgstr ""
 
-#: InOut/midifile.c:615
+#: InOut/midifile.c:616
 msgid " *** invalid number of tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:619
+#: InOut/midifile.c:620
 msgid "WARNING: format 0 MIDI file with multiple tracks\n"
 msgstr ""
 
-#: InOut/midifile.c:633 InOut/midifile.c:650
+#: InOut/midifile.c:634 InOut/midifile.c:651
 #, c-format
 msgid " *** invalid time code: %d\n"
 msgstr ""
 
-#: InOut/midifile.c:673
+#: InOut/midifile.c:674
 msgid " *** invalid mute track list format\n"
 msgstr ""
 
-#: InOut/midifile.c:679
+#: InOut/midifile.c:680
 #, c-format
 msgid " Track %2d\n"
 msgstr ""
 
-#: InOut/midifile.c:681
+#: InOut/midifile.c:682
 #, c-format
 msgid " Track %2d is muted\n"
 msgstr ""
 
-#: InOut/midifile.c:692
+#: InOut/midifile.c:693
 msgid "done.\n"
 msgstr ""
 
-#: InOut/midifile.c:720
+#: InOut/midifile.c:721
 #, c-format
 msgid "end of midi track in '%s'\n"
 msgstr ""
 
-#: InOut/midifile.c:722
+#: InOut/midifile.c:723
 #, c-format
 msgid "%d forced decays, %d extra noteoffs\n"
 msgstr ""
 
-#: InOut/midifile.c:749
+#: InOut/midifile.c:750
 msgid " *** buffer overflow while reading MIDI file events\n"
 msgstr ""
 
-#: InOut/midifile.c:795 InOut/midirecv.c:144
+#: InOut/midifile.c:796 InOut/midirecv.c:144
 msgid "Failed to load MIDI file."
 msgstr ""
 
-#: InOut/midifile.c:798
+#: InOut/midifile.c:799
 msgid "Cannot rewind MIDI score\n"
 msgstr ""
 
@@ -2883,285 +2902,285 @@ msgstr ""
 msgid "Unable to set number of channels on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:427
+#: InOut/rtalsa.c:429
 msgid "Unable to set sample rate on soundcard"
 msgstr ""
 
-#: InOut/rtalsa.c:431
+#: InOut/rtalsa.c:433
 #, c-format
 msgid " *** rate set to %d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:444
+#: InOut/rtalsa.c:446
 #, c-format
 msgid "ALSA: -B %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:467
+#: InOut/rtalsa.c:469
 #, c-format
 msgid "ALSA: -b %d not allowed on this device; using %d instead\n"
 msgstr ""
 
-#: InOut/rtalsa.c:476
+#: InOut/rtalsa.c:478
 msgid "Error setting hardware parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:483
+#: InOut/rtalsa.c:485
 #, c-format
 msgid "ALSA %s: total buffer size: %d, period size: %d \n"
 msgstr ""
 
-#: InOut/rtalsa.c:496
+#: InOut/rtalsa.c:498
 msgid "Error setting software parameters for real-time audio"
 msgstr ""
 
-#: InOut/rtalsa.c:503 InOut/rtpa.c:289 InOut/rtpa.c:303 util/scale.c:288
+#: InOut/rtalsa.c:505 InOut/rtpa.c:293 InOut/rtpa.c:307 util/scale.c:289
 #: util/xtrct.c:297
 msgid "Memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:616
+#: InOut/rtalsa.c:618
 msgid " *** ALSA: must specify a device name, not a number (e.g. -odac:hw:0,0)"
 msgstr ""
 
-#: InOut/rtalsa.c:624
+#: InOut/rtalsa.c:626
 #, c-format
 msgid " *** ALSA: %s: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:699 InOut/rtpa.c:771
+#: InOut/rtalsa.c:701 InOut/rtpa.c:775
 msgid "Buffer overrun in real-time audio input"
 msgstr ""
 
-#: InOut/rtalsa.c:704
+#: InOut/rtalsa.c:706
 msgid "Real-time audio input suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:710
+#: InOut/rtalsa.c:712
 msgid "Error reading data from audio input device"
 msgstr ""
 
-#: InOut/rtalsa.c:744 InOut/rtpa.c:794
+#: InOut/rtalsa.c:746 InOut/rtpa.c:798
 msgid "Buffer underrun in real-time audio output"
 msgstr ""
 
-#: InOut/rtalsa.c:749
+#: InOut/rtalsa.c:751
 msgid "Real-time audio output suspended"
 msgstr ""
 
-#: InOut/rtalsa.c:755
+#: InOut/rtalsa.c:757
 msgid "Error writing data to audio output device"
 msgstr ""
 
-#: InOut/rtalsa.c:796
+#: InOut/rtalsa.c:799
 msgid "ALSA MIDI: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:803
+#: InOut/rtalsa.c:806
 #, c-format
 msgid "ALSA: error opening MIDI input device: '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:807
+#: InOut/rtalsa.c:810
 #, c-format
 msgid "ALSA: opened MIDI input device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:826
+#: InOut/rtalsa.c:829
 msgid "ALSA midi: no string\n"
 msgstr ""
 
-#: InOut/rtalsa.c:830
+#: InOut/rtalsa.c:833
 msgid "ALSA midi: Using all devices.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:859
+#: InOut/rtalsa.c:862
 #, c-format
 msgid "ALSA midi: Error opening device: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:881
+#: InOut/rtalsa.c:884
 msgid "ALSA midi: No devices found.\n"
 msgstr ""
 
-#: InOut/rtalsa.c:981
+#: InOut/rtalsa.c:984
 #, c-format
 msgid "ALSA: error opening MIDI output device '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:984
+#: InOut/rtalsa.c:987
 #, c-format
 msgid "ALSA: opened MIDI output device '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1024
+#: InOut/rtalsa.c:1027
 msgid "-M stdin fcntl failed"
 msgstr ""
 
-#: InOut/rtalsa.c:1032 Top/one_file.c:481
+#: InOut/rtalsa.c:1035 Top/one_file.c:661
 #, c-format
 msgid "cannot open %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1043
+#: InOut/rtalsa.c:1046
 msgid "MIDI receive: cannot get termios info."
 msgstr ""
 
-#: InOut/rtalsa.c:1051
+#: InOut/rtalsa.c:1054
 msgid "MIDI receive: cannot set input baud rate."
 msgstr ""
 
-#: InOut/rtalsa.c:1057
+#: InOut/rtalsa.c:1060
 msgid "MIDI receive: cannot set termios."
 msgstr ""
 
-#: InOut/rtalsa.c:1061
+#: InOut/rtalsa.c:1064
 #, c-format
 msgid "Opened MIDI input device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1101
+#: InOut/rtalsa.c:1104
 #, c-format
 msgid "sensMIDI: retval errno %d"
 msgstr ""
 
-#: InOut/rtalsa.c:1168
+#: InOut/rtalsa.c:1171
 #, c-format
 msgid "Error opening MIDI output device file '%s'"
 msgstr ""
 
-#: InOut/rtalsa.c:1172
+#: InOut/rtalsa.c:1175
 #, c-format
 msgid "Opened MIDI output device file '%s'\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1332
+#: InOut/rtalsa.c:1335
 #, c-format
 msgid "ALSASEQ: connection failed %s %s (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1336 InOut/rtalsa.c:1353
+#: InOut/rtalsa.c:1339 InOut/rtalsa.c:1356
 #, c-format
 msgid "ALSASEQ: connected %s %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1349 InOut/rtalsa.c:1359
+#: InOut/rtalsa.c:1352 InOut/rtalsa.c:1362
 #, c-format
 msgid "ALSASEQ: connection failed %s %s, port %d (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1379
+#: InOut/rtalsa.c:1382
 msgid "ALSASEQ input: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1386 InOut/rtalsa.c:1478
+#: InOut/rtalsa.c:1389 InOut/rtalsa.c:1481
 #, c-format
 msgid "ALSASEQ: error opening sequencer (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1391
+#: InOut/rtalsa.c:1394
 msgid "ALSASEQ: opened MIDI input sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1396 InOut/rtalsa.c:1488
+#: InOut/rtalsa.c:1399 InOut/rtalsa.c:1491
 #, c-format
 msgid "ALSASEQ: cannot set client name '%s' (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1408
+#: InOut/rtalsa.c:1411
 #, c-format
 msgid "ALSASEQ: cannot create input port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1416
+#: InOut/rtalsa.c:1419
 #, c-format
 msgid "ALSASEQ: created input port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1420 InOut/rtalsa.c:1512
+#: InOut/rtalsa.c:1423 InOut/rtalsa.c:1515
 #, c-format
 msgid "ALSASEQ: cannot create midi event (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1471
+#: InOut/rtalsa.c:1474
 msgid "ALSASEQ output: memory allocation failure"
 msgstr ""
 
-#: InOut/rtalsa.c:1483
+#: InOut/rtalsa.c:1486
 msgid "ALSASEQ: opened MIDI output sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1500
+#: InOut/rtalsa.c:1503
 #, c-format
 msgid "ALSASEQ: cannot create output port (%s)"
 msgstr ""
 
-#: InOut/rtalsa.c:1508
+#: InOut/rtalsa.c:1511
 #, c-format
 msgid "ALSASEQ: created output port '%s' %d:%d\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1566
+#: InOut/rtalsa.c:1569
 msgid "warning... could not create global var\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1571
+#: InOut/rtalsa.c:1574
 msgid "RT scheduler priority, alsa module"
 msgstr ""
 
-#: InOut/rtalsa.c:1579
+#: InOut/rtalsa.c:1582
 msgid "ALSASEQ client name (default: Csound)"
 msgstr ""
 
-#: InOut/rtalsa.c:1586
+#: InOut/rtalsa.c:1589
 msgid "ALSA real-time audio and MIDI module for Csound by Istvan Varga\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1599 InOut/rtalsa.c:1725
+#: InOut/rtalsa.c:1602 InOut/rtalsa.c:1728
 #, c-format
 msgid "cannot determine card number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1603
+#: InOut/rtalsa.c:1606
 msgid "no sound card found"
 msgstr ""
 
-#: InOut/rtalsa.c:1614
+#: InOut/rtalsa.c:1617
 #, c-format
 msgid "cannot open control for card %d: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1621
+#: InOut/rtalsa.c:1624
 #, c-format
 msgid "cannot determine device number: %s"
 msgstr ""
 
-#: InOut/rtalsa.c:1663
+#: InOut/rtalsa.c:1666
 #, c-format
 msgid "cannot get rawmidi information %d:%d:%d: %s\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1767
+#: InOut/rtalsa.c:1770
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1810
+#: InOut/rtalsa.c:1813
 msgid "rtalsa: Wrong callback."
 msgstr ""
 
-#: InOut/rtalsa.c:1845
+#: InOut/rtalsa.c:1848
 msgid "rtaudio: ALSA module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1862
+#: InOut/rtalsa.c:1865
 msgid "rtmidi: ALSA Raw MIDI module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1874
+#: InOut/rtalsa.c:1877
 msgid "rtmidi: ALSASEQ module enabled\n"
 msgstr ""
 
-#: InOut/rtalsa.c:1884
+#: InOut/rtalsa.c:1887
 msgid "rtmidi: devfile module enabled\n"
 msgstr ""
 
@@ -3180,11 +3199,16 @@ msgstr ""
 msgid "%d: %s (%d channels) \n"
 msgstr ""
 
-#: InOut/rtauhal.c:265 InOut/rtauhal.c:280
+#: InOut/rtauhal.c:265
 #, c-format
 msgid "requested device %d out of range"
 msgstr ""
 
+#: InOut/rtauhal.c:280
+#, c-format
+msgid "requested device %d (%s) out of range"
+msgstr ""
+
 #: InOut/rtauhal.c:300
 #, c-format
 msgid "selected input device: %s \n"
@@ -3217,10 +3241,10 @@ msgstr ""
 msgid " *** WARNING: disabling --sched in freewheel mode\n"
 msgstr ""
 
-#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:569
-#: InOut/rtjack.c:619 InOut/rtjack.c:625 InOut/rtjack.c:646 InOut/rtjack.c:652
-#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:430
-#: OOps/str_ops.c:456 OOps/str_ops.c:481 OOps/str_ops.c:498 Opcodes/ftgen.c:79
+#: InOut/rtjack.c:240 InOut/rtjack.c:253 InOut/rtjack.c:258 InOut/rtjack.c:571
+#: InOut/rtjack.c:622 InOut/rtjack.c:628 InOut/rtjack.c:649 InOut/rtjack.c:655
+#: InOut/rtwinmm.c:107 InOut/rtwinmm.c:311 OOps/str_ops.c:433
+#: OOps/str_ops.c:459 OOps/str_ops.c:484 OOps/str_ops.c:501 Opcodes/ftgen.c:79
 msgid "memory allocation failure"
 msgstr ""
 
@@ -3289,19 +3313,19 @@ msgstr ""
 msgid "error activating JACK client"
 msgstr ""
 
-#: InOut/rtjack.c:447 InOut/rtjack.c:471 InOut/rtjack.c:498 InOut/rtjack.c:522
+#: InOut/rtjack.c:447 InOut/rtjack.c:472 InOut/rtjack.c:499 InOut/rtjack.c:524
 #, c-format
 msgid "connecting channel %d to %s \n"
 msgstr ""
 
-#: InOut/rtjack.c:451
+#: InOut/rtjack.c:452
 #, c-format
 msgid ""
 "failed autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:455
+#: InOut/rtjack.c:456
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3309,25 +3333,25 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:476
+#: InOut/rtjack.c:477
 #, c-format
 msgid ""
 "not autoconnecting input channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:482
+#: InOut/rtjack.c:483
 msgid "put port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:502
+#: InOut/rtjack.c:504
 #, c-format
 msgid ""
 "failed autoconnecting output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:506
+#: InOut/rtjack.c:508
 #, c-format
 msgid ""
 "jack port %d not valid \n"
@@ -3335,144 +3359,144 @@ msgid ""
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:526
+#: InOut/rtjack.c:528
 #, c-format
 msgid ""
 "failed to autoconnect output channel %d \n"
 "(needs manual connection)"
 msgstr ""
 
-#: InOut/rtjack.c:533
+#: InOut/rtjack.c:535
 msgid "output port not connected\n"
 msgstr ""
 
-#: InOut/rtjack.c:585
+#: InOut/rtjack.c:587
 msgid "input and output parameters are not consistent"
 msgstr ""
 
-#: InOut/rtjack.c:589
+#: InOut/rtjack.c:591
 msgid "period size (-b) must be an integer multiple of ksmps"
 msgstr ""
 
-#: InOut/rtjack.c:594
+#: InOut/rtjack.c:597
 msgid "sample rate must be an integer"
 msgstr ""
 
-#: InOut/rtjack.c:735
+#: InOut/rtjack.c:738
 msgid "JACK sample rate changed"
 msgstr ""
 
-#: InOut/rtjack.c:738
+#: InOut/rtjack.c:741
 msgid "no connection to JACK server"
 msgstr ""
 
-#: InOut/rtjack.c:746
+#: InOut/rtjack.c:749
 msgid " *** rtjack: connection to JACK server was lost, reconnecting..."
 msgstr ""
 
-#: InOut/rtjack.c:785
+#: InOut/rtjack.c:788
 msgid "rtjack: input audio timeout"
 msgstr ""
 
-#: InOut/rtjack.c:811 InOut/rtjack.c:857
+#: InOut/rtjack.c:814 InOut/rtjack.c:860
 msgid "rtjack: xrun in real time audio"
 msgstr ""
 
-#: InOut/rtjack.c:1021
+#: InOut/rtjack.c:1024
 msgid "JACK real-time audio module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1024
+#: InOut/rtjack.c:1027
 msgid " *** rtjack: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1051
+#: InOut/rtjack.c:1054
 msgid "JACK client name (default: csound6)"
 msgstr ""
 
-#: InOut/rtjack.c:1060
+#: InOut/rtjack.c:1063
 msgid "JACK input port name prefix (default: input)"
 msgstr ""
 
-#: InOut/rtjack.c:1069
+#: InOut/rtjack.c:1072
 msgid "JACK output port name prefix (default: output)"
 msgstr ""
 
-#: InOut/rtjack.c:1076
+#: InOut/rtjack.c:1079
 msgid "Deprecated"
 msgstr ""
 
-#: InOut/rtjack.c:1083
+#: InOut/rtjack.c:1086
 msgid "JACK MIDI module for Csound\n"
 msgstr ""
 
-#: InOut/rtjack.c:1086
+#: InOut/rtjack.c:1089
 msgid " *** rtjack MIDI: error allocating globals"
 msgstr ""
 
-#: InOut/rtjack.c:1102
+#: InOut/rtjack.c:1105
 msgid "JACK MIDI client name prefix (default: csound6-midi)"
 msgstr ""
 
-#: InOut/rtjack.c:1113
+#: InOut/rtjack.c:1116
 msgid "JACK MIDI input port name(default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1122
+#: InOut/rtjack.c:1125
 msgid "JACK MIDI output port name (default: port)"
 msgstr ""
 
-#: InOut/rtjack.c:1148
+#: InOut/rtjack.c:1151
 msgid "Jack MIDI module: buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1174
+#: InOut/rtjack.c:1178
 msgid "Jack MIDI module: failed to create client for input"
 msgstr ""
 
-#: InOut/rtjack.c:1186
+#: InOut/rtjack.c:1190
 msgid "Jack MIDI module: failed to register input port"
 msgstr ""
 
-#: InOut/rtjack.c:1205 InOut/rtjack.c:1315
+#: InOut/rtjack.c:1209 InOut/rtjack.c:1321
 msgid "Jack MIDI module: failed to set input process callback"
 msgstr ""
 
-#: InOut/rtjack.c:1215
+#: InOut/rtjack.c:1219
 msgid "Jack MIDI module: failed to activate input"
 msgstr ""
 
-#: InOut/rtjack.c:1221
+#: InOut/rtjack.c:1226
 #, c-format
 msgid "Jack MIDI module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1260
+#: InOut/rtjack.c:1265
 msgid "Jack MIDI module: out buffer overflow"
 msgstr ""
 
-#: InOut/rtjack.c:1284
+#: InOut/rtjack.c:1290
 msgid "Jack MIDI module: failed to create client for output"
 msgstr ""
 
-#: InOut/rtjack.c:1296
+#: InOut/rtjack.c:1302
 msgid "Jack MIDI module: failed to register output port"
 msgstr ""
 
-#: InOut/rtjack.c:1325
+#: InOut/rtjack.c:1331
 msgid "Jack MIDI module: failed to activate output"
 msgstr ""
 
-#: InOut/rtjack.c:1332
+#: InOut/rtjack.c:1339
 #, c-format
 msgid "Jack MIDI out module: failed to connect to: %s"
 msgstr ""
 
-#: InOut/rtjack.c:1463
+#: InOut/rtjack.c:1470
 msgid "rtaudio: JACK module enabled\n"
 msgstr ""
 
-#: InOut/rtjack.c:1481
+#: InOut/rtjack.c:1488
 msgid "rtmidi: JACK module enabled\n"
 msgstr ""
 
@@ -3480,68 +3504,68 @@ msgstr ""
 msgid " *** PortAudio: error: "
 msgstr ""
 
-#: InOut/rtpa.c:201
+#: InOut/rtpa.c:205
 #, c-format
 msgid "%s device number %d is out of range"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "output"
 msgstr ""
 
-#: InOut/rtpa.c:202 InOut/rtpa.c:219
+#: InOut/rtpa.c:206 InOut/rtpa.c:223
 msgid "input"
 msgstr ""
 
-#: InOut/rtpa.c:218
+#: InOut/rtpa.c:222
 #, c-format
 msgid "PortAudio: selected %s device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:227
+#: InOut/rtpa.c:231
 msgid "PortAudio: failed to obtain device info.\n"
 msgstr ""
 
-#: InOut/rtpa.c:240 InOut/rtpa.c:655 InOut/rtwinmm.c:262
+#: InOut/rtpa.c:244 InOut/rtpa.c:659 InOut/rtwinmm.c:262
 msgid "Must specify a device number, not a name"
 msgstr ""
 
-#: InOut/rtpa.c:275
+#: InOut/rtpa.c:279
 msgid "No sound device is available"
 msgstr ""
 
-#: InOut/rtpa.c:309
+#: InOut/rtpa.c:313
 msgid "Inconsistent full-duplex buffer sizes"
 msgstr ""
 
-#: InOut/rtpa.c:313
+#: InOut/rtpa.c:317
 msgid "Inconsistent full-duplex sample rates"
 msgstr ""
 
-#: InOut/rtpa.c:320
+#: InOut/rtpa.c:324
 msgid ""
 "WARNING: buffer size should be an integer multiple of ksmps in full-duplex "
 "mode\n"
 msgstr ""
 
-#: InOut/rtpa.c:590 InOut/rtpa.c:803
+#: InOut/rtpa.c:594 InOut/rtpa.c:807
 msgid "closing device\n"
 msgstr ""
 
-#: InOut/rtpa.c:659
+#: InOut/rtpa.c:663
 #, c-format
 msgid "PortAudio: using ALSA device '%s'\n"
 msgstr ""
 
-#: InOut/rtpa.c:852
+#: InOut/rtpa.c:856
 msgid "rtaudio: PortAudio module enabled ... \n"
 msgstr ""
 
-#: InOut/rtpa.c:860
+#: InOut/rtpa.c:864
 msgid "using blocking interface\n"
 msgstr ""
 
-#: InOut/rtpa.c:869
+#: InOut/rtpa.c:873
 msgid "using callback interface\n"
 msgstr ""
 
@@ -3721,291 +3745,291 @@ msgstr ""
 msgid "Error registering opcode '%s'"
 msgstr ""
 
-#: InOut/widgets.cpp:1122
+#: InOut/widgets.cpp:1127
 msgid ""
 "Invalid snapshot. Perhaps you modified orchestra widget code after you saved "
 "the snapshot bank."
 msgstr ""
 
-#: InOut/widgets.cpp:1315
+#: InOut/widgets.cpp:1320
 msgid "No name for FLbutbank"
 msgstr ""
 
-#: InOut/widgets.cpp:1569
+#: InOut/widgets.cpp:1574
 msgid "FLsetsnap: invalid table"
 msgstr ""
 
-#: InOut/widgets.cpp:1574
+#: InOut/widgets.cpp:1579
 msgid "setsnap saving\n"
 msgstr ""
 
-#: InOut/widgets.cpp:1610
+#: InOut/widgets.cpp:1615
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1611
+#: InOut/widgets.cpp:1616
 msgid "Warning"
 msgstr ""
 
-#: InOut/widgets.cpp:1622
+#: InOut/widgets.cpp:1627
 msgid ""
 "Saving could overwrite the old file.\n"
 "Are you sure you want to save ?"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "No"
 msgstr ""
 
-#: InOut/widgets.cpp:1624
+#: InOut/widgets.cpp:1629
 msgid "Yes"
 msgstr ""
 
-#: InOut/widgets.cpp:1634
+#: InOut/widgets.cpp:1639
 msgid "FLsavesnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1691
+#: InOut/widgets.cpp:1696
 msgid "FLloadsnap: cannot open file"
 msgstr ""
 
-#: InOut/widgets.cpp:1737
+#: InOut/widgets.cpp:1742
 msgid ""
 "unmatched widget, probably due to a modified orchestra. Modifying an "
 "orchestra makes it incompatible with old snapshot files"
 msgstr ""
 
-#: InOut/widgets.cpp:2129
+#: InOut/widgets.cpp:2133
 msgid "end of widget thread\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2156
+#: InOut/widgets.cpp:2160
 msgid "FLrun was already called"
 msgstr ""
 
-#: InOut/widgets.cpp:2159
+#: InOut/widgets.cpp:2163
 msgid "FL_run: memory allocation failure"
 msgstr ""
 
-#: InOut/widgets.cpp:2266 InOut/widgets.cpp:2288
+#: InOut/widgets.cpp:2270 InOut/widgets.cpp:2292
 msgid "Error: Unable to fork process\n"
 msgstr ""
 
-#: InOut/widgets.cpp:2700
+#: InOut/widgets.cpp:2704
 msgid "FLpanel_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2704
+#: InOut/widgets.cpp:2708
 msgid ""
 "FLpanel_end: invalid stack count: verify FLpanel/FLpanel_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2734 InOut/widgets.cpp:2771
+#: InOut/widgets.cpp:2738 InOut/widgets.cpp:2775
 msgid "FLscroll_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2738
+#: InOut/widgets.cpp:2742
 msgid ""
 "FLscroll_end: invalid stack count: verify FLscroll/FLscroll_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2775
+#: InOut/widgets.cpp:2779
 msgid ""
 "FLtabs_end: invalid stack count: verify FLtabs/FLtabs_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2824
+#: InOut/widgets.cpp:2828
 msgid "FLgroup_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2828
+#: InOut/widgets.cpp:2832
 msgid ""
 "FLgroup_end: invalid stack count: verify FLgroup/FLgroup_end count and "
 "placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2868
+#: InOut/widgets.cpp:2872
 msgid "FLpack_end: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2872
+#: InOut/widgets.cpp:2876
 msgid ""
 "FLpack_end: invalid stack count: verify FLpack/FLpack_end count and placement"
 msgstr ""
 
-#: InOut/widgets.cpp:2959
+#: InOut/widgets.cpp:2963
 msgid "System error: value() method called from non-valuator object"
 msgstr ""
 
-#: InOut/widgets.cpp:3034
+#: InOut/widgets.cpp:3038
 msgid "FLvalue cannot be set by FLsetVal.\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3052
+#: InOut/widgets.cpp:3056
 #, c-format
 msgid "(fl_setWidgetValuei): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3073
+#: InOut/widgets.cpp:3077
 msgid "FLvalue cannot be set by FLsetVal\n"
 msgstr ""
 
-#: InOut/widgets.cpp:3091
+#: InOut/widgets.cpp:3095
 #, c-format
 msgid "(fl_setWidgetValue_set): not fully implemented yet; exp=%d"
 msgstr ""
 
-#: InOut/widgets.cpp:3479 InOut/widgets.cpp:4979
+#: InOut/widgets.cpp:3510 InOut/widgets.cpp:5010
 msgid "FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:3502
+#: InOut/widgets.cpp:3533
 msgid "FLslider: invalid slider type"
 msgstr ""
 
-#: InOut/widgets.cpp:3515 InOut/widgets.cpp:4360
+#: InOut/widgets.cpp:3546 InOut/widgets.cpp:4391
 msgid "FLslider: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3581 InOut/widgets.cpp:4715 InOut/widgets.cpp:4941
-#: InOut/widgets.cpp:5133
+#: InOut/widgets.cpp:3612 InOut/widgets.cpp:4746 InOut/widgets.cpp:4972
+#: InOut/widgets.cpp:5164
 msgid "invalid ZAK space allocation"
 msgstr ""
 
-#: InOut/widgets.cpp:3696
+#: InOut/widgets.cpp:3727
 msgid "FLslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3805 InOut/widgets.cpp:3839
+#: InOut/widgets.cpp:3836 InOut/widgets.cpp:3870
 msgid "FLjoy X axe: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:3936
+#: InOut/widgets.cpp:3967
 msgid "FLknob: invalid knob type"
 msgstr ""
 
-#: InOut/widgets.cpp:3952
+#: InOut/widgets.cpp:3983
 msgid "FLknob: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:4057 InOut/widgets.cpp:4190
+#: InOut/widgets.cpp:4088 InOut/widgets.cpp:4221
 #, c-format
 msgid "FLbutton \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4099
+#: InOut/widgets.cpp:4130
 msgid "FLbutton: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4135
+#: InOut/widgets.cpp:4166
 msgid "FLcloseButton: invalid stack pointer: verify its placement"
 msgstr ""
 
-#: InOut/widgets.cpp:4157
+#: InOut/widgets.cpp:4188
 #, c-format
 msgid "Command Found: %s\n"
 msgstr ""
 
-#: InOut/widgets.cpp:4160
+#: InOut/widgets.cpp:4191
 msgid "About"
 msgstr ""
 
-#: InOut/widgets.cpp:4233
+#: InOut/widgets.cpp:4264
 msgid "FLbuttonBank: invalid button type"
 msgstr ""
 
-#: InOut/widgets.cpp:4273
+#: InOut/widgets.cpp:4304
 #, c-format
 msgid "FLcount \"%s\" ignoring snapshot capture retrieve"
 msgstr ""
 
-#: InOut/widgets.cpp:4346
+#: InOut/widgets.cpp:4377
 msgid "FLroller: invalid roller type"
 msgstr ""
 
-#: InOut/widgets.cpp:4556
+#: InOut/widgets.cpp:4587
 msgid "FLhvsBox: a square area must be delimited by 2 lines at least"
 msgstr ""
 
-#: InOut/widgets.cpp:4608
+#: InOut/widgets.cpp:4639
 msgid "FLkeyIn: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:4612
+#: InOut/widgets.cpp:4643
 msgid "FLkeyIn: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:4839
+#: InOut/widgets.cpp:4870
 msgid "FLvslidBnk: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5030 InOut/widgets.cpp:5223
+#: InOut/widgets.cpp:5061 InOut/widgets.cpp:5254
 msgid "FLsliderBank: zero is illegal in exponential operations"
 msgstr ""
 
-#: InOut/widgets.cpp:5172
+#: InOut/widgets.cpp:5203
 msgid "FLslidBnk2: FLslider exponential, using non-labeled slider"
 msgstr ""
 
-#: InOut/widgets.cpp:5319 InOut/widgets.cpp:5388
+#: InOut/widgets.cpp:5350 InOut/widgets.cpp:5419
 msgid "FLsldBnkSet: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5324 InOut/widgets.cpp:5393
+#: InOut/widgets.cpp:5355 InOut/widgets.cpp:5424
 msgid "FLslidBnkSet: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5333 InOut/widgets.cpp:5402
+#: InOut/widgets.cpp:5364 InOut/widgets.cpp:5433
 msgid "FLsldBnkSet: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5338 InOut/widgets.cpp:5408
+#: InOut/widgets.cpp:5369 InOut/widgets.cpp:5439
 msgid "FLslidBnkSet: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5362
+#: InOut/widgets.cpp:5393
 msgid "FLslidBnkSet: function mapping not available"
 msgstr ""
 
-#: InOut/widgets.cpp:5436 InOut/widgets.cpp:5530 InOut/widgets.cpp:5623
+#: InOut/widgets.cpp:5467 InOut/widgets.cpp:5561 InOut/widgets.cpp:5652
 msgid ""
 "FLslidBnk2Setk: value out of range: function mapping requires a 0 to 1 range "
 "for input"
 msgstr ""
 
-#: InOut/widgets.cpp:5468
+#: InOut/widgets.cpp:5499
 msgid "FLsldBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5473 InOut/widgets.cpp:5566
+#: InOut/widgets.cpp:5504 InOut/widgets.cpp:5597
 msgid "FLslidBnkSetk: table too short!"
 msgstr ""
 
-#: InOut/widgets.cpp:5482
+#: InOut/widgets.cpp:5513
 msgid "FLsldBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5488 InOut/widgets.cpp:5581
+#: InOut/widgets.cpp:5519 InOut/widgets.cpp:5612
 msgid "FLslidBnkSetk: too many sliders to reset!"
 msgstr ""
 
-#: InOut/widgets.cpp:5561
+#: InOut/widgets.cpp:5592
 msgid "FLslidBnkSetk: invalid table number"
 msgstr ""
 
-#: InOut/widgets.cpp:5575
+#: InOut/widgets.cpp:5606
 msgid "FLslidBnkSetk: invalid outable number"
 msgstr ""
 
-#: InOut/widgets.cpp:5656
+#: InOut/widgets.cpp:5685
 msgid "FLxyin: none of X limits can be zero in exponential mode!"
 msgstr ""
 
-#: InOut/widgets.cpp:5683
+#: InOut/widgets.cpp:5712
 msgid "FLxyin: none of Y limits can be zero in exponential mode!"
 msgstr ""
 
@@ -4036,7 +4060,7 @@ msgstr ""
 msgid "%s\t%ld points, scalemax %5.3f\n"
 msgstr ""
 
-#: InOut/windin.c:33
+#: InOut/windin.c:34
 msgid "xyin opcode has been deprecated in Csound6."
 msgstr ""
 
@@ -4057,68 +4081,68 @@ msgstr ""
 msgid "not supported on this terminal"
 msgstr ""
 
-#: OOps/aops.c:142 OOps/aops.c:169
+#: OOps/aops.c:144 OOps/aops.c:171
 #, c-format
 msgid "Cannot be more In arguments than Out in init (%d,%d)"
 msgstr ""
 
-#: OOps/aops.c:243 OOps/aops.c:360 OOps/aops.c:373 util1/scot/scot.c:1302
-#: util1/scot/scot.c:1317 util1/scot/scot.c:1371
+#: OOps/aops.c:252 OOps/aops.c:371 OOps/aops.c:384 util1/scot/scot.c:1303
+#: util1/scot/scot.c:1318 util1/scot/scot.c:1372
 msgid "Division by zero"
 msgstr ""
 
-#: OOps/aops.c:958
+#: OOps/aops.c:973
 msgid "non-looping sample"
 msgstr ""
 
-#: OOps/aops.c:1109 OOps/aops.c:1137
+#: OOps/aops.c:1124 OOps/aops.c:1152
 #, c-format
 msgid "No tuning table %d"
 msgstr ""
 
-#: OOps/aops.c:1182 OOps/aops.c:1220
+#: OOps/aops.c:1197 OOps/aops.c:1235
 msgid "cpstun: invalid table"
 msgstr ""
 
-#: OOps/aops.c:1619 OOps/aops.c:1667
+#: OOps/aops.c:1655 OOps/aops.c:1704
 #, c-format
 msgid "Input channel %d too large; ignored"
 msgstr ""
 
-#: OOps/aops.c:1625 OOps/aops.c:1673
+#: OOps/aops.c:1661 OOps/aops.c:1710
 #, c-format
 msgid "Input channel %d is invalid; ignored"
 msgstr ""
 
-#: OOps/aops.c:1662
+#: OOps/aops.c:1699
 msgid "Input and output argument count differs in inch"
 msgstr ""
 
-#: OOps/aops.c:1750
+#: OOps/aops.c:1791
 msgid "Channel greater than nchnls"
 msgstr ""
 
-#: OOps/aops.c:1897
+#: OOps/aops.c:1939
 msgid "Excess channels ignored\n"
 msgstr ""
 
-#: OOps/aops.c:2037
+#: OOps/aops.c:2082
 msgid "Unknown function called"
 msgstr ""
 
-#: OOps/aops.c:2070
+#: OOps/aops.c:2115
 msgid "number of arguments != nchnls"
 msgstr ""
 
-#: OOps/aops.c:2099
+#: OOps/aops.c:2144
 msgid "outrg: channel number cannot be < 1 (1 is the first channel)"
 msgstr ""
 
-#: OOps/aops.c:2132
+#: OOps/aops.c:2177
 msgid "number of hardware output channels not currently available"
 msgstr ""
 
-#: OOps/aops.c:2137
+#: OOps/aops.c:2183
 msgid "number of hardware input channels not currently available"
 msgstr ""
 
@@ -4154,35 +4178,35 @@ msgstr ""
 msgid "pvsout error %d:channel not found or not right type"
 msgstr ""
 
-#: OOps/bus.c:1096 OOps/bus.c:1145 OOps/bus.c:1166 OOps/bus.c:1213
+#: OOps/bus.c:1143 OOps/bus.c:1192 OOps/bus.c:1213 OOps/bus.c:1260
 msgid "invalid mode parameter"
 msgstr ""
 
-#: OOps/bus.c:1133 OOps/bus.c:1254
+#: OOps/bus.c:1180 OOps/bus.c:1301
 msgid "invalid channel parameters"
 msgstr ""
 
-#: OOps/bus.c:1221
+#: OOps/bus.c:1268
 msgid "channel already exists"
 msgstr ""
 
-#: OOps/bus.c:1257
+#: OOps/bus.c:1304
 msgid "invalid export variable"
 msgstr ""
 
-#: OOps/bus.c:1343
+#: OOps/bus.c:1390
 msgid "read failure in sensekey\n"
 msgstr ""
 
-#: OOps/bus.c:1351
+#: OOps/bus.c:1398
 msgid "sensekey error:"
 msgstr ""
 
-#: OOps/bus.c:1454 OOps/bus.c:1480 OOps/bus.c:1521 OOps/bus.c:1548
+#: OOps/bus.c:1501 OOps/bus.c:1527 OOps/bus.c:1568 OOps/bus.c:1595
 msgid "InputChannelCallback not set."
 msgstr ""
 
-#: OOps/bus.c:1599 OOps/bus.c:1625 OOps/bus.c:1653 OOps/bus.c:1679
+#: OOps/bus.c:1646 OOps/bus.c:1672 OOps/bus.c:1700 OOps/bus.c:1726
 msgid "OutputChannelCallback not set."
 msgstr ""
 
@@ -4190,7 +4214,7 @@ msgstr ""
 msgid "NaN in pow\n"
 msgstr ""
 
-#: OOps/cmath.c:85
+#: OOps/cmath.c:85 OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
 #, c-format
 msgid "Seeding from current time %u\n"
 msgstr ""
@@ -4200,12 +4224,12 @@ msgstr ""
 msgid "Seeding with %u\n"
 msgstr ""
 
-#: OOps/compile_ops.c:35
+#: OOps/compile_ops.c:37
 #, c-format
 msgid "compileorc: could not open %s\n"
 msgstr ""
 
-#: OOps/compile_ops.c:46
+#: OOps/compile_ops.c:49
 #, c-format
 msgid "compileorc: could not read %s\n"
 msgstr ""
@@ -4233,27 +4257,27 @@ msgstr ""
 msgid "diskin2: warning: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:468 OOps/diskin2.c:1740
+#: OOps/diskin2.c:468 OOps/diskin2.c:1742
 #, c-format
 msgid ""
 "diskin2: opened (asynchronously) '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:482 OOps/diskin2.c:1754
+#: OOps/diskin2.c:482 OOps/diskin2.c:1756
 #, c-format
 msgid ""
 "diskin2: opened '%s':\n"
-"         %d Hz, %d channel(s), %ld sample frames\n"
+"         %d Hz, %d channel(s), %lld sample frames\n"
 msgstr ""
 
 #: OOps/diskin2.c:563 OOps/diskin2.c:749 OOps/diskin2.c:945
-#: OOps/diskin2.c:1350 OOps/diskin2.c:1786 OOps/diskin2.c:1979
+#: OOps/diskin2.c:1350 OOps/diskin2.c:1788 OOps/diskin2.c:1981
 msgid "diskin2: not initialised"
 msgstr ""
 
 #: OOps/diskin2.c:729 OOps/diskin2.c:920 OOps/diskin2.c:1521
-#: OOps/diskin2.c:1952
+#: OOps/diskin2.c:1954
 msgid "diskin2: file descriptor closed or invalid\n"
 msgstr ""
 
@@ -4290,37 +4314,37 @@ msgstr ""
 msgid "diskin2: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2104
+#: OOps/diskin2.c:2106
 msgid "soundin: invalid number of channels"
 msgstr ""
 
-#: OOps/diskin2.c:2126
+#: OOps/diskin2.c:2128
 msgid "soundin: unknown sample format"
 msgstr ""
 
-#: OOps/diskin2.c:2147
+#: OOps/diskin2.c:2149
 #, c-format
 msgid "soundin: %s: failed to open file"
 msgstr ""
 
-#: OOps/diskin2.c:2155
+#: OOps/diskin2.c:2157
 #, c-format
 msgid ""
 "soundin: opened '%s':\n"
 "         %d Hz, %d channel(s), %ld sample frames\n"
 msgstr ""
 
-#: OOps/diskin2.c:2165
+#: OOps/diskin2.c:2167
 msgid ""
 "soundin: number of output args inconsistent with number of file channels"
 msgstr ""
 
-#: OOps/diskin2.c:2174
+#: OOps/diskin2.c:2176
 #, c-format
 msgid "soundin: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: OOps/diskin2.c:2224
+#: OOps/diskin2.c:2226
 msgid "soundin: not initialised"
 msgstr ""
 
@@ -4383,7 +4407,7 @@ msgstr ""
 msgid "dispfft: not initialised"
 msgstr ""
 
-#: OOps/disprep.c:473 Opcodes/spectra.c:529
+#: OOps/disprep.c:473 Opcodes/spectra.c:528
 msgid "illegal iperiod"
 msgstr ""
 
@@ -4463,11 +4487,11 @@ msgstr ""
 msgid "negative time period"
 msgstr ""
 
-#: OOps/goto_ops.c:207
+#: OOps/goto_ops.c:209
 msgid "turnoff2: invalid instrument number"
 msgstr ""
 
-#: OOps/goto_ops.c:213
+#: OOps/goto_ops.c:215
 msgid "turnoff2: invalid mode parameter"
 msgstr ""
 
@@ -4501,11 +4525,11 @@ msgstr ""
 msgid "Invalid arp mode selected: %d. Valid modes are 0, 1, 2, and 3\n"
 msgstr ""
 
-#: OOps/midiout.c:119
+#: OOps/midiout.c:121
 msgid "illegal mrtmsg argument"
 msgstr ""
 
-#: OOps/midiout.c:398
+#: OOps/midiout.c:401
 #, c-format
 msgid "out contr14 msb:%x lsb:%x\n"
 msgstr ""
@@ -4517,164 +4541,164 @@ msgid ""
 "error - fft parameter n has more than 15 factors : %d"
 msgstr ""
 
-#: OOps/mxfft.c:940
+#: OOps/mxfft.c:941
 #, c-format
 msgid "csoundRealFFTnp2(): invalid FFT size, %d"
 msgstr ""
 
-#: OOps/mxfft.c:963 OOps/mxfft.c:975
+#: OOps/mxfft.c:964 OOps/mxfft.c:976
 msgid "csoundInverseRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/mxfft.c:984
+#: OOps/mxfft.c:985
 msgid "csoundRealFFTnp2(): invalid FFT size"
 msgstr ""
 
-#: OOps/oscils.c:233
+#: OOps/oscils.c:237
 msgid "tablexkt: not initialised"
 msgstr ""
 
-#: OOps/pstream.c:130 OOps/pstream.c:405 OOps/pstream.c:670 OOps/pstream.c:786
+#: OOps/pstream.c:127 OOps/pstream.c:402 OOps/pstream.c:667 OOps/pstream.c:783
 msgid "Sliding version not yet available"
 msgstr ""
 
-#: OOps/pstream.c:140
+#: OOps/pstream.c:137
 msgid "pvadsyn: bad value for inoscs\n"
 msgstr ""
 
-#: OOps/pstream.c:144
+#: OOps/pstream.c:141
 msgid "pvadsyn: format must be amp-freq (0).\n"
 msgstr ""
 
-#: OOps/pstream.c:155
+#: OOps/pstream.c:152
 msgid "pvsadsyn: ibin parameter out of range.\n"
 msgstr ""
 
-#: OOps/pstream.c:158
+#: OOps/pstream.c:155
 msgid "pvsadsyn: ibin + inoscs too large.\n"
 msgstr ""
 
-#: OOps/pstream.c:162
+#: OOps/pstream.c:159
 msgid "pvsadsyn: ibin + (inoscs * ibinoffset) too large."
 msgstr ""
 
-#: OOps/pstream.c:273
+#: OOps/pstream.c:270
 msgid "pvsynth: Not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:301
+#: OOps/pstream.c:298
 msgid "pvscross: source and dest signals must have same format\n"
 msgstr ""
 
-#: OOps/pstream.c:334
+#: OOps/pstream.c:331
 msgid "pvscross: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:339
+#: OOps/pstream.c:336
 msgid "pvscross: mismatch in fsrc format\n"
 msgstr ""
 
-#: OOps/pstream.c:342
+#: OOps/pstream.c:339
 msgid "pvscross: mismatch in fdest format\n"
 msgstr ""
 
-#: OOps/pstream.c:407
+#: OOps/pstream.c:404
 msgid "pvsfread: file is empty!\n"
 msgstr ""
 
-#: OOps/pstream.c:410
+#: OOps/pstream.c:407
 msgid "pvsfread: file has only one frame (= impulse response).\n"
 msgstr ""
 
-#: OOps/pstream.c:413
+#: OOps/pstream.c:410
 msgid "pvsfread: analysis frame overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pstream.c:417
+#: OOps/pstream.c:414
 msgid "pvsfread: ichan value exceeds file channel count.\n"
 msgstr ""
 
-#: OOps/pstream.c:421
+#: OOps/pstream.c:418
 msgid "pvsfread: ichan cannot be negative.\n"
 msgstr ""
 
-#: OOps/pstream.c:466
+#: OOps/pstream.c:463
 msgid "pvsfread: not initialised.\n"
 msgstr ""
 
-#: OOps/pstream.c:525
+#: OOps/pstream.c:522
 msgid "pvsmaska: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: OOps/pstream.c:552
+#: OOps/pstream.c:549
 msgid "pvsmaska: ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:578
+#: OOps/pstream.c:575
 msgid "pvsmaska: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:583
+#: OOps/pstream.c:580
 msgid "pvsmaska: negative value for kdepth; clipped to zero.\n"
 msgstr ""
 
-#: OOps/pstream.c:591
+#: OOps/pstream.c:588
 msgid "pvsmaska: kdepth > 1: clipped.\n"
 msgstr ""
 
-#: OOps/pstream.c:660
+#: OOps/pstream.c:657
 msgid "pvsftw: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:663
+#: OOps/pstream.c:660
 msgid "pvsftw: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:665
+#: OOps/pstream.c:662
 msgid "pvsftw: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:677
+#: OOps/pstream.c:674
 msgid "pvsftw: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:694
+#: OOps/pstream.c:691
 msgid "pvsftw: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:715
+#: OOps/pstream.c:712
 msgid "pvsftw: not initialised\n"
 msgstr ""
 
-#: OOps/pstream.c:718
+#: OOps/pstream.c:715
 msgid "pvsftw: no amps ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:723
+#: OOps/pstream.c:720
 msgid "pvsftw: no freqs ftable!\n"
 msgstr ""
 
-#: OOps/pstream.c:765
+#: OOps/pstream.c:762
 msgid "pvsftr: signal format must be amp-phase or amp-freq.\n"
 msgstr ""
 
-#: OOps/pstream.c:769
+#: OOps/pstream.c:766
 msgid "pvsftr: bad value for ifna.\n"
 msgstr ""
 
-#: OOps/pstream.c:771
+#: OOps/pstream.c:768
 msgid "pvsftr: bad value for ifnf.\n"
 msgstr ""
 
-#: OOps/pstream.c:783
+#: OOps/pstream.c:780
 msgid "pvsftr: amps ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:802
+#: OOps/pstream.c:799
 msgid "pvsftr: freqs ftable too small.\n"
 msgstr ""
 
-#: OOps/pstream.c:820
+#: OOps/pstream.c:817
 msgid "pvsftr: not initialised\n"
 msgstr ""
 
@@ -4944,31 +4968,35 @@ msgstr ""
 msgid "ftable for window not found"
 msgstr ""
 
-#: OOps/pvsanal.c:179
+#: OOps/pvsanal.c:105
+msgid "Invalid window size"
+msgstr ""
+
+#: OOps/pvsanal.c:180
 msgid "pvsanal: fftsize of 32 is too small!\n"
 msgstr ""
 
-#: OOps/pvsanal.c:184
+#: OOps/pvsanal.c:185
 msgid "pvsanal: window size too small for fftsize"
 msgstr ""
 
-#: OOps/pvsanal.c:189
+#: OOps/pvsanal.c:190
 msgid "pvsanal: overlap too big for fft size\n"
 msgstr ""
 
-#: OOps/pvsanal.c:193
+#: OOps/pvsanal.c:194
 msgid "pvsanal: overlap must be >= ksmps\n"
 msgstr ""
 
-#: OOps/pvsanal.c:470 OOps/pvsanal.c:683
+#: OOps/pvsanal.c:471 OOps/pvsanal.c:684
 msgid "pvsanal: Not Initialised.\n"
 msgstr ""
 
-#: OOps/pvsanal.c:535
+#: OOps/pvsanal.c:536
 msgid "Unknown window type; replaced by rectangular\n"
 msgstr ""
 
-#: OOps/pvsanal.c:1053
+#: OOps/pvsanal.c:1054
 msgid "pvsynth: Not Initialised.\n"
 msgstr ""
 
@@ -5040,17 +5068,17 @@ msgstr ""
 msgid "setting socket option to reuse the address\n"
 msgstr ""
 
-#: OOps/remote.c:368 Opcodes/sockrecv.c:189 Opcodes/sockrecv.c:246
-#: Opcodes/sockrecv.c:361 Opcodes/sockrecv.c:456 Opcodes/sockrecv.c:552
-#: Top/server.c:98
+#: OOps/remote.c:368 Opcodes/sockrecv.c:202 Opcodes/sockrecv.c:258
+#: Opcodes/sockrecv.c:373 Opcodes/sockrecv.c:468 Opcodes/sockrecv.c:576
+#: Top/server.c:267
 msgid "bind failed"
 msgstr ""
 
-#: OOps/remote.c:373 Opcodes/sockrecv.c:461
+#: OOps/remote.c:373 Opcodes/sockrecv.c:473
 msgid "listen failed"
 msgstr ""
 
-#: OOps/remote.c:379 Opcodes/sockrecv.c:467
+#: OOps/remote.c:379 Opcodes/sockrecv.c:479
 msgid "accept failed"
 msgstr ""
 
@@ -5115,104 +5143,104 @@ msgid ""
 "*** This version of Csound was not compiled with remote event support ***\n"
 msgstr ""
 
-#: OOps/schedule.c:166 OOps/schedule.c:185 OOps/schedule.c:249
+#: OOps/schedule.c:197 OOps/schedule.c:216 OOps/schedule.c:280
 #, c-format
 msgid "LFO: unknown oscilator type %d"
 msgstr ""
 
-#: OOps/schedule.c:379
+#: OOps/schedule.c:410
 #, c-format
 msgid "schedkwhen ignored. Instrument %d undefined\n"
 msgstr ""
 
-#: OOps/schedule.c:463
+#: OOps/schedule.c:494
 msgid "schedkwhen warning: negative kwhen reset to zero"
 msgstr ""
 
-#: OOps/schedule.c:488 OOps/schedule.c:511
+#: OOps/schedule.c:519 OOps/schedule.c:542
 msgid "trigseq: incorrect table number"
 msgstr ""
 
-#: OOps/sndinfUG.c:56 OOps/sndinfUG.c:271
+#: OOps/sndinfUG.c:57 OOps/sndinfUG.c:269
 msgid "no infile specified in the commandline"
 msgstr ""
 
-#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:131 OOps/sndinfUG.c:278
+#: OOps/sndinfUG.c:66 OOps/sndinfUG.c:130 OOps/sndinfUG.c:276
 #, c-format
 msgid "diskinfo cannot open %s"
 msgstr ""
 
-#: OOps/sndinfUG.c:283 OOps/sndinfUG.c:299
+#: OOps/sndinfUG.c:281 OOps/sndinfUG.c:298
 #, c-format
 msgid "%s: no PEAK chunk was found, scanning file for maximum amplitude"
 msgstr ""
 
-#: OOps/sndinfUG.c:294
+#: OOps/sndinfUG.c:293
 msgid "Input channel for peak exceeds number of channels in file"
 msgstr ""
 
-#: OOps/sndinfUG.c:307
+#: OOps/sndinfUG.c:306
 msgid "filepeak: error getting peak value"
 msgstr ""
 
-#: OOps/str_ops.c:81
+#: OOps/str_ops.c:82
 msgid "illegal strset index"
 msgstr ""
 
-#: OOps/str_ops.c:89
+#: OOps/str_ops.c:90
 #, c-format
 msgid "strset index conflict at %d"
 msgstr ""
 
-#: OOps/str_ops.c:90
+#: OOps/str_ops.c:91
 #, c-format
 msgid "previous value: '%s', replaced with '%s'"
 msgstr ""
 
-#: OOps/str_ops.c:114 OOps/str_ops.c:121
+#: OOps/str_ops.c:115 OOps/str_ops.c:122
 msgid "--strset: invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:254 OOps/str_ops.c:256
+#: OOps/str_ops.c:257 OOps/str_ops.c:259
 msgid "NULL string \n"
 msgstr ""
 
-#: OOps/str_ops.c:367
+#: OOps/str_ops.c:370
 msgid "a-rate argument not allowed"
 msgstr ""
 
-#: OOps/str_ops.c:372 Opcodes/stackops.c:211 Top/argdecode.c:1469
+#: OOps/str_ops.c:375 Opcodes/stackops.c:211 Top/argdecode.c:1516
 #: util/envext.c:99 util/scale.c:249
 msgid "too many arguments"
 msgstr ""
 
-#: OOps/str_ops.c:406
+#: OOps/str_ops.c:409
 msgid "insufficient arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:472
+#: OOps/str_ops.c:475
 msgid "output argument may not be the same as any of the input args"
 msgstr ""
 
-#: OOps/str_ops.c:491
+#: OOps/str_ops.c:494
 msgid "invalid format string"
 msgstr ""
 
-#: OOps/str_ops.c:523
+#: OOps/str_ops.c:526
 msgid "too many arguments for format"
 msgstr ""
 
-#: OOps/str_ops.c:627 OOps/str_ops.c:630 OOps/str_ops.c:646 OOps/str_ops.c:664
-#: OOps/str_ops.c:721 OOps/str_ops.c:725
+#: OOps/str_ops.c:630 OOps/str_ops.c:633 OOps/str_ops.c:650 OOps/str_ops.c:669
+#: OOps/str_ops.c:726 OOps/str_ops.c:730
 msgid "empty string"
 msgstr ""
 
-#: OOps/str_ops.c:633 OOps/str_ops.c:649 OOps/str_ops.c:678 OOps/str_ops.c:699
-#: OOps/str_ops.c:739 OOps/str_ops.c:760
+#: OOps/str_ops.c:636 OOps/str_ops.c:653 OOps/str_ops.c:683 OOps/str_ops.c:704
+#: OOps/str_ops.c:744 OOps/str_ops.c:765
 msgid "invalid format"
 msgstr ""
 
-#: OOps/str_ops.c:1024
+#: OOps/str_ops.c:1029
 #, c-format
 msgid "invalid option code: %g"
 msgstr ""
@@ -5229,91 +5257,97 @@ msgstr ""
 msgid "unlike signs"
 msgstr ""
 
-#: OOps/ugens1.c:193 OOps/ugens1.c:1885 OOps/ugens1.c:1895
+#: OOps/ugens1.c:140 OOps/ugens1.c:492 OOps/ugens1.c:546 OOps/ugens1.c:606
+#: OOps/ugens1.c:667 OOps/ugens1.c:881 OOps/ugens1.c:1817
+#: Opcodes/gab/vectorial.c:2198 Opcodes/vpvoc.c:41
+msgid "incomplete number of input arguments"
+msgstr ""
+
+#: OOps/ugens1.c:192 OOps/ugens1.c:1880 OOps/ugens1.c:1890
 #, c-format
 msgid "Breakpoint %d not valid"
 msgstr ""
 
-#: OOps/ugens1.c:232
+#: OOps/ugens1.c:231
 msgid "linseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:285
+#: OOps/ugens1.c:284
 msgid "linseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:346
+#: OOps/ugens1.c:345
 msgid "length of ADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:533 OOps/ugens1.c:535 OOps/ugens1.c:593 OOps/ugens1.c:595
-#: OOps/ugens1.c:656 OOps/ugens1.c:658 OOps/ugens1.c:713 OOps/ugens1.c:715
-#: OOps/ugens1.c:926 OOps/ugens1.c:928
+#: OOps/ugens1.c:531 OOps/ugens1.c:533 OOps/ugens1.c:590 OOps/ugens1.c:592
+#: OOps/ugens1.c:652 OOps/ugens1.c:654 OOps/ugens1.c:708 OOps/ugens1.c:710
+#: OOps/ugens1.c:920 OOps/ugens1.c:922
 #, c-format
 msgid "ival%d is zero"
 msgstr ""
 
-#: OOps/ugens1.c:536 OOps/ugens1.c:596 OOps/ugens1.c:659 OOps/ugens1.c:716
-#: OOps/ugens1.c:929
+#: OOps/ugens1.c:534 OOps/ugens1.c:593 OOps/ugens1.c:655 OOps/ugens1.c:711
+#: OOps/ugens1.c:923
 #, c-format
 msgid "ival%d sign conflict"
 msgstr ""
 
-#: OOps/ugens1.c:572 OOps/ugens1.c:632
+#: OOps/ugens1.c:569 OOps/ugens1.c:628
 #, c-format
 msgid "Breakpoint time %f not valid"
 msgstr ""
 
-#: OOps/ugens1.c:762
+#: OOps/ugens1.c:757
 msgid "length of XADSR note too short"
 msgstr ""
 
-#: OOps/ugens1.c:842
+#: OOps/ugens1.c:837
 msgid "expseg (krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:874
+#: OOps/ugens1.c:869
 msgid "expseg (arate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1076 OOps/ugens1.c:1108
+#: OOps/ugens1.c:1070 OOps/ugens1.c:1102
 msgid "p3 too short in linen"
 msgstr ""
 
-#: OOps/ugens1.c:1223 OOps/ugens1.c:1246 OOps/ugens1.c:1379 OOps/ugens1.c:1495
-#: OOps/ugens1.c:1626 OOps/ugens1.c:1685
+#: OOps/ugens1.c:1218 OOps/ugens1.c:1241 OOps/ugens1.c:1374 OOps/ugens1.c:1490
+#: OOps/ugens1.c:1621 OOps/ugens1.c:1680
 msgid "non-positive iatdec"
 msgstr ""
 
-#: OOps/ugens1.c:1334 OOps/ugens1.c:1449 OOps/ugens1.c:1588 OOps/ugens1.c:1647
+#: OOps/ugens1.c:1329 OOps/ugens1.c:1444 OOps/ugens1.c:1583 OOps/ugens1.c:1642
 msgid "ixmod out of range."
 msgstr ""
 
-#: OOps/ugens1.c:1353 OOps/ugens1.c:1469
+#: OOps/ugens1.c:1348 OOps/ugens1.c:1464
 msgid "p3 too short in envlpx"
 msgstr ""
 
-#: OOps/ugens1.c:1364 OOps/ugens1.c:1480 OOps/ugens1.c:1616 OOps/ugens1.c:1675
+#: OOps/ugens1.c:1359 OOps/ugens1.c:1475 OOps/ugens1.c:1611 OOps/ugens1.c:1670
 msgid "rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1408 OOps/ugens1.c:1531 OOps/ugens1.c:1760
+#: OOps/ugens1.c:1403 OOps/ugens1.c:1526 OOps/ugens1.c:1756
 msgid "envlpx rise func ends with zero"
 msgstr ""
 
-#: OOps/ugens1.c:1430 OOps/ugens1.c:1524 OOps/ugens1.c:1753
+#: OOps/ugens1.c:1425 OOps/ugens1.c:1519 OOps/ugens1.c:1749
 msgid "envlpx(krate): not initialised"
 msgstr ""
 
-#: OOps/ugens1.c:1957 OOps/ugens1.c:2208
+#: OOps/ugens1.c:1952 OOps/ugens1.c:2203
 msgid "cosseg not initialised (krate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2012
+#: OOps/ugens1.c:2007
 msgid "cosseg: not initialised (arate)\n"
 msgstr ""
 
-#: OOps/ugens1.c:2083 OOps/ugens1.c:2150
+#: OOps/ugens1.c:2078 OOps/ugens1.c:2145
 msgid "cossegr: not initialised (arate)\n"
 msgstr ""
 
@@ -5396,11 +5430,6 @@ msgstr ""
 msgid "oscil3: not initialised"
 msgstr ""
 
-#: OOps/ugens2a.c:67
-#, c-format
-msgid "Table write offset %f < 0 or > tablelength"
-msgstr ""
-
 #: OOps/ugens3.c:118
 msgid "foscil: not initialised"
 msgstr ""
@@ -5417,42 +5446,42 @@ msgstr ""
 msgid "loscil: sustain defers to non-looping source"
 msgstr ""
 
-#: OOps/ugens3.c:286
+#: OOps/ugens3.c:287
 msgid "mono loscil cannot read from stereo ftable"
 msgstr ""
 
-#: OOps/ugens3.c:292
+#: OOps/ugens3.c:293
 msgid "stereo loscil cannot read from mono ftable"
 msgstr ""
 
-#: OOps/ugens3.c:299
+#: OOps/ugens3.c:300
 msgid "illegal sustain loop data"
 msgstr ""
 
-#: OOps/ugens3.c:301
+#: OOps/ugens3.c:302
 msgid "illegal release loop data"
 msgstr ""
 
-#: OOps/ugens3.c:835
+#: OOps/ugens3.c:842
 #, c-format
 msgid "ADSYN cannot load %s"
 msgstr ""
 
-#: OOps/ugens3.c:865
+#: OOps/ugens3.c:871
 #, c-format
 msgid "illegal code %d encountered"
 msgstr ""
 
-#: OOps/ugens3.c:871
+#: OOps/ugens3.c:876
 #, c-format
 msgid "%d amp tracks, %d freq tracks"
 msgstr ""
 
-#: OOps/ugens3.c:881
+#: OOps/ugens3.c:886
 msgid "partial count exceeds MAXPTLS"
 msgstr ""
 
-#: OOps/ugens3.c:909
+#: OOps/ugens3.c:914
 msgid "adsyn: not initialised"
 msgstr ""
 
@@ -5492,120 +5521,115 @@ msgstr ""
 msgid "pluck: kcps more than sample rate"
 msgstr ""
 
-#: OOps/ugens4.c:472 OOps/ugens4.c:583 OOps/ugens4.c:689
-#, c-format
-msgid "Seeding from current time %lu\n"
-msgstr ""
-
-#: OOps/ugens5.c:286 OOps/ugens5.c:399 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:213
+#: OOps/ugens5.c:286 OOps/ugens5.c:404 Opcodes/gab/gab.c:52 Opcodes/ugsc.c:214
 #, c-format
 msgid "illegal reson iscl value, %f"
 msgstr ""
 
-#: OOps/ugens5.c:622
+#: OOps/ugens5.c:629
 #, c-format
 msgid "LPREAD cannot load %s"
 msgstr ""
 
-#: OOps/ugens5.c:633
+#: OOps/ugens5.c:640
 #, c-format
 msgid "Using %s type of file.\n"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "pole"
 msgstr ""
 
-#: OOps/ugens5.c:634
+#: OOps/ugens5.c:641
 msgid "filter coefficient"
 msgstr ""
 
-#: OOps/ugens5.c:639
+#: OOps/ugens5.c:646
 msgid "lpheader overriding inputs"
 msgstr ""
 
-#: OOps/ugens5.c:643
+#: OOps/ugens5.c:650
 msgid "lpfile srate != orch sr"
 msgstr ""
 
-#: OOps/ugens5.c:651
+#: OOps/ugens5.c:658
 #, c-format
 msgid "file %s bytes are in wrong order"
 msgstr ""
 
-#: OOps/ugens5.c:661
+#: OOps/ugens5.c:668
 msgid "insufficient args and no file header"
 msgstr ""
 
-#: OOps/ugens5.c:676
+#: OOps/ugens5.c:683
 #, c-format
-msgid "npoles %ld, nvals %ld, totvals %ld, lastfram16 = %lx\n"
+msgid "npoles %d, nvals %d, totvals %d, lastfram16 = %x\n"
 msgstr ""
 
-#: OOps/ugens5.c:701 util/lpanal.c:329
+#: OOps/ugens5.c:708 util/lpanal.c:329
 #, c-format
 msgid "magnitude: %f   Phase: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:704 util/lpanal.c:332
+#: OOps/ugens5.c:711 util/lpanal.c:332
 #, c-format
 msgid "Real: %f   Imag: %f\n"
 msgstr ""
 
-#: OOps/ugens5.c:759
+#: OOps/ugens5.c:766
 msgid "Cannot handle uneven pole count yet \n"
 msgstr ""
 
-#: OOps/ugens5.c:876
+#: OOps/ugens5.c:883
 msgid "lpread: not initialised"
 msgstr ""
 
-#: OOps/ugens5.c:882
+#: OOps/ugens5.c:889
 msgid "lpread timpnt < 0"
 msgstr ""
 
-#: OOps/ugens5.c:888
+#: OOps/ugens5.c:895
 msgid "lpread ktimpnt truncated to last frame"
 msgstr ""
 
-#: OOps/ugens5.c:919 OOps/ugens5.c:1434
+#: OOps/ugens5.c:926 OOps/ugens5.c:1441
 msgid "Interpolation failed"
 msgstr ""
 
-#: OOps/ugens5.c:979
+#: OOps/ugens5.c:986
 msgid "this opcode only works with LPC pole analysis type (-a)\n"
 msgstr ""
 
-#: OOps/ugens5.c:1115
+#: OOps/ugens5.c:1122
 msgid "Pole file not supported for this opcode !"
 msgstr ""
 
-#: OOps/ugens5.c:1145
+#: OOps/ugens5.c:1152
 #, c-format
 msgid "illegal frqratio, %5.2f"
 msgstr ""
 
-#: OOps/ugens5.c:1355
+#: OOps/ugens5.c:1362
 msgid "lpslot number should be positive"
 msgstr ""
 
-#: OOps/ugens5.c:1375
+#: OOps/ugens5.c:1382
 msgid "LPC slot is not allocated"
 msgstr ""
 
-#: OOps/ugens5.c:1383
+#: OOps/ugens5.c:1390
 msgid "lpinterpol works only with poles files.."
 msgstr ""
 
-#: OOps/ugens5.c:1387
+#: OOps/ugens5.c:1394
 msgid "The poles files have different pole count"
 msgstr ""
 
-#: OOps/ugens5.c:1393
+#: OOps/ugens5.c:1400
 msgid "padding error"
 msgstr ""
 
-#: OOps/ugens5.c:1418
+#: OOps/ugens5.c:1425
 msgid "lpinterpol: not initialised"
 msgstr ""
 
@@ -5663,8 +5687,8 @@ msgstr ""
 msgid "deltap3: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:483
-#: Opcodes/ugmoss.c:487
+#: OOps/ugens6.c:908 OOps/ugens6.c:912 Opcodes/ugmoss.c:490
+#: Opcodes/ugmoss.c:494
 msgid "illegal loop time"
 msgstr ""
 
@@ -5684,11 +5708,11 @@ msgstr ""
 msgid "revlpsiz inconsistent\n"
 msgstr ""
 
-#: OOps/ugens6.c:1175
-msgid "reverb: not intialised"
+#: OOps/ugens6.c:1176
+msgid "reverb: not initialised"
 msgstr ""
 
-#: OOps/ugens6.c:1249
+#: OOps/ugens6.c:1250
 msgid "pan: not initialised"
 msgstr ""
 
@@ -5821,191 +5845,190 @@ msgstr ""
 msgid "time %11.5f: "
 msgstr ""
 
-#: OOps/ugrw1.c:956 OOps/ugrw1.c:1143
+#: OOps/ugrw1.c:956 OOps/ugrw1.c:965 OOps/ugrw1.c:1151
 msgid "null string\n"
 msgstr ""
 
-#: OOps/ugrw1.c:1153
+#: OOps/ugrw1.c:1161
 msgid "printks not initialised"
 msgstr ""
 
-#: OOps/ugrw1.c:1207
+#: OOps/ugrw1.c:1179 OOps/ugrw1.c:1200 OOps/ugrw1.c:1220 OOps/ugrw1.c:1325
+msgid "Insufficient arguments in formatted printing"
+msgstr ""
+
+#: OOps/ugrw1.c:1224
 #, c-format
 msgid "Formatting string too long: %s"
 msgstr ""
 
-#: OOps/ugrw1.c:1338
+#: OOps/ugrw1.c:1358
 msgid "inz index > isizea. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1341
+#: OOps/ugrw1.c:1361
 msgid "inz index < 0. Not writing."
 msgstr ""
 
-#: OOps/ugrw1.c:1385 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
+#: OOps/ugrw1.c:1405 Opcodes/vbap_zak.c:208 Opcodes/vbap_zak.c:520
 msgid "outz index > isizea. No output"
 msgstr ""
 
-#: OOps/ugrw1.c:1388 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
+#: OOps/ugrw1.c:1408 Opcodes/vbap_zak.c:212 Opcodes/vbap_zak.c:524
 msgid "outz index < 0. No output."
 msgstr ""
 
-#: OOps/ugrw2.c:273
-#, c-format
-msgid "Illegal resonk iscl value, %f"
-msgstr ""
-
-#: OOps/ugtabs.c:39 OOps/ugtabs.c:77 OOps/ugtabs.c:160 OOps/ugtabs.c:273
-#: OOps/ugtabs.c:435 OOps/ugtabs.c:452 OOps/ugtabs.c:468 OOps/ugtabs.c:485
-#: OOps/ugtabs.c:500 OOps/ugtabs.c:515 OOps/ugtabs.c:535 OOps/ugtabs.c:623
-#: OOps/ugtabs.c:640 OOps/ugtabs.c:654 OOps/ugtabs.c:667 OOps/ugtabs.c:703
-#: OOps/ugtabs.c:710 OOps/ugtabs.c:717 OOps/ugtabs.c:801 OOps/ugtabs.c:848
+#: OOps/ugtabs.c:39 OOps/ugtabs.c:78 OOps/ugtabs.c:161 OOps/ugtabs.c:274
+#: OOps/ugtabs.c:436 OOps/ugtabs.c:453 OOps/ugtabs.c:469 OOps/ugtabs.c:486
+#: OOps/ugtabs.c:501 OOps/ugtabs.c:516 OOps/ugtabs.c:536 OOps/ugtabs.c:624
+#: OOps/ugtabs.c:641 OOps/ugtabs.c:655 OOps/ugtabs.c:668 OOps/ugtabs.c:704
+#: OOps/ugtabs.c:711 OOps/ugtabs.c:718 OOps/ugtabs.c:802 OOps/ugtabs.c:849
 #: Opcodes/getftargs.c:72
 #, c-format
 msgid "table: could not find ftable %d"
 msgstr ""
 
-#: OOps/ugtabs.c:72
+#: OOps/ugtabs.c:73
 msgid "table: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:424
+#: OOps/ugtabs.c:425
 msgid "tablekt: index type inconsistent with output"
 msgstr ""
 
-#: OOps/ugtabs.c:681
+#: OOps/ugtabs.c:682
 #, c-format
 msgid "table: could not find ftables %d and/or %d"
 msgstr ""
 
-#: OOps/ugtabs.c:810 OOps/ugtabs.c:857
+#: OOps/ugtabs.c:811 OOps/ugtabs.c:858
 #, c-format
 msgid "table: could not read negative pos %d"
 msgstr ""
 
-#: OOps/vdelay.c:141 OOps/vdelay.c:403 OOps/vdelay.c:472 OOps/vdelay.c:550
-#: OOps/vdelay.c:627 OOps/vdelay.c:722 OOps/vdelay.c:817
+#: OOps/vdelay.c:144 OOps/vdelay.c:410 OOps/vdelay.c:479 OOps/vdelay.c:557
+#: OOps/vdelay.c:634 OOps/vdelay.c:729 OOps/vdelay.c:824
 msgid "vdelay: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:251
+#: OOps/vdelay.c:255
 msgid "vdelay3: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:828
+#: OOps/vdelay.c:835
 msgid "Wrong input count in multitap\n"
 msgstr ""
 
-#: OOps/vdelay.c:880
+#: OOps/vdelay.c:887
 msgid "multitap: not initialised"
 msgstr ""
 
-#: OOps/vdelay.c:1000
+#: OOps/vdelay.c:1008
 msgid "High frequency diffusion not in (0, 1)\n"
 msgstr ""
 
-#: OOps/vdelay.c:1016
+#: OOps/vdelay.c:1024
 #, c-format
 msgid "reverbx; Combs ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1048
+#: OOps/vdelay.c:1056
 #, c-format
 msgid "reverbx; Alpas ftable must have %d time and %d gain values"
 msgstr ""
 
-#: OOps/vdelay.c:1165
+#: OOps/vdelay.c:1173
 msgid "High frequency diffusion>1\n"
 msgstr ""
 
-#: OOps/vdelay.c:1169
+#: OOps/vdelay.c:1177
 msgid "High frequency diffusion<0\n"
 msgstr ""
 
-#: OOps/vdelay.c:1173
+#: OOps/vdelay.c:1181
 msgid "Non positive reverb time\n"
 msgstr ""
 
-#: OOps/vdelay.c:1230
+#: OOps/vdelay.c:1238
 msgid "reverbx: not initialised"
 msgstr ""
 
-#: Opcodes/OSC.c:132
+#: Opcodes/OSC.c:134
 msgid "Too many arguments to OSCsend"
 msgstr ""
 
-#: Opcodes/OSC.c:210
+#: Opcodes/OSC.c:212
 msgid "Failed to set multicast"
 msgstr ""
 
-#: Opcodes/OSC.c:270
+#: Opcodes/OSC.c:272
 msgid "Time stamp is two values"
 msgstr ""
 
-#: Opcodes/OSC.c:294
+#: Opcodes/OSC.c:296
 #, c-format
 msgid "ftable %.2f does not exist"
 msgstr ""
 
-#: Opcodes/OSC.c:330
+#: Opcodes/OSC.c:332
 #, c-format
 msgid "argument %d is not an array"
 msgstr ""
 
-#: Opcodes/OSC.c:352
+#: Opcodes/OSC.c:354
 #, c-format
 msgid "Unknown OSC type %c\n"
 msgstr ""
 
-#: Opcodes/OSC.c:413
+#: Opcodes/OSC.c:415
 msgid "OSC: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/OSC.c:561
+#: Opcodes/OSC.c:563
 msgid "OSC deinitiatised\n"
 msgstr ""
 
-#: Opcodes/OSC.c:584 Opcodes/OSC.c:620
+#: Opcodes/OSC.c:586 Opcodes/OSC.c:622
 #, c-format
 msgid "cannot start OSC listener on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:593
+#: Opcodes/OSC.c:595
 #, c-format
 msgid "OSC listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:630
+#: Opcodes/OSC.c:632
 #, c-format
 msgid "OSC multicast listener #%d started on port %s\n"
 msgstr ""
 
-#: Opcodes/OSC.c:683
+#: Opcodes/OSC.c:685
 msgid "OSC not running"
 msgstr ""
 
-#: Opcodes/OSC.c:687
+#: Opcodes/OSC.c:689
 msgid "invalid handle"
 msgstr ""
 
-#: Opcodes/OSC.c:695
+#: Opcodes/OSC.c:697
 msgid "invalid number of arguments"
 msgstr ""
 
-#: Opcodes/OSC.c:721 Opcodes/OSC.c:726
+#: Opcodes/OSC.c:700 Opcodes/OSC.c:722 Opcodes/OSC.c:727
 msgid "argument list inconsistent with format string"
 msgstr ""
 
-#: Opcodes/OSC.c:730
+#: Opcodes/OSC.c:731
 msgid "invalid type"
 msgstr ""
 
-#: Opcodes/OSC.c:846
+#: Opcodes/OSC.c:847
 #, c-format
 msgid "Invalid ftable no. %d"
 msgstr ""
 
-#: Opcodes/OSC.c:851
+#: Opcodes/OSC.c:852 Opcodes/OSC.c:863
 msgid "OSC internal error"
 msgstr ""
 
@@ -6086,7 +6109,7 @@ msgstr ""
 msgid "bformdec1 output array not initilised"
 msgstr ""
 
-#: Opcodes/arrayops.cpp:74 Opcodes/arrayops.cpp:174
+#: Opcodes/arrayops.cpp:76 Opcodes/arrayops.cpp:176
 msgid "second input array is too short\n"
 msgstr ""
 
@@ -6098,182 +6121,197 @@ msgstr ""
 msgid "Error: sizes must be > 0 for array initialization"
 msgstr ""
 
-#: Opcodes/arrays.c:151
+#: Opcodes/arrays.c:150
 msgid "fillarrray: arrays with dim > 2 not currently supported\n"
 msgstr ""
 
-#: Opcodes/arrays.c:165
+#: Opcodes/arrays.c:164
 msgid "Cannot set i-array at k-rate\n"
 msgstr ""
 
-#: Opcodes/arrays.c:178
+#: Opcodes/arrays.c:177
 msgid "Error: no indexes set for array set\n"
 msgstr ""
 
-#: Opcodes/arrays.c:183
+#: Opcodes/arrays.c:182
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:193 Opcodes/arrays.c:204 Opcodes/arrays.c:246
-#: Opcodes/arrays.c:257
+#: Opcodes/arrays.c:192 Opcodes/arrays.c:203 Opcodes/arrays.c:245
+#: Opcodes/arrays.c:256
 #, c-format
 msgid "Array index %d out of range (0,%d) for dimension %d"
 msgstr ""
 
-#: Opcodes/arrays.c:234
+#: Opcodes/arrays.c:233
 msgid "Error: no indexes set for array get"
 msgstr ""
 
-#: Opcodes/arrays.c:237
+#: Opcodes/arrays.c:236
 #, c-format
 msgid "Array dimension %d out of range for dimensions %d"
 msgstr ""
 
-#: Opcodes/arrays.c:325
+#: Opcodes/arrays.c:324
 msgid "Dimensions do not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:333 Opcodes/arrays.c:358 Opcodes/arrays.c:376
-#: Opcodes/arrays.c:390 Opcodes/arrays.c:410 Opcodes/arrays.c:447
-#: Opcodes/arrays.c:468 Opcodes/arrays.c:493 Opcodes/arrays.c:514
-#: Opcodes/arrays.c:551 Opcodes/arrays.c:589 Opcodes/arrays.c:609
-#: Opcodes/arrays.c:626 Opcodes/arrays.c:667 Opcodes/arrays.c:690
-#: Opcodes/arrays.c:713 Opcodes/arrays.c:733 Opcodes/arrays.c:761
-#: Opcodes/arrays.c:788 Opcodes/arrays.c:837 Opcodes/arrays.c:843
-#: Opcodes/arrays.c:854 Opcodes/arrays.c:885 Opcodes/arrays.c:916
-#: Opcodes/arrays.c:937 Opcodes/arrays.c:1009 Opcodes/pvsbasic.c:2431
-#: Opcodes/pvsbasic.c:2462 Opcodes/pvsbasic.c:2510
+#: Opcodes/arrays.c:332 Opcodes/arrays.c:357 Opcodes/arrays.c:375
+#: Opcodes/arrays.c:388 Opcodes/arrays.c:407 Opcodes/arrays.c:443
+#: Opcodes/arrays.c:463 Opcodes/arrays.c:487 Opcodes/arrays.c:507
+#: Opcodes/arrays.c:544 Opcodes/arrays.c:582 Opcodes/arrays.c:602
+#: Opcodes/arrays.c:619 Opcodes/arrays.c:660 Opcodes/arrays.c:680
+#: Opcodes/arrays.c:707 Opcodes/arrays.c:727 Opcodes/arrays.c:755
+#: Opcodes/arrays.c:782 Opcodes/arrays.c:838 Opcodes/arrays.c:872
+#: Opcodes/arrays.c:903 Opcodes/arrays.c:934 Opcodes/arrays.c:970
+#: Opcodes/arrays.c:1000 Opcodes/arrays.c:1030 Opcodes/arrays.c:1060
+#: Opcodes/arrays.c:1090 Opcodes/arrays.c:1120 Opcodes/arrays.c:1150
+#: Opcodes/arrays.c:1185 Opcodes/arrays.c:1220 Opcodes/arrays.c:1247
+#: Opcodes/arrays.c:1253 Opcodes/arrays.c:1264 Opcodes/arrays.c:1295
+#: Opcodes/arrays.c:1326 Opcodes/arrays.c:1347 Opcodes/arrays.c:1419
+#: Opcodes/arrays.c:1465 Opcodes/pvsbasic.c:2431 Opcodes/pvsbasic.c:2462
+#: Opcodes/pvsbasic.c:2510
 msgid "array-variable not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:352 Opcodes/arrays.c:370
+#: Opcodes/arrays.c:351 Opcodes/arrays.c:369
 msgid "Dimension does not match in array arithmetic"
 msgstr ""
 
-#: Opcodes/arrays.c:478 Opcodes/arrays.c:741
+#: Opcodes/arrays.c:473 Opcodes/arrays.c:735
 #, c-format
 msgid "division by zero in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:523 Opcodes/arrays.c:770 Opcodes/arrays.c:797
+#: Opcodes/arrays.c:516 Opcodes/arrays.c:764 Opcodes/arrays.c:791
 #, c-format
 msgid "undefined power in array-var at index %d"
 msgstr ""
 
-#: Opcodes/arrays.c:664 Opcodes/arrays.c:687 Opcodes/arrays.c:710
+#: Opcodes/arrays.c:657 Opcodes/arrays.c:687 Opcodes/arrays.c:704
+#: Opcodes/arrays.c:1188
 msgid "division by zero in array-var"
 msgstr ""
 
-#: Opcodes/arrays.c:919
+#: Opcodes/arrays.c:949 Opcodes/arrays.c:1164
+#, c-format
+msgid "division by zero in array-var at index %d/%d"
+msgstr ""
+
+#: Opcodes/arrays.c:1329
 msgid "array-variable not a vector"
 msgstr ""
 
-#: Opcodes/arrays.c:1012
+#: Opcodes/arrays.c:1423 Opcodes/arrays.c:1468
 msgid "array-variable dimensions do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1014
+#: Opcodes/arrays.c:1425
 msgid "array-variable types do not match"
 msgstr ""
 
-#: Opcodes/arrays.c:1061 Opcodes/arrays.c:1082 Opcodes/arrays.c:1259
-#: Opcodes/arrays.c:1295 Opcodes/arrays.c:1298
+#: Opcodes/arrays.c:1517 Opcodes/arrays.c:1538 Opcodes/arrays.c:1717
+#: Opcodes/arrays.c:1753 Opcodes/arrays.c:1756
 msgid "array-var not initialised"
 msgstr ""
 
-#: Opcodes/arrays.c:1064 Opcodes/arrays.c:1084 Opcodes/arrays.c:1142
-#: Opcodes/arrays.c:1164
+#: Opcodes/arrays.c:1520 Opcodes/arrays.c:1540 Opcodes/arrays.c:1598
+#: Opcodes/arrays.c:1620
 msgid "No table for copy2ftab"
 msgstr ""
 
-#: Opcodes/arrays.c:1114
+#: Opcodes/arrays.c:1570
 msgid "inconsistent start, end and increment parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1198
+#: Opcodes/arrays.c:1655
 msgid "inconsistent start, end parameters"
 msgstr ""
 
-#: Opcodes/arrays.c:1201
+#: Opcodes/arrays.c:1658
 msgid "slice larger than original size"
 msgstr ""
 
-#: Opcodes/arrays.c:1272
+#: Opcodes/arrays.c:1661
+msgid "slice increment must be positive"
+msgstr ""
+
+#: Opcodes/arrays.c:1730
 #, c-format
 msgid "%s not found"
 msgstr ""
 
-#: Opcodes/arrays.c:1303
+#: Opcodes/arrays.c:1761
 msgid "map fn not found at k rate"
 msgstr ""
 
-#: Opcodes/arrays.c:1480
+#: Opcodes/arrays.c:1938
 msgid "rfft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1513
+#: Opcodes/arrays.c:1971
 msgid "rifft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1544
+#: Opcodes/arrays.c:2002
 msgid "array sizes do not match\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1568
+#: Opcodes/arrays.c:2026
 msgid "fft: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1595
+#: Opcodes/arrays.c:2053
 msgid "fftinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:1656
+#: Opcodes/arrays.c:2114
 #, c-format
 msgid "in array sizes do not match: %d and %d\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1827 Opcodes/arrays.c:1867 Opcodes/arrays.c:1899
+#: Opcodes/arrays.c:2285 Opcodes/arrays.c:2325 Opcodes/arrays.c:2357
 msgid "non-pow-of-two case not implemented yet\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1860
+#: Opcodes/arrays.c:2318
 msgid "FFT size too small (min 64 samples)\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1927 Opcodes/arrays.c:1950
+#: Opcodes/arrays.c:2385 Opcodes/arrays.c:2408
 msgid "in array not 2-dimensional\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1939
+#: Opcodes/arrays.c:2397
 msgid "requested row is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1964
+#: Opcodes/arrays.c:2422
 msgid "requested col is out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:1996 Opcodes/arrays.c:2015
+#: Opcodes/arrays.c:2455 Opcodes/arrays.c:2475
 msgid "Error: index out of range\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2051
+#: Opcodes/arrays.c:2511
 msgid "input array too small\n"
 msgstr ""
 
-#: Opcodes/arrays.c:2101
+#: Opcodes/arrays.c:2561
 msgid "dct: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2107
+#: Opcodes/arrays.c:2568
 msgid "dct: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
-#: Opcodes/arrays.c:2129
+#: Opcodes/arrays.c:2590
 msgid "dctinv: only one-dimensional arrays allowed"
 msgstr ""
 
-#: Opcodes/arrays.c:2136
+#: Opcodes/arrays.c:2598
 msgid "dctinv: non-pow-of-two sizes not yet implemented"
 msgstr ""
 
@@ -6298,7 +6336,7 @@ msgstr ""
 
 #: Opcodes/bowedbar.c:53
 #, c-format
-msgid "DLineN: Delay length too big ... setting to maximum length of %ld.\n"
+msgid "DLineN: Delay length too big ... setting to maximum length of %d.\n"
 msgstr ""
 
 #: Opcodes/bowedbar.c:98
@@ -6381,21 +6419,21 @@ msgstr ""
 msgid "code error, ihilo out of range"
 msgstr ""
 
-#: Opcodes/control.c:63
+#: Opcodes/control.c:44
 msgid "control: failed to allocate globals"
 msgstr ""
 
-#: Opcodes/control.c:81
+#: Opcodes/control.c:62
 #, c-format
 msgid "Closing down wish(%d)\n"
 msgstr ""
 
-#: Opcodes/control.c:242
+#: Opcodes/control.c:223
 #, c-format
 msgid "Slider %d set to %s\n"
 msgstr ""
 
-#: Opcodes/control.c:247
+#: Opcodes/control.c:228
 #, c-format
 msgid "Unknown control %d"
 msgstr ""
@@ -6435,133 +6473,133 @@ msgstr ""
 msgid "readi failed to initialise"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:245
+#: Opcodes/dssi4cs/src/dssi4cs.c:244
 #, c-format
 msgid "DSSI4CS: Failed to load %s."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:250
+#: Opcodes/dssi4cs/src/dssi4cs.c:249
 msgid "Error creating global variable '$DSSI4CS'"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:260
+#: Opcodes/dssi4cs/src/dssi4cs.c:259
 msgid "DSSI4CS: Loading first instance.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:302
-msgid "No lapspa descriptor\n"
+#: Opcodes/dssi4cs/src/dssi4cs.c:301
+msgid "No ladspa descriptor\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:322
+#: Opcodes/dssi4cs/src/dssi4cs.c:323
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\": %s.\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\": %s.\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:330
+#: Opcodes/dssi4cs/src/dssi4cs.c:332
 #, c-format
 msgid ""
-"DSSI4CS: Unable to find ladspa_descriptor() function or\n"
-"dssi_descriptor() function in plugin file \"%s\".\n"
+"DSSI4CS: Unable to find ladspa_descriptor(%lu) function or\n"
+"dssi_descriptor(%lu) function in plugin file \"%s\".\n"
 "Are you sure this is a LADSPA or DSSI plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:341
+#: Opcodes/dssi4cs/src/dssi4cs.c:344
 #, c-format
 msgid "DSSI4CS: No plugin index %lu in %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:357 Opcodes/dssi4cs/src/dssi4cs.c:378
+#: Opcodes/dssi4cs/src/dssi4cs.c:360 Opcodes/dssi4cs/src/dssi4cs.c:381
 #, c-format
 msgid "DSSI4CS: Could not instantiate plugin: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:364 Opcodes/dssi4cs/src/dssi4cs.c:383
+#: Opcodes/dssi4cs/src/dssi4cs.c:367 Opcodes/dssi4cs/src/dssi4cs.c:386
 #, c-format
 msgid "DSSI4CS: No run() funtion in: %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:564
+#: Opcodes/dssi4cs/src/dssi4cs.c:566
 #, c-format
 msgid "DSSI4CS: Invalid plugin: %i (MAX= %i)."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:653
+#: Opcodes/dssi4cs/src/dssi4cs.c:655
 #, c-format
 msgid "DSSI4CS: number of audio input channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:659
+#: Opcodes/dssi4cs/src/dssi4cs.c:661
 #, c-format
 msgid "DSSI4CS: number of audio output channels is greater than %d"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:674
+#: Opcodes/dssi4cs/src/dssi4cs.c:676
 msgid "DSSI4CS: dssiaudio: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:746
+#: Opcodes/dssi4cs/src/dssi4cs.c:748
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports audio input discarded.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:750
+#: Opcodes/dssi4cs/src/dssi4cs.c:752
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio input ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:755
+#: Opcodes/dssi4cs/src/dssi4cs.c:757
 #, c-format
 msgid "DSSI4CS: Plugin '%s' has %i audio output ports."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:805
+#: Opcodes/dssi4cs/src/dssi4cs.c:808
 msgid "DSSI4CS: Invalid plugin handle."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:816
+#: Opcodes/dssi4cs/src/dssi4cs.c:819
 msgid "DSSI4CS: Audio Rate control ports not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:855
+#: Opcodes/dssi4cs/src/dssi4cs.c:851
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' does not exist."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:863
+#: Opcodes/dssi4cs/src/dssi4cs.c:866
 #, c-format
 msgid "DSSI4CS: Port %lu from '%s' is an output port."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:898
+#: Opcodes/dssi4cs/src/dssi4cs.c:901
 msgid "DSSI4CS: Not initialised or wrong argument types."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:923
+#: Opcodes/dssi4cs/src/dssi4cs.c:925
 msgid "DSSI4CS: dssinote not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:934
+#: Opcodes/dssi4cs/src/dssi4cs.c:936
 msgid "DSSI4CS: dssievent not implemented yet."
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1027 Opcodes/dssi4cs/src/dssi4cs.c:1113
+#: Opcodes/dssi4cs/src/dssi4cs.c:1028 Opcodes/dssi4cs/src/dssi4cs.c:1114
 #: Opcodes/dssi4cs/src/load.c:53
 msgid "DSSI4CS: LADSPA_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/dssi4cs.c:1036 Opcodes/dssi4cs/src/dssi4cs.c:1117
+#: Opcodes/dssi4cs/src/dssi4cs.c:1037 Opcodes/dssi4cs/src/dssi4cs.c:1118
 msgid "DSSI4CS: DSSI_PATH environment variable not set.\n"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:137
+#: Opcodes/dssi4cs/src/load.c:140
 #, c-format
 msgid "Failed to load plugin \"%s\": %s"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:172
+#: Opcodes/dssi4cs/src/load.c:175
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\": "
@@ -6569,27 +6607,35 @@ msgid ""
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:178
+#: Opcodes/dssi4cs/src/load.c:181
 #, c-format
 msgid ""
 "Unable to find ladspa_descriptor() function in plugin library file \"%s\".\n"
 "Are you sure this is a LADSPA plugin file ?"
 msgstr ""
 
-#: Opcodes/dssi4cs/src/load.c:193
+#: Opcodes/dssi4cs/src/load.c:196
 #, c-format
 msgid "Unable to find label \"%s\" in plugin library file \"%s\"."
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:286
+#: Opcodes/emugens/emugens.c:53
+msgid "linlin.k: Division by zero"
+msgstr ""
+
+#: Opcodes/emugens/emugens.c:287
 #, c-format
 msgid "expecting a char between A and G, but got %c\n"
 msgstr ""
 
-#: Opcodes/emugens/emugens.c:312
+#: Opcodes/emugens/emugens.c:313
 msgid "format not understood\n"
 msgstr ""
 
+#: Opcodes/emugens/emugens.c:428
+msgid "cmp: operator not understood. Expecting <, <=, >, >=, ==\n"
+msgstr ""
+
 #: Opcodes/fareygen.c:116
 msgid "insufficient arguments for fareytable"
 msgstr ""
@@ -6599,9 +6645,9 @@ msgstr ""
 msgid "Farey: Table no. < 1 dft=%.2f  sft=%.2f"
 msgstr ""
 
-#: Opcodes/fareyseq.c:257
+#: Opcodes/fareyseq.c:257 Opcodes/fareyseq.c:307
 #, c-format
-msgid "Farey: Filter type < 1 dft=%.2f  sft=%.2f"
+msgid "Farey: Filter type < 1 ftype=%.2f"
 msgstr ""
 
 #: Opcodes/fareyseq.c:272 Opcodes/fareyseq.c:320
@@ -6614,10 +6660,6 @@ msgstr ""
 msgid "Farey: Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/fareyseq.c:307
-msgid "Farey: Filter type < 1"
-msgstr ""
-
 #: Opcodes/fareyseq.c:446 Opcodes/fareyseq.c:467
 #, c-format
 msgid "Table no. < 1 sft=%.2f"
@@ -6628,7 +6670,7 @@ msgstr ""
 msgid "Source sft table %.2f not found."
 msgstr ""
 
-#: Opcodes/faustgen.cpp:268
+#: Opcodes/faustgen.cpp:273
 #, c-format
 msgid ""
 "\n"
@@ -6636,53 +6678,53 @@ msgid ""
 "line %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:389
+#: Opcodes/faustgen.cpp:394
 #, c-format
 msgid "could not find DSP %p for deletion"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:415
+#: Opcodes/faustgen.cpp:420
 msgid ""
 "Faust code did not compile properly.\n"
 "Check above messages for Faust compiler errors\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:421
+#: Opcodes/faustgen.cpp:426
 msgid "no factory available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:427
+#: Opcodes/faustgen.cpp:432
 #, c-format
 msgid "factory not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:432 Opcodes/faustgen.cpp:535
+#: Opcodes/faustgen.cpp:437 Opcodes/faustgen.cpp:539
 msgid "Faust instantiation problem \n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:474 Opcodes/faustgen.cpp:573
+#: Opcodes/faustgen.cpp:479 Opcodes/faustgen.cpp:577
 msgid "wrong number of input args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:478 Opcodes/faustgen.cpp:582
+#: Opcodes/faustgen.cpp:483 Opcodes/faustgen.cpp:586
 msgid "wrong number of output args\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:527
+#: Opcodes/faustgen.cpp:531
 #, c-format
 msgid "Faust compilation problem: %s\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:688
+#: Opcodes/faustgen.cpp:692
 msgid "no dsp instances available\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:695
+#: Opcodes/faustgen.cpp:699
 #, c-format
 msgid "dsp instance not found %d\n"
 msgstr ""
 
-#: Opcodes/faustgen.cpp:700
+#: Opcodes/faustgen.cpp:704
 #, c-format
 msgid "dsp control %s not found\n"
 msgstr ""
@@ -6699,31 +6741,31 @@ msgstr ""
 msgid "wguide2 xfreq1 and xfreq2 arguments must be both a-rate or k and i-rate"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:145
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:142
 msgid "error allocating fluid engine\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:214
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:215
 #, c-format
 msgid "fluid: unable to load %s"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:527
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:532
 #, c-format
 msgid ""
 "result: %d \n"
 " Note off: c:%3d k:%3d\n"
 msgstr ""
 
-#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:617
+#: Opcodes/fluidOpcodes/fluidOpcodes.cpp:621
 msgid "Illegal Interpolation Method: Must be either 0, 1, 4, or 7.\n"
 msgstr ""
 
-#: Opcodes/fm4op.c:166
+#: Opcodes/fm4op.c:167
 msgid "No table for VibWaveato"
 msgstr ""
 
-#: Opcodes/fm4op.c:185
+#: Opcodes/fm4op.c:186
 msgid "No table for FM4Op"
 msgstr ""
 
@@ -6740,7 +6782,7 @@ msgstr ""
 msgid "invalid file handle"
 msgstr ""
 
-#: Opcodes/fout.c:112 Opcodes/fout.c:652
+#: Opcodes/fout.c:112 Opcodes/fout.c:662
 msgid "invalid file name"
 msgstr ""
 
@@ -6749,27 +6791,27 @@ msgstr ""
 msgid "error opening file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:216
+#: Opcodes/fout.c:218
 #, c-format
 msgid "error opening sound file '%s'"
 msgstr ""
 
-#: Opcodes/fout.c:661
+#: Opcodes/fout.c:671
 #, c-format
 msgid "cannot close '%s': not found in list of open files"
 msgstr ""
 
-#: Opcodes/fout.c:673
+#: Opcodes/fout.c:683
 #, c-format
 msgid "cannot close file #%d: not a valid handle"
 msgstr ""
 
-#: Opcodes/fout.c:680
+#: Opcodes/fout.c:690
 #, c-format
 msgid "file #%d (%s) is in use, will be closed when released"
 msgstr ""
 
-#: Opcodes/fout.c:719 Opcodes/fout.c:722 Opcodes/fout.c:796 Opcodes/fout.c:799
+#: Opcodes/fout.c:729 Opcodes/fout.c:732 Opcodes/fout.c:806 Opcodes/fout.c:809
 msgid "fouti: invalid file handle"
 msgstr ""
 
@@ -6823,13 +6865,13 @@ msgid ""
 "size"
 msgstr ""
 
-#: Opcodes/framebuffer/OLABuffer.c:177
+#: Opcodes/framebuffer/OLABuffer.c:178
 msgid ""
 "olabuffer: Error, k-rate array size divided by overlap factor must be larger "
 "than or equal to ksmps"
 msgstr ""
 
-#: Opcodes/freeverb.c:271
+#: Opcodes/freeverb.c:272
 msgid "freeverb: not initialised"
 msgstr ""
 
@@ -6854,12 +6896,12 @@ msgstr ""
 msgid "Error deleting ftable %d"
 msgstr ""
 
-#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1401
+#: Opcodes/ftgen.c:139 Opcodes/signalflowgraph.cpp:1467
 msgid "ftgen string arg not allowed"
 msgstr ""
 
-#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1838
-#: Opcodes/oscbnk.c:1862
+#: Opcodes/ftgen.c:158 Opcodes/ftgen.c:668 Opcodes/oscbnk.c:1844
+#: Opcodes/oscbnk.c:1868
 msgid "ftgen error"
 msgstr ""
 
@@ -6904,29 +6946,29 @@ msgstr ""
 msgid "ftsave: failed to write file"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:204
+#: Opcodes/ftsamplebank.cpp:205
 #, c-format
 msgid "Cannot load file. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:256
+#: Opcodes/ftsamplebank.cpp:257
 msgid "Error: you must pass a directory as a string."
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:273
+#: Opcodes/ftsamplebank.cpp:274
 msgid "Error: second parameter to directory must be a string"
 msgstr ""
 
-#: Opcodes/ftsamplebank.cpp:338
+#: Opcodes/ftsamplebank.cpp:339
 #, c-format
 msgid "Cannot find directory. Error opening directory: %s\n"
 msgstr ""
 
-#: Opcodes/gab/gab.c:116
+#: Opcodes/gab/gab.c:114
 msgid "fastab: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:146 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
+#: Opcodes/gab/gab.c:145 Opcodes/gab/gab.c:155 Opcodes/gab/gab.c:185
 msgid "tabw off end"
 msgstr ""
 
@@ -6952,44 +6994,40 @@ msgstr ""
 msgid "tabw_i off end"
 msgstr ""
 
-#: Opcodes/gab/gab.c:249 Opcodes/gab/gab.c:258
+#: Opcodes/gab/gab.c:250 Opcodes/gab/gab.c:260
 #, c-format
 msgid "tab off end %d"
 msgstr ""
 
-#: Opcodes/gab/gab.c:271
+#: Opcodes/gab/gab.c:273
 msgid "tab_init: incorrect table number"
 msgstr ""
 
-#: Opcodes/gab/gab.c:340
-msgid "printi parameter was not a \"quoted string\""
-msgstr ""
-
-#: Opcodes/gab/gab.c:453
+#: Opcodes/gab/gab.c:430
 msgid "adsynt2: wavetable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:465
+#: Opcodes/gab/gab.c:442
 msgid "adsynt2: freqtable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:470
+#: Opcodes/gab/gab.c:447
 msgid "adsynt2: partial count is greater than freqtable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:479
+#: Opcodes/gab/gab.c:456
 msgid "adsynt2: amptable not found!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:484
+#: Opcodes/gab/gab.c:461
 msgid "adsynt2: partial count is greater than amptable size!"
 msgstr ""
 
-#: Opcodes/gab/gab.c:528
+#: Opcodes/gab/gab.c:507
 msgid "adsynt2: not initialised"
 msgstr ""
 
-#: Opcodes/gab/gab.c:809
+#: Opcodes/gab/gab.c:788
 msgid "max_k: invalid imaxflag value"
 msgstr ""
 
@@ -7029,7 +7067,7 @@ msgstr ""
 msgid "Failed to find ftable"
 msgstr ""
 
-#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2340
+#: Opcodes/gab/hvs.c:410 Opcodes/gab/vectorial.c:2338
 msgid "vphaseseg: invalid num. of elements"
 msgstr ""
 
@@ -7213,345 +7251,345 @@ msgstr ""
 msgid "vpow_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:624
+#: Opcodes/gab/vectorial.c:623
 msgid "vpow_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:652
+#: Opcodes/gab/vectorial.c:651
 msgid "vpow: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:668
+#: Opcodes/gab/vectorial.c:667
 #, c-format
 msgid "vexp_i: invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:684
+#: Opcodes/gab/vectorial.c:683
 msgid "vexp_i: ifn length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:711
+#: Opcodes/gab/vectorial.c:710
 msgid "vexp: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:729
+#: Opcodes/gab/vectorial.c:728
 #, c-format
 msgid "vectorsop: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:734
+#: Opcodes/gab/vectorial.c:733
 #, c-format
 msgid "vectorsop: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:774
+#: Opcodes/gab/vectorial.c:773
 msgid "vcopy: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:792
+#: Opcodes/gab/vectorial.c:791
 msgid "vcopy: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:819
+#: Opcodes/gab/vectorial.c:818
 #, c-format
 msgid "vcopy_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:824
+#: Opcodes/gab/vectorial.c:823
 #, c-format
 msgid "vcopy_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:846
+#: Opcodes/gab/vectorial.c:845
 msgid "vcopy_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:863
+#: Opcodes/gab/vectorial.c:862
 msgid "vcopy_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:902
+#: Opcodes/gab/vectorial.c:901
 msgid "vaddv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:921
+#: Opcodes/gab/vectorial.c:920
 msgid "vaddv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:947
+#: Opcodes/gab/vectorial.c:946
 #, c-format
 msgid "vaddv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:952
+#: Opcodes/gab/vectorial.c:951
 #, c-format
 msgid "vaddv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:974
+#: Opcodes/gab/vectorial.c:973
 msgid "vaddv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:992
+#: Opcodes/gab/vectorial.c:991
 msgid "vaddv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1023
+#: Opcodes/gab/vectorial.c:1022
 msgid "vsubv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1042
+#: Opcodes/gab/vectorial.c:1041
 msgid "vsubv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1069
+#: Opcodes/gab/vectorial.c:1068
 #, c-format
 msgid "vsubv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1074
+#: Opcodes/gab/vectorial.c:1073
 #, c-format
 msgid "vsubv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1096
+#: Opcodes/gab/vectorial.c:1095
 msgid "vsubv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1114
+#: Opcodes/gab/vectorial.c:1113
 msgid "vsubv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1151
+#: Opcodes/gab/vectorial.c:1150
 msgid "vmultv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1170
+#: Opcodes/gab/vectorial.c:1169
 msgid "vmultv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1197
+#: Opcodes/gab/vectorial.c:1196
 #, c-format
 msgid "vmultv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1202
+#: Opcodes/gab/vectorial.c:1201
 #, c-format
 msgid "vmultv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1224
+#: Opcodes/gab/vectorial.c:1223
 msgid "vmultv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1241
+#: Opcodes/gab/vectorial.c:1240
 msgid "vmultv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1278
+#: Opcodes/gab/vectorial.c:1277
 msgid "vdivv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1297
+#: Opcodes/gab/vectorial.c:1296
 msgid "vdivv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1324
+#: Opcodes/gab/vectorial.c:1323
 #, c-format
 msgid "vdivv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1329
+#: Opcodes/gab/vectorial.c:1328
 #, c-format
 msgid "vdivv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1351
+#: Opcodes/gab/vectorial.c:1350
 msgid "vdivv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1369
+#: Opcodes/gab/vectorial.c:1368
 msgid "vdivv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1406
+#: Opcodes/gab/vectorial.c:1405
 msgid "vpowv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1425
+#: Opcodes/gab/vectorial.c:1424
 msgid "vpowv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1452
+#: Opcodes/gab/vectorial.c:1451
 #, c-format
 msgid "vpowv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1457
+#: Opcodes/gab/vectorial.c:1456
 #, c-format
 msgid "vpowv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1479
+#: Opcodes/gab/vectorial.c:1478
 msgid "vpowv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1496
+#: Opcodes/gab/vectorial.c:1495
 msgid "vpowv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1533
+#: Opcodes/gab/vectorial.c:1532
 msgid "vexpv: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1552
+#: Opcodes/gab/vectorial.c:1551
 msgid "vexpv: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1579
+#: Opcodes/gab/vectorial.c:1578
 #, c-format
 msgid "vexpv_i: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1584
+#: Opcodes/gab/vectorial.c:1583
 #, c-format
 msgid "vexpv_i: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1606
+#: Opcodes/gab/vectorial.c:1605
 msgid "vexpv_i: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1624
+#: Opcodes/gab/vectorial.c:1623
 msgid "vexpv_i: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1661
+#: Opcodes/gab/vectorial.c:1660
 msgid "vmap: Error: ifn1 and ifn2 can not be the same"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1666
+#: Opcodes/gab/vectorial.c:1665
 #, c-format
 msgid "vmap: ifn1 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1671
+#: Opcodes/gab/vectorial.c:1670
 #, c-format
 msgid "vmap: ifn2 invalid table number %i"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1693
+#: Opcodes/gab/vectorial.c:1692
 msgid "vmap: ifn1 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1710
+#: Opcodes/gab/vectorial.c:1709
 msgid "vmap: ifn2 length exceeded"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1731
+#: Opcodes/gab/vectorial.c:1730
 msgid "vectorop: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1760
+#: Opcodes/gab/vectorial.c:1759
 msgid "vport: invalid table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1763
+#: Opcodes/gab/vectorial.c:1762
 msgid "vport: invalid table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1768
+#: Opcodes/gab/vectorial.c:1767
 msgid "vport: invalid init table length or num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1771
+#: Opcodes/gab/vectorial.c:1770
 msgid "vport: invalid init table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1908
+#: Opcodes/gab/vectorial.c:1907
 #, c-format
-msgid "vrandh: Seeding from current time %lu\n"
+msgid "vrandh: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1921
+#: Opcodes/gab/vectorial.c:1920
 msgid "vrandh: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1924
+#: Opcodes/gab/vectorial.c:1923
 msgid "vrandh: idstoffset is greater than table length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:1929
+#: Opcodes/gab/vectorial.c:1928
 msgid "randh: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2008
+#: Opcodes/gab/vectorial.c:2007
 #, c-format
-msgid "vrandi: Seeding from current time %lu\n"
+msgid "vrandi: Seeding from current time %u\n"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2020
+#: Opcodes/gab/vectorial.c:2019
 msgid "vrandi: Invalid table."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2023
+#: Opcodes/gab/vectorial.c:2022
 msgid "vrandi: idstoffset is greater thantable length."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2028
+#: Opcodes/gab/vectorial.c:2027
 msgid "vrandi: Table length exceeded, last elements discarded."
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2110 Opcodes/gab/vectorial.c:2117
-#: Opcodes/gab/vectorial.c:2124
+#: Opcodes/gab/vectorial.c:2109 Opcodes/gab/vectorial.c:2116
+#: Opcodes/gab/vectorial.c:2123
 msgid "vecdelay: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2112
+#: Opcodes/gab/vectorial.c:2111
 msgid "vecdly: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2119
+#: Opcodes/gab/vectorial.c:2118
 msgid "vecdly: invalid input table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2126
+#: Opcodes/gab/vectorial.c:2125
 msgid "vecdly: invalid delay table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2171
+#: Opcodes/gab/vectorial.c:2170
 msgid "vecdly: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2220
+#: Opcodes/gab/vectorial.c:2218
 msgid "vlinseg/vexpseg: invalid num. of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2262 Opcodes/vpvoc.c:126
+#: Opcodes/gab/vectorial.c:2260 Opcodes/vpvoc.c:125
 msgid "tableseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2292 Opcodes/vpvoc.c:155
+#: Opcodes/gab/vectorial.c:2290 Opcodes/vpvoc.c:154
 msgid "tablexseg: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2445
+#: Opcodes/gab/vectorial.c:2443
 msgid "vdelayk: not initialised"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2478 Opcodes/gab/vectorial.c:2484
+#: Opcodes/gab/vectorial.c:2476 Opcodes/gab/vectorial.c:2482
 msgid "cella: invalid num of elements"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2480
+#: Opcodes/gab/vectorial.c:2478
 msgid "cella: invalid output table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2487
+#: Opcodes/gab/vectorial.c:2485
 msgid "cella: invalid initial state table"
 msgstr ""
 
-#: Opcodes/gab/vectorial.c:2491
+#: Opcodes/gab/vectorial.c:2489
 msgid "cella: invalid rule table"
 msgstr ""
 
@@ -7637,15 +7675,15 @@ msgstr ""
 msgid "granule_set: igsize_os must be 0%% to 100%%"
 msgstr ""
 
-#: Opcodes/grain4.c:154
+#: Opcodes/grain4.c:155
 msgid "granule_set: Illegal value of iatt and/or idec"
 msgstr ""
 
-#: Opcodes/grain4.c:239
+#: Opcodes/grain4.c:240
 msgid "granule_set: Illegal combination of igskip and ilength"
 msgstr ""
 
-#: Opcodes/grain4.c:246
+#: Opcodes/grain4.c:247
 #, c-format
 msgid ""
 "granule_set: WARNING * ilength may be too short * \n"
@@ -7655,7 +7693,7 @@ msgid ""
 "ilength is %f Sec, kgsize is %f Sec\n"
 msgstr ""
 
-#: Opcodes/grain4.c:427
+#: Opcodes/grain4.c:428
 msgid "grain4: not initialised"
 msgstr ""
 
@@ -7671,54 +7709,54 @@ msgstr ""
 msgid "harmon234: out of range\n"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:469
+#: Opcodes/hdf5/HDF5IO.c:464
 msgid ""
 "hdf5write: Error, first argument does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:481
+#: Opcodes/hdf5/HDF5IO.c:476
 #, c-format
 msgid "hdf5write: Error, unable to identify type of argument %zd"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:601
+#: Opcodes/hdf5/HDF5IO.c:596
 msgid "This should not happen, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1008
+#: Opcodes/hdf5/HDF5IO.c:1001
 msgid "hdf5read: Error, more input arguments than output arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1013
+#: Opcodes/hdf5/HDF5IO.c:1006
 msgid "hdf5read: Error, more output arguments than input arguments, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1028
+#: Opcodes/hdf5/HDF5IO.c:1021
 #, c-format
 msgid ""
 "hdf5read: Error, input argument %zd does not appear to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1033
+#: Opcodes/hdf5/HDF5IO.c:1026
 #, c-format
 msgid "hdf5read: Error, input argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1039
+#: Opcodes/hdf5/HDF5IO.c:1032
 #, c-format
 msgid "hdf5read: Error, output argument %zd appears to be a string, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1044
+#: Opcodes/hdf5/HDF5IO.c:1037
 #, c-format
 msgid "hdf5read: Error, output argument %zd type is unknown, exiting"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1063
+#: Opcodes/hdf5/HDF5IO.c:1056
 msgid "hdf5read: Error, dataset does not exist or cannot be found in file"
 msgstr ""
 
-#: Opcodes/hdf5/HDF5IO.c:1130
+#: Opcodes/hdf5/HDF5IO.c:1123
 msgid "hdf5read: Unable to read saved type of dataset, exiting"
 msgstr ""
 
@@ -7861,69 +7899,89 @@ msgstr ""
 msgid "jacktransport: invalid parameter.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:538
+#: Opcodes/jacko.cpp:558
 #, c-format
 msgid ""
 "Could not create Jack client \"%s\" -- is Jack server \"%s\" running? "
 "Status: %d\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:546
+#: Opcodes/jacko.cpp:566
 #, c-format
 msgid "Created Jack client \"%s\" for Jack server \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:552
+#: Opcodes/jacko.cpp:572
 #, c-format
 msgid "Jack buffer size %d != Csound ksmps %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:560
+#: Opcodes/jacko.cpp:580
 #, c-format
 msgid "Jack sampling rate %d != Csound sr %d, exiting...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:570
+#: Opcodes/jacko.cpp:592
 #, c-format
 msgid "Activated Jack client \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:574
+#: Opcodes/jacko.cpp:596
 #, c-format
 msgid "Failed to activate Jack client \"%s\": status %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:589
+#: Opcodes/jacko.cpp:618
+msgid "Jacko is now driving Csound performance...\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:625
+msgid "Jacko has quit driving Csound performance.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:672
+msgid "Jacko performance finished.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:682
 msgid "BEGAN JackoState::close()...\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:629
+#: Opcodes/jacko.cpp:686
+msgid "Jack client deactivated.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:712
+msgid "Jack ports unregistered.\n"
+msgstr ""
+
+#: Opcodes/jacko.cpp:723
 msgid "ENDED JackoState::close().\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:885
+#: Opcodes/jacko.cpp:902
 #, c-format
 msgid "Failed to set Jack freewheeling mode to \"%s\": error %d.\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:888
+#: Opcodes/jacko.cpp:905
 #, c-format
 msgid "Set Jack freewheeling mode to \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:902
+#: Opcodes/jacko.cpp:921
 #, c-format
 msgid "Turned Jack connections \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:944 Opcodes/jacko.cpp:1047 Opcodes/jacko.cpp:1150
-#: Opcodes/jacko.cpp:1220
+#: Opcodes/jacko.cpp:965 Opcodes/jacko.cpp:1072 Opcodes/jacko.cpp:1179
+#: Opcodes/jacko.cpp:1251
 #, c-format
 msgid "Could not create Jack port \"%s\".\n"
 msgstr ""
 
-#: Opcodes/jacko.cpp:958 Opcodes/jacko.cpp:1062 Opcodes/jacko.cpp:1165
-#: Opcodes/jacko.cpp:1234
+#: Opcodes/jacko.cpp:979 Opcodes/jacko.cpp:1087 Opcodes/jacko.cpp:1194
+#: Opcodes/jacko.cpp:1265
 #, c-format
 msgid "Could not create Jack connection from \"%s\" to \"%s\": status %d.\n"
 msgstr ""
@@ -7958,15 +8016,15 @@ msgstr ""
 msgid "unknown joystick event type %i"
 msgstr ""
 
-#: Opcodes/liveconv.c:238
+#: Opcodes/liveconv.c:251
 msgid "liveconv: invalid impulse response partition length"
 msgstr ""
 
-#: Opcodes/liveconv.c:251
+#: Opcodes/liveconv.c:264
 msgid "liveconv: invalid length, or insufficient IR data for convolution"
 msgstr ""
 
-#: Opcodes/liveconv.c:478
+#: Opcodes/liveconv.c:502
 msgid "liveconv: not initialised"
 msgstr ""
 
@@ -8074,17 +8132,17 @@ msgstr ""
 msgid "modmatrix: "
 msgstr ""
 
-#: Opcodes/mp3in.c:114 Opcodes/mp3in.c:290
+#: Opcodes/mp3in.c:116 Opcodes/mp3in.c:292
 #, c-format
 msgid "mp3in: %s: failed to open file"
 msgstr ""
 
-#: Opcodes/mp3in.c:162
+#: Opcodes/mp3in.c:164
 #, c-format
 msgid "mp3in: file sample rate (%d) != orchestra sr (%d)\n"
 msgstr ""
 
-#: Opcodes/mp3in.c:466
+#: Opcodes/mp3in.c:468
 #, c-format
 msgid "mp3scale: %s: failed to open file"
 msgstr ""
@@ -8117,93 +8175,93 @@ msgstr ""
 msgid "grain3: invalid grain density"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1021
+#: Opcodes/oscbnk.c:1022
 msgid "grain3: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1024
+#: Opcodes/oscbnk.c:1025
 msgid "grain3 needs more overlaps"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1097 Opcodes/oscbnk.c:1142
+#: Opcodes/oscbnk.c:1098 Opcodes/oscbnk.c:1143
 msgid "rnd31: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1703
+#: Opcodes/oscbnk.c:1709
 #, c-format
 msgid "redefined table array for waveform %d\n"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1788
+#: Opcodes/oscbnk.c:1794
 #, c-format
 msgid "vco2init: invalid waveform number: %f"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1796
+#: Opcodes/oscbnk.c:1802
 msgid "vco2init: invalid base ftable number"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1807
+#: Opcodes/oscbnk.c:1813
 msgid "vco2init: invalid partial number multiplier"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1816
+#: Opcodes/oscbnk.c:1822
 msgid "vco2init: invalid min table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1824
+#: Opcodes/oscbnk.c:1830
 msgid "vco2init: invalid max table size"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1846
+#: Opcodes/oscbnk.c:1852
 msgid "vco2init: invalid source ftable"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1889
+#: Opcodes/oscbnk.c:1895
 msgid "vco2ft: table array not found for this waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1961
+#: Opcodes/oscbnk.c:1967
 msgid "vco2ft: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1981
+#: Opcodes/oscbnk.c:1987
 msgid "vco2: too many input arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:1991
+#: Opcodes/oscbnk.c:1997
 msgid "vco2: insufficient required arguments"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2009
+#: Opcodes/oscbnk.c:2015
 msgid "vco2: table array not found for user defined waveform"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2058
+#: Opcodes/oscbnk.c:2064
 msgid "vco2: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2222
+#: Opcodes/oscbnk.c:2228
 msgid "delayk: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2240
+#: Opcodes/oscbnk.c:2246
 msgid "delayk: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2263
+#: Opcodes/oscbnk.c:2269
 msgid "vdel_k: invalid max delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2282
+#: Opcodes/oscbnk.c:2288
 msgid "vdel_k: not initialised"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2288
+#: Opcodes/oscbnk.c:2294
 msgid "vdel_k: invalid delay time (must be >= 0)"
 msgstr ""
 
-#: Opcodes/oscbnk.c:2562
+#: Opcodes/oscbnk.c:2568
 msgid "rbjeq: invalid filter type"
 msgstr ""
 
@@ -8219,6 +8277,14 @@ msgstr ""
 msgid "Unknown panning type"
 msgstr ""
 
+#: Opcodes/partials.c:178
+msgid "partials: first input not in AMP_FREQ format \n"
+msgstr ""
+
+#: Opcodes/partials.c:183
+msgid "partials: no phase input, tracks will contain amp & freq only\n"
+msgstr ""
+
 #: Opcodes/partikkel.c:26 Opcodes/partikkel.c:27 Opcodes/partikkel.c:28
 msgid "partikkel: "
 msgstr ""
@@ -8285,37 +8351,37 @@ msgstr ""
 msgid "No base frequency for brass -- assumed to be 50Hz\n"
 msgstr ""
 
-#: Opcodes/physutil.c:138 Opcodes/physutil.c:313 Opcodes/physutil.c:325
-#: Opcodes/physutil.c:346
+#: Opcodes/physutil.c:134 Opcodes/physutil.c:309 Opcodes/physutil.c:321
+#: Opcodes/physutil.c:342
 msgid "negative rates not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:187
+#: Opcodes/physutil.c:183
 #, c-format
 msgid "Envelope: value=%f target=%f rate=%f state=%d\n"
 msgstr ""
 
-#: Opcodes/physutil.c:336
+#: Opcodes/physutil.c:332
 msgid "Sustain level out of range!!, correcting\n"
 msgstr ""
 
-#: Opcodes/physutil.c:357 Opcodes/physutil.c:367 Opcodes/physutil.c:377
+#: Opcodes/physutil.c:353 Opcodes/physutil.c:363 Opcodes/physutil.c:373
 msgid "negative times not allowed!!, correcting\n"
 msgstr ""
 
-#: Opcodes/pitch.c:83 Opcodes/spectra.c:79
+#: Opcodes/pitch.c:83 Opcodes/spectra.c:78
 msgid "illegal iprd"
 msgstr ""
 
-#: Opcodes/pitch.c:85 Opcodes/spectra.c:81
+#: Opcodes/pitch.c:85 Opcodes/spectra.c:80
 msgid "illegal iocts"
 msgstr ""
 
-#: Opcodes/pitch.c:87 Opcodes/spectra.c:83
+#: Opcodes/pitch.c:87 Opcodes/spectra.c:82
 msgid "illegal ifrqs"
 msgstr ""
 
-#: Opcodes/pitch.c:181 Opcodes/spectra.c:599
+#: Opcodes/pitch.c:181 Opcodes/spectra.c:598
 msgid "illegal no of partials"
 msgstr ""
 
@@ -8323,7 +8389,7 @@ msgstr ""
 msgid "per octave rolloff too steep"
 msgstr ""
 
-#: Opcodes/pitch.c:220 Opcodes/spectra.c:640
+#: Opcodes/pitch.c:220 Opcodes/spectra.c:639
 msgid "illegal lo-hi values"
 msgstr ""
 
@@ -8394,8 +8460,7 @@ msgstr ""
 #: Opcodes/pitch.c:1422
 #, c-format
 msgid ""
-"pinkish: Gardner method requires 4-%d bands. Default %ld substituted for "
-"%d.\n"
+"pinkish: Gardner method requires 4-%d bands. Default %d substituted for %d.\n"
 msgstr ""
 
 #: Opcodes/pitch.c:1685
@@ -8418,16 +8483,16 @@ msgstr ""
 msgid "Incorrect argument count in transegr"
 msgstr ""
 
-#: Opcodes/pitch.c:2318
+#: Opcodes/pitch.c:2320
 msgid "median: not initialised (arate)\n"
 msgstr ""
 
-#: Opcodes/pitch.c:2322 Opcodes/pitch.c:2375
+#: Opcodes/pitch.c:2324 Opcodes/pitch.c:2377
 #, c-format
 msgid "median: window (%d)larger than maximum(%d); truncated"
 msgstr ""
 
-#: Opcodes/pitch.c:2371
+#: Opcodes/pitch.c:2373
 msgid "median: not initialised (krate)\n"
 msgstr ""
 
@@ -8441,12 +8506,12 @@ msgstr ""
 msgid "Allowing instrument %d to start\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:370
+#: Opcodes/pitchtrack.c:371
 #, c-format
 msgid "ptrack: FFT size out of range; using %d\n"
 msgstr ""
 
-#: Opcodes/pitchtrack.c:383
+#: Opcodes/pitchtrack.c:384
 #, c-format
 msgid "ptrack: FFT size not a power of 2; using %d\n"
 msgstr ""
@@ -8459,17 +8524,8 @@ msgstr ""
 msgid "Missing output table or too short"
 msgstr ""
 
-#: Opcodes/pluck.c:174
-msgid "Could not allocate for initial shape"
-msgstr ""
-
-#: Opcodes/pluck.c:252
-msgid "Buffer memory not allocated!"
-msgstr ""
-
-#: Opcodes/pluck.c:378
-#, c-format
-msgid "Error: %s, %s"
+#: Opcodes/pluck.c:172
+msgid "wgpluck:Could not allocate for initial shape"
 msgstr ""
 
 #: Opcodes/psynth.c:97 Opcodes/psynth.c:264
@@ -8532,7 +8588,7 @@ msgstr ""
 
 #: Opcodes/pvadd.c:226
 #, c-format
-msgid "PV frame %ld seems too small in %s"
+msgid "PV frame %d seems too small in %s"
 msgstr ""
 
 #: Opcodes/pvadd.c:231 Opcodes/pvread.c:129 Opcodes/ugens8.c:255
@@ -8545,30 +8601,30 @@ msgstr ""
 msgid "PVBUFREAD cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:222
+#: Opcodes/pvinterp.c:82 Opcodes/vpvoc.c:221
 #, c-format
 msgid "PVOC frame %ld bigger than %ld in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:227
+#: Opcodes/pvinterp.c:87 Opcodes/vpvoc.c:226
 #, c-format
 msgid "PVOC frame %ld seems too small in %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:393
-#: Opcodes/vpvoc.c:231
+#: Opcodes/pvinterp.c:91 Opcodes/pvinterp.c:203 Opcodes/pvinterp.c:394
+#: Opcodes/vpvoc.c:230
 #, c-format
 msgid "%d chans (not 1) in PVOC file %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:230 Opcodes/pvinterp.c:418
-#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:259
+#: Opcodes/pvinterp.c:106 Opcodes/pvinterp.c:231 Opcodes/pvinterp.c:420
+#: Opcodes/ugens8.c:101 Opcodes/vpvoc.c:258
 #, c-format
 msgid "ksmps of %d needs wdw of %d, max is %d for pv %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:284 Opcodes/pvinterp.c:475
-#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:321
+#: Opcodes/pvinterp.c:135 Opcodes/pvinterp.c:285 Opcodes/pvinterp.c:477
+#: Opcodes/pvread.c:109 Opcodes/ugens8.c:174 Opcodes/vpvoc.c:320
 msgid "PVOC ktimpnt truncated to last frame"
 msgstr ""
 
@@ -8576,8 +8632,8 @@ msgstr ""
 msgid "pvbufread: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:337 Opcodes/pvinterp.c:540
-#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:389
+#: Opcodes/pvinterp.c:146 Opcodes/pvinterp.c:338 Opcodes/pvinterp.c:542
+#: Opcodes/pvread.c:117 Opcodes/ugens8.c:232 Opcodes/vpvoc.c:388
 msgid "PVOC timpnt < 0"
 msgstr ""
 
@@ -8595,39 +8651,39 @@ msgstr ""
 msgid "pvinterp: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:329
+#: Opcodes/pvinterp.c:330
 msgid "pvinterp: not initialised"
 msgstr ""
 
-#: Opcodes/pvinterp.c:332 Opcodes/pvinterp.c:534 Opcodes/ugens8.c:226
-#: Opcodes/vpvoc.c:383
+#: Opcodes/pvinterp.c:333 Opcodes/pvinterp.c:536 Opcodes/ugens8.c:226
+#: Opcodes/vpvoc.c:382
 msgid "PVOC transpose too low"
 msgstr ""
 
-#: Opcodes/pvinterp.c:335 Opcodes/pvinterp.c:537 Opcodes/ugens8.c:229
-#: Opcodes/vpvoc.c:386
+#: Opcodes/pvinterp.c:336 Opcodes/pvinterp.c:539 Opcodes/ugens8.c:229
+#: Opcodes/vpvoc.c:385
 msgid "PVOC transpose too high"
 msgstr ""
 
-#: Opcodes/pvinterp.c:354
+#: Opcodes/pvinterp.c:355
 msgid "pvcross: associated pvbufread not found"
 msgstr ""
 
-#: Opcodes/pvinterp.c:376
+#: Opcodes/pvinterp.c:377
 #, c-format
 msgid "PVCROSS cannot load %s"
 msgstr ""
 
-#: Opcodes/pvinterp.c:388
+#: Opcodes/pvinterp.c:389
 #, c-format
 msgid "pvcross: %s: frame size %d does not match pvbufread frame size %d\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:498 Opcodes/vpvoc.c:346
+#: Opcodes/pvinterp.c:500 Opcodes/vpvoc.c:345
 msgid "PVOC debug: one frame gets through\n"
 msgstr ""
 
-#: Opcodes/pvinterp.c:531
+#: Opcodes/pvinterp.c:533
 msgid "pvcross: not initialised"
 msgstr ""
 
@@ -8643,7 +8699,7 @@ msgstr ""
 #: Opcodes/pvlock.c:880 Opcodes/pvsband.c:46 Opcodes/pvsbasic.c:714
 #: Opcodes/pvsbasic.c:1041 Opcodes/pvsbasic.c:1255 Opcodes/pvsbasic.c:1362
 #: Opcodes/pvsbasic.c:1607 Opcodes/pvsbasic.c:1831 Opcodes/pvsbasic.c:2004
-#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:688
+#: Opcodes/pvsgendy.c:43 Opcodes/signalflowgraph.cpp:736
 msgid "Unsafe to have same fsig as in and out"
 msgstr ""
 
@@ -8768,19 +8824,19 @@ msgstr ""
 msgid "SDFT case not implemented yet"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:89
+#: Opcodes/pvsbuffer.c:90
 msgid "error... could not create global var for handle\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:148 Opcodes/pvsbuffer.c:197 Opcodes/pvsbuffer.c:268
+#: Opcodes/pvsbuffer.c:149 Opcodes/pvsbuffer.c:198 Opcodes/pvsbuffer.c:269
 msgid "error... could not read handle from global variable\n"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:247 Opcodes/pvsbuffer.c:321
+#: Opcodes/pvsbuffer.c:248 Opcodes/pvsbuffer.c:322
 msgid "Invalid buffer handle"
 msgstr ""
 
-#: Opcodes/pvsbuffer.c:285 Opcodes/pvsbuffer.c:291
+#: Opcodes/pvsbuffer.c:286 Opcodes/pvsbuffer.c:292
 #, c-format
 msgid "table length too small: needed %d, got %d\n"
 msgstr ""
@@ -8818,12 +8874,12 @@ msgstr ""
 msgid "fsig format not supported"
 msgstr ""
 
-#: Opcodes/repluck.c:166
+#: Opcodes/repluck.c:164
 #, c-format
 msgid "Reflection invalid (%f)\n"
 msgstr ""
 
-#: Opcodes/repluck.c:180
+#: Opcodes/repluck.c:178
 #, c-format
 msgid "Pickup out of range (%f)\n"
 msgstr ""
@@ -9120,125 +9176,125 @@ msgstr ""
 msgid "powershape: ifullscale must be strictly positive"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:302 Opcodes/signalflowgraph.cpp:447
-#: Opcodes/signalflowgraph.cpp:944
+#: Opcodes/signalflowgraph.cpp:340 Opcodes/signalflowgraph.cpp:489
+#: Opcodes/signalflowgraph.cpp:998
 #, c-format
 msgid "Created instance 0x%x of %d instances of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:315
+#: Opcodes/signalflowgraph.cpp:353
 #, c-format
 msgid "Removed instance 0x%x of %d instances of outleta %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:367 Opcodes/signalflowgraph.cpp:505
-#: Opcodes/signalflowgraph.cpp:640 Opcodes/signalflowgraph.cpp:1007
+#: Opcodes/signalflowgraph.cpp:407 Opcodes/signalflowgraph.cpp:549
+#: Opcodes/signalflowgraph.cpp:688 Opcodes/signalflowgraph.cpp:1063
 #, c-format
 msgid "Created instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:381 Opcodes/signalflowgraph.cpp:655
-#: Opcodes/signalflowgraph.cpp:1017
+#: Opcodes/signalflowgraph.cpp:421 Opcodes/signalflowgraph.cpp:703
+#: Opcodes/signalflowgraph.cpp:1073
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:459
+#: Opcodes/signalflowgraph.cpp:501
 #, c-format
 msgid "Removed 0x%x of %d instances of outletk %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:519
+#: Opcodes/signalflowgraph.cpp:563
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%xof inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:579
+#: Opcodes/signalflowgraph.cpp:625
 #, c-format
 msgid "Created instance 0x%x of outlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:590
+#: Opcodes/signalflowgraph.cpp:636
 #, c-format
 msgid "Removed 0x%x of %d instances of outletf %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:715
+#: Opcodes/signalflowgraph.cpp:763
 msgid "inletf: signal format must be amp-phase or amp-freq."
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:779
+#: Opcodes/signalflowgraph.cpp:829
 #, c-format
 msgid ""
 "Created instance 0x%x of %d instances of outlet %s (out arraydat: 0x%x dims: "
 "%2d size: %4d [%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:792
+#: Opcodes/signalflowgraph.cpp:842
 #, c-format
 msgid "Removed 0x%x of %d instances of outletv %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:851
+#: Opcodes/signalflowgraph.cpp:903
 #, c-format
 msgid ""
 "Created instance 0x%x of inlet %s (in arraydat: 0x%x dims: %2d size: %4d "
 "[%4d] data: 0x%x (0x%x))\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:866
+#: Opcodes/signalflowgraph.cpp:918
 #, c-format
 msgid "Connected instances of outlet %s to instance 0x%x of inlet %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:956
+#: Opcodes/signalflowgraph.cpp:1010
 #, c-format
 msgid "Removed 0x%x of %d instances of outletkid %s\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1091 Opcodes/signalflowgraph.cpp:1134
-#: Opcodes/signalflowgraph.cpp:1179 Opcodes/signalflowgraph.cpp:1220
+#: Opcodes/signalflowgraph.cpp:1149 Opcodes/signalflowgraph.cpp:1194
+#: Opcodes/signalflowgraph.cpp:1241 Opcodes/signalflowgraph.cpp:1284
 #, c-format
 msgid "Connected outlet %s to inlet %s.\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1418 Opcodes/signalflowgraph.cpp:1422
+#: Opcodes/signalflowgraph.cpp:1484 Opcodes/signalflowgraph.cpp:1488
 #, c-format
 msgid "ftgenonce: re-using existing func: %f\n"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1428
+#: Opcodes/signalflowgraph.cpp:1494
 msgid "ftgenonce error"
 msgstr ""
 
-#: Opcodes/signalflowgraph.cpp:1433
+#: Opcodes/signalflowgraph.cpp:1499
 #, c-format
 msgid "ftgenonce: created new func: %d\n"
 msgstr ""
 
-#: Opcodes/singwave.c:86
+#: Opcodes/singwave.c:85
 msgid "No table for Modulatr"
 msgstr ""
 
-#: Opcodes/singwave.c:128
+#: Opcodes/singwave.c:127
 msgid "No table for Singwave"
 msgstr ""
 
-#: Opcodes/singwave.c:208
+#: Opcodes/singwave.c:207
 #, c-format
 msgid "SingWave: rate=%f sweepRate=%f mytime=%f\n"
 msgstr ""
 
-#: Opcodes/singwave.c:280
+#: Opcodes/singwave.c:279
 #, c-format
 msgid "Found Formant: %s (number %i)\n"
 msgstr ""
 
-#: Opcodes/singwave.c:364
+#: Opcodes/singwave.c:363
 msgid "This note is too high!!\n"
 msgstr ""
 
-#: Opcodes/singwave.c:399
+#: Opcodes/singwave.c:398
 #, c-format
 msgid "Setting Phoneme: %d %f\n"
 msgstr ""
@@ -9312,31 +9368,35 @@ msgstr ""
 msgid "sndwarpst: not initialised"
 msgstr ""
 
-#: Opcodes/sockrecv.c:168 Opcodes/sockrecv.c:225 Opcodes/sockrecv.c:341
-#: Opcodes/sockrecv.c:425 Opcodes/sockrecv.c:529 Opcodes/socksend.c:90
-#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:425
-#: Top/server.c:81
+#: Opcodes/sockrecv.c:140 Opcodes/sockrecv.c:143 Opcodes/sockrecv.c:537
+#: Opcodes/sockrecv.c:540
+msgid "OSCraw: Closing socket\n"
+msgstr ""
+
+#: Opcodes/sockrecv.c:176 Opcodes/sockrecv.c:238 Opcodes/sockrecv.c:353
+#: Opcodes/sockrecv.c:437 Opcodes/sockrecv.c:554 Opcodes/socksend.c:90
+#: Opcodes/socksend.c:239 Opcodes/socksend.c:338 Opcodes/socksend.c:426
+#: Top/server.c:232
 #, c-format
 msgid "Winsock2 failed to start: %d"
 msgstr ""
 
-#: Opcodes/sockrecv.c:175 Opcodes/sockrecv.c:232 Opcodes/sockrecv.c:348
-#: Opcodes/sockrecv.c:534 Opcodes/sockrecv.c:538
+#: Opcodes/sockrecv.c:182 Opcodes/sockrecv.c:188 Opcodes/sockrecv.c:245
+#: Opcodes/sockrecv.c:360 Opcodes/sockrecv.c:559 Opcodes/sockrecv.c:563
 msgid "Cannot set nonblock"
 msgstr ""
 
-#: Opcodes/sockrecv.c:179 Opcodes/sockrecv.c:236 Opcodes/sockrecv.c:351
-#: Opcodes/sockrecv.c:431 Opcodes/sockrecv.c:542 Opcodes/socksend.c:104
-#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:429
-#: Top/server.c:87
+#: Opcodes/sockrecv.c:192 Opcodes/sockrecv.c:248 Opcodes/sockrecv.c:363
+#: Opcodes/sockrecv.c:443 Opcodes/sockrecv.c:566 Opcodes/socksend.c:104
+#: Opcodes/socksend.c:254 Opcodes/socksend.c:345 Opcodes/socksend.c:430
 msgid "creating socket"
 msgstr ""
 
-#: Opcodes/sockrecv.c:478
+#: Opcodes/sockrecv.c:490
 msgid "read from socket failed"
 msgstr ""
 
-#: Opcodes/sockrecv.c:593
+#: Opcodes/sockrecv.c:619
 msgid "output array too small\n"
 msgstr ""
 
@@ -9359,20 +9419,20 @@ msgstr ""
 msgid "Expected %d got %d\n"
 msgstr ""
 
-#: Opcodes/socksend.c:418
+#: Opcodes/socksend.c:419
 msgid "insufficient number of arguments for OSC message types\n"
 msgstr ""
 
-#: Opcodes/socksend.c:472
+#: Opcodes/socksend.c:474
 msgid "expecting a string argument\n"
 msgstr ""
 
-#: Opcodes/socksend.c:505
+#: Opcodes/socksend.c:508
 #, c-format
 msgid "%c: data type not supported\n"
 msgstr ""
 
-#: Opcodes/socksend.c:757
+#: Opcodes/socksend.c:774
 msgid "OSCsend2 failed"
 msgstr ""
 
@@ -9392,161 +9452,166 @@ msgstr ""
 msgid "spat3di: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:85
+#: Opcodes/spectra.c:84
 msgid "illegal Q value"
 msgstr ""
 
-#: Opcodes/spectra.c:87
+#: Opcodes/spectra.c:86
 msgid "unknown dbout code"
 msgstr ""
 
-#: Opcodes/spectra.c:107
+#: Opcodes/spectra.c:106
 #, c-format
 msgid "spectrum: %s window, %s out, making tables ...\n"
 msgstr ""
 
-#: Opcodes/spectra.c:126
+#: Opcodes/spectra.c:125
 #, c-format
 msgid ""
 "\thigh cps %7.1f\n"
 "\t low cps %7.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:141
+#: Opcodes/spectra.c:140
 #, c-format
 msgid "\tQ %4.1f uses a %d sample window each octdown\n"
 msgstr ""
 
-#: Opcodes/spectra.c:172
+#: Opcodes/spectra.c:171
 msgid "spectrum windowed sines:"
 msgstr ""
 
-#: Opcodes/spectra.c:190
+#: Opcodes/spectra.c:189
 #, c-format
-msgid "\t%d oct analysis window delay = %ld samples (%d msecs)\n"
+msgid "\t%d oct analysis window delay = %d samples (%d msecs)\n"
 msgstr ""
 
-#: Opcodes/spectra.c:198
+#: Opcodes/spectra.c:197
 msgid "octdown buffers:"
 msgstr ""
 
-#: Opcodes/spectra.c:526 Opcodes/spectra.c:567
+#: Opcodes/spectra.c:525 Opcodes/spectra.c:566
 msgid "specdisp: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:536
+#: Opcodes/spectra.c:535
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%d - %d Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:543
+#: Opcodes/spectra.c:542
 #, c-format
 msgid "instr %d %s, dft (%s), %d octaves (%3.1f - %3.1f Hz):"
 msgstr ""
 
-#: Opcodes/spectra.c:626
+#: Opcodes/spectra.c:625
 msgid "per oct rolloff too steep"
 msgstr ""
 
-#: Opcodes/spectra.c:647
+#: Opcodes/spectra.c:646
 #, c-format
 msgid "specptrk: %d freqs, %d%s ptls at "
 msgstr ""
 
-#: Opcodes/spectra.c:648
+#: Opcodes/spectra.c:647
 msgid " odd"
 msgstr ""
 
-#: Opcodes/spectra.c:652
+#: Opcodes/spectra.c:651
 msgid ""
 "\n"
 "\t\trolloff vals:"
 msgstr ""
 
-#: Opcodes/spectra.c:675
+#: Opcodes/spectra.c:674
 #, c-format
 msgid ""
 "\n"
 "\tdbthresh %4.1f: X-corr %s threshon %4.1f, threshoff %4.1f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:830
+#: Opcodes/spectra.c:829
 msgid "specptrk: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:863
+#: Opcodes/spectra.c:862
 msgid "specsum: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:874
+#: Opcodes/spectra.c:873
 msgid "inputs have different sizes"
 msgstr ""
 
-#: Opcodes/spectra.c:877
+#: Opcodes/spectra.c:876
 msgid "inputs have diff. time periods"
 msgstr ""
 
-#: Opcodes/spectra.c:881
+#: Opcodes/spectra.c:880
 msgid "inputs have different freq resolution"
 msgstr ""
 
-#: Opcodes/spectra.c:884
+#: Opcodes/spectra.c:883
 msgid "inputs have different amptypes"
 msgstr ""
 
-#: Opcodes/spectra.c:917
+#: Opcodes/spectra.c:916
 msgid "specaddm: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:941
+#: Opcodes/spectra.c:940
 msgid "specdiff: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:980
+#: Opcodes/spectra.c:979
 msgid "specdiff: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1002
+#: Opcodes/spectra.c:1001
 msgid "specscal: local buffer not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1007
+#: Opcodes/spectra.c:1006
 msgid "missing fscale table"
 msgstr ""
 
-#: Opcodes/spectra.c:1072
+#: Opcodes/spectra.c:1071
 msgid "specscal: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1096
+#: Opcodes/spectra.c:1095
 msgid "spechist: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1129
+#: Opcodes/spectra.c:1128
 msgid "spechist: not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1150
+#: Opcodes/spectra.c:1149
 msgid "specfilt: local buffers not initialised"
 msgstr ""
 
-#: Opcodes/spectra.c:1158
+#: Opcodes/spectra.c:1157
 msgid "missing htim ftable"
 msgstr ""
 
-#: Opcodes/spectra.c:1181
+#: Opcodes/spectra.c:1180
 msgid "htim ftable must be all-positive"
 msgstr ""
 
-#: Opcodes/spectra.c:1185
+#: Opcodes/spectra.c:1184
 #, c-format
 msgid "coef range: %6.3f - %6.3f\n"
 msgstr ""
 
-#: Opcodes/spectra.c:1218
+#: Opcodes/spectra.c:1217
 msgid "specfilt: not initialised"
 msgstr ""
 
+#: Opcodes/squinewave.c:114
+#, c-format
+msgid "squinewave iminsweep range 4 to sr/100. Set to default %d"
+msgstr ""
+
 #: Opcodes/stackops.c:99
 msgid "fsig = : source signal is not initialised"
 msgstr ""
@@ -9575,7 +9640,7 @@ msgstr ""
 msgid "stdopcod.c: error: globals already allocated"
 msgstr ""
 
-#: Opcodes/stk/stkOpcodes.cpp:747
+#: Opcodes/stk/stkOpcodes.cpp:748
 msgid ""
 "STK opcodes not available: define environment variable RAWWAVE_PATH\n"
 "(points to rawwaves directory) to use STK opcodes."
@@ -9654,7 +9719,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:63
 #, c-format
-msgid "%s not a CONVOLVE file (magic %ld)"
+msgid "%s not a CONVOLVE file (magic %d)"
 msgstr ""
 
 #: Opcodes/ugens9.c:74 Opcodes/ugens9.c:82
@@ -9667,7 +9732,7 @@ msgstr ""
 
 #: Opcodes/ugens9.c:109
 #, c-format
-msgid "unsupported CONVOLVE data format %ld in %s"
+msgid "unsupported CONVOLVE data format %d in %s"
 msgstr ""
 
 #: Opcodes/ugens9.c:367
@@ -9755,34 +9820,34 @@ msgstr ""
 msgid "No table for dconv"
 msgstr ""
 
-#: Opcodes/ugmoss.c:494 Opcodes/vbap1.c:189 Opcodes/vbap1.c:257
-#: Opcodes/vbap1.c:542 Opcodes/vbap1.c:617 Opcodes/vbap_n.c:287
-#: Opcodes/vbap_n.c:351 Opcodes/vbap_n.c:663 Opcodes/vbap_n.c:800
+#: Opcodes/ugmoss.c:501 Opcodes/vbap1.c:189 Opcodes/vbap1.c:258
+#: Opcodes/vbap1.c:543 Opcodes/vbap1.c:618 Opcodes/vbap_n.c:287
+#: Opcodes/vbap_n.c:352 Opcodes/vbap_n.c:665 Opcodes/vbap_n.c:802
 #: Opcodes/vbap_zak.c:230 Opcodes/vbap_zak.c:542
 msgid "could not allocate memory"
 msgstr ""
 
-#: Opcodes/ugmoss.c:571
+#: Opcodes/ugmoss.c:578
 msgid "vcomb: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:632
+#: Opcodes/ugmoss.c:639
 msgid "valpass: not initialised"
 msgstr ""
 
-#: Opcodes/ugmoss.c:645
+#: Opcodes/ugmoss.c:652
 msgid "iresfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:652
+#: Opcodes/ugmoss.c:659
 msgid "iftfn for ftmorf does not exist"
 msgstr ""
 
-#: Opcodes/ugmoss.c:659
+#: Opcodes/ugmoss.c:666
 msgid "table in iftfn for ftmorf wrong size"
 msgstr ""
 
-#: Opcodes/ugmoss.c:663
+#: Opcodes/ugmoss.c:670
 msgid "table in iftfn for ftmorf does not exist"
 msgstr ""
 
@@ -9791,12 +9856,12 @@ msgstr ""
 msgid "%s: Ats file %s not read (does it exist?)"
 msgstr ""
 
-#: Opcodes/ugnorman.c:139
+#: Opcodes/ugnorman.c:138
 #, c-format
 msgid "%s: either %s is not an ATS file or the byte endianness is wrong"
 msgstr ""
 
-#: Opcodes/ugnorman.c:147
+#: Opcodes/ugnorman.c:146
 #, c-format
 msgid ""
 "%s: %s is byte-swapped\n"
@@ -9804,128 +9869,128 @@ msgid ""
 "\twill not result in different audio, but they may slow down processing."
 msgstr ""
 
-#: Opcodes/ugnorman.c:183 Opcodes/ugnorman.c:222
+#: Opcodes/ugnorman.c:182 Opcodes/ugnorman.c:221
 msgid ""
 "ATSINFO: location is out of bounds: 0-8 are the only possible selections"
 msgstr ""
 
-#: Opcodes/ugnorman.c:312 Opcodes/ugnorman.c:378
+#: Opcodes/ugnorman.c:311 Opcodes/ugnorman.c:377
 #, c-format
 msgid "ATSREAD: partial %i out of range, max allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:338 Opcodes/ugnorman.c:404
+#: Opcodes/ugnorman.c:337 Opcodes/ugnorman.c:403
 msgid "Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:423
+#: Opcodes/ugnorman.c:422
 msgid "ATSREAD: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:432
+#: Opcodes/ugnorman.c:431
 msgid "ATSREAD: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:446
+#: Opcodes/ugnorman.c:445
 msgid "ATSREAD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:508 Opcodes/ugnorman.c:568
+#: Opcodes/ugnorman.c:507 Opcodes/ugnorman.c:567
 #, c-format
 msgid "ATSREADNZ: band %i out of range, 1-25 are the valid band values"
 msgstr ""
 
-#: Opcodes/ugnorman.c:526 Opcodes/ugnorman.c:586
+#: Opcodes/ugnorman.c:525 Opcodes/ugnorman.c:585
 msgid "ATSREADNZ: Type either not implemented or does not contain noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:606
+#: Opcodes/ugnorman.c:605
 msgid "ATSREADNZ: only positive time pointer values allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:615
+#: Opcodes/ugnorman.c:614
 msgid "ATSREADNZ: timepointer out of range, truncated to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:625
+#: Opcodes/ugnorman.c:624
 msgid "ATSREADNZ: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:643 Opcodes/ugnorman.c:751
+#: Opcodes/ugnorman.c:642 Opcodes/ugnorman.c:750
 msgid "ATSADD: Function table number for synthesis waveform not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:651 Opcodes/ugnorman.c:759
+#: Opcodes/ugnorman.c:650 Opcodes/ugnorman.c:758
 msgid "ATSADD: Gate Function table number not valid"
 msgstr ""
 
-#: Opcodes/ugnorman.c:697 Opcodes/ugnorman.c:805
+#: Opcodes/ugnorman.c:696 Opcodes/ugnorman.c:804
 #, c-format
 msgid "ATSADD: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:731 Opcodes/ugnorman.c:839
+#: Opcodes/ugnorman.c:730 Opcodes/ugnorman.c:838
 msgid "ATSADD: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:872
+#: Opcodes/ugnorman.c:871
 msgid ""
 "ATSADD: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:881
+#: Opcodes/ugnorman.c:880
 msgid "ATSADD: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:923
+#: Opcodes/ugnorman.c:922
 msgid "ATSADD: not initialised"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1109 Opcodes/ugnorman.c:1279
+#: Opcodes/ugnorman.c:1108 Opcodes/ugnorman.c:1278
 msgid "ATSADDNZ: This file type contains no noise"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1113 Opcodes/ugnorman.c:1283
+#: Opcodes/ugnorman.c:1112 Opcodes/ugnorman.c:1282
 msgid "ATSADDNZ: This file type has not been implemented in this code yet."
 msgstr ""
 
-#: Opcodes/ugnorman.c:1136 Opcodes/ugnorman.c:1306
+#: Opcodes/ugnorman.c:1135 Opcodes/ugnorman.c:1305
 msgid "ATSADDNZ: Band(s) out of range, max band allowed is 25"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1443
+#: Opcodes/ugnorman.c:1442
 msgid ""
 "ATSADDNZ: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1452
+#: Opcodes/ugnorman.c:1451
 msgid "ATSADDNZ: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1602 Opcodes/ugnorman.c:1787
+#: Opcodes/ugnorman.c:1601 Opcodes/ugnorman.c:1786
 #, c-format
 msgid "ATSSINNOI: Partial(s) out of range, max partial allowed is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1639 Opcodes/ugnorman.c:1824
+#: Opcodes/ugnorman.c:1638 Opcodes/ugnorman.c:1823
 msgid "ATSSINNOI: Type not implemented"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1912
+#: Opcodes/ugnorman.c:1911
 msgid ""
 "ATSSINNOI: only positive time pointer values are allowed, setting to zero\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:1920
+#: Opcodes/ugnorman.c:1919
 msgid "ATSSINNOI: time pointer out of range, truncating to last frame\n"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2180 Opcodes/ugnorman.c:2274
+#: Opcodes/ugnorman.c:2179 Opcodes/ugnorman.c:2273
 #, c-format
 msgid "ATSBUFREAD: Partial out of range, max partial is %i"
 msgstr ""
 
-#: Opcodes/ugnorman.c:2212 Opcodes/ugnorman.c:2306
+#: Opcodes/ugnorman.c:2211 Opcodes/ugnorman.c:2305
 msgid "ATSBUFREAD: Type not implemented"
 msgstr ""
 
@@ -9989,7 +10054,7 @@ msgstr ""
 msgid "ATSCROSS: you must have an atsbufread before an atsinterpread"
 msgstr ""
 
-#: Opcodes/ugsc.c:441
+#: Opcodes/ugsc.c:444
 msgid "Phaser mode must be either 1 or 2"
 msgstr ""
 
@@ -10003,113 +10068,114 @@ msgstr ""
 msgid "Out of range in vaset (%d)"
 msgstr ""
 
-#: Opcodes/vbap.c:72
+#: Opcodes/vbap.c:75
 msgid "vbap: error allocating loudspeaker table"
 msgstr ""
 
-#: Opcodes/vbap.c:278
+#: Opcodes/vbap.c:281
 msgid ""
 "Number of loudspeakers is zero\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/vbap.c:580
-msgid "Error in loudspeaker dimension."
+#: Opcodes/vbap.c:584
+#, c-format
+msgid "Error in loudspeaker dimension. %d not permitted"
 msgstr ""
 
-#: Opcodes/vbap.c:605
+#: Opcodes/vbap.c:612
 msgid "Too few loudspeakers"
 msgstr ""
 
-#: Opcodes/vbap.c:635
+#: Opcodes/vbap.c:642
 #, c-format
-msgid "Too little data speakers (%n)\n"
+msgid "Too little data speakers (%d)\n"
 msgstr ""
 
-#: Opcodes/vbap.c:658
+#: Opcodes/vbap.c:665
 msgid "Not valid 3-D configuration"
 msgstr ""
 
-#: Opcodes/vbap.c:705 Opcodes/vbap.c:814
+#: Opcodes/vbap.c:712 Opcodes/vbap.c:825
 msgid ""
 "\n"
 "Configured loudspeakers\n"
 msgstr ""
 
-#: Opcodes/vbap.c:707
+#: Opcodes/vbap.c:714
 #, c-format
 msgid "Triplet %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap.c:757 Opcodes/vbap.c:772
+#: Opcodes/vbap.c:761 Opcodes/vbap.c:776
 #, c-format
 msgid "Pair of speakers at %f and %f ignored\n"
 msgstr ""
 
-#: Opcodes/vbap.c:777
+#: Opcodes/vbap.c:781
 msgid "insufficient valid speakers"
 msgstr ""
 
-#: Opcodes/vbap.c:816
+#: Opcodes/vbap.c:827
 #, c-format
 msgid "Pair %d Loudspeakers: "
 msgstr ""
 
-#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:208 Opcodes/vbap1.c:276
-#: Opcodes/vbap1.c:339 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:306
-#: Opcodes/vbap_n.c:370 Opcodes/vbap_n.c:451 Opcodes/vbap_zak.c:100
+#: Opcodes/vbap1.c:67 Opcodes/vbap1.c:209 Opcodes/vbap1.c:276
+#: Opcodes/vbap1.c:340 Opcodes/vbap_n.c:154 Opcodes/vbap_n.c:307
+#: Opcodes/vbap_n.c:372 Opcodes/vbap_n.c:453 Opcodes/vbap_zak.c:100
 #: Opcodes/vbap_zak.c:249 Opcodes/vbap_zak.c:327
 msgid "Warning: truncating elevation to 2-D plane\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:245 Opcodes/vbap_n.c:274
-#: Opcodes/vbap_n.c:338
+#: Opcodes/vbap1.c:177 Opcodes/vbap1.c:246 Opcodes/vbap_n.c:274
+#: Opcodes/vbap_n.c:339
 #, c-format
 msgid "could not find layout table no.%d"
 msgstr ""
 
-#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:253 Opcodes/vbap1.c:537
-#: Opcodes/vbap1.c:612 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:659
+#: Opcodes/vbap1.c:185 Opcodes/vbap1.c:254 Opcodes/vbap1.c:538
+#: Opcodes/vbap1.c:613 Opcodes/vbap_n.c:283 Opcodes/vbap_n.c:661
 msgid ""
 "vbap system NOT configured. \n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap1.c:366 Opcodes/vbap1.c:412 Opcodes/vbap_n.c:478
-#: Opcodes/vbap_n.c:523
+#: Opcodes/vbap1.c:367 Opcodes/vbap1.c:413 Opcodes/vbap_n.c:480
+#: Opcodes/vbap_n.c:525
 msgid "Missing fields in vbapmove\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:371 Opcodes/vbap_n.c:483 Opcodes/vbap_zak.c:360
+#: Opcodes/vbap1.c:372 Opcodes/vbap_n.c:485 Opcodes/vbap_zak.c:360
 msgid "Warning: Ambiguous transition 180 degrees.\n"
 msgstr ""
 
-#: Opcodes/vbap1.c:562 Opcodes/vbap1.c:637 Opcodes/vbap_n.c:683
-#: Opcodes/vbap_n.c:820
+#: Opcodes/vbap1.c:563 Opcodes/vbap1.c:638 Opcodes/vbap_n.c:685
+#: Opcodes/vbap_n.c:823
 #, c-format
 msgid "Have to have at least %d directions in vbapmove"
 msgstr ""
 
-#: Opcodes/vbap1.c:572 Opcodes/vbap1.c:647 Opcodes/vbap_n.c:693
-#: Opcodes/vbap_n.c:830 Opcodes/vbap_zak.c:572
+#: Opcodes/vbap1.c:573 Opcodes/vbap1.c:648 Opcodes/vbap_n.c:695
+#: Opcodes/vbap_n.c:833 Opcodes/vbap_zak.c:573
 msgid "Wrong dimension"
 msgstr ""
 
-#: Opcodes/vbap1.c:602
+#: Opcodes/vbap1.c:603
 msgid "Output array not initialised"
 msgstr ""
 
-#: Opcodes/vbap_n.c:347 Opcodes/vbap_n.c:796
+#: Opcodes/vbap_n.c:348 Opcodes/vbap_n.c:798
 msgid ""
 "vbap system NOT configured.\n"
 "Missing vbaplsinit opcode in orchestra?"
 msgstr ""
 
-#: Opcodes/vbap_n.c:651 Opcodes/vbap_n.c:787
+#: Opcodes/vbap_n.c:653 Opcodes/vbap_n.c:789
 msgid "could not find layout table no.0"
 msgstr ""
 
-#: Opcodes/vbap_n.c:780
+#: Opcodes/vbap_n.c:782
 msgid "Output array in vpabmove not initalised"
 msgstr ""
 
@@ -10117,34 +10183,67 @@ msgstr ""
 msgid "Missing fields in vbapzmove\n"
 msgstr ""
 
-#: Opcodes/vbap_zak.c:562
+#: Opcodes/vbap_zak.c:563
 #, c-format
 msgid "Have to have at least %d directions in vbapzmove"
 msgstr ""
 
-#: Opcodes/vpvoc.c:182
+#: Opcodes/vpvoc.c:181
 #, c-format
 msgid "vpvoc: Could not find ifnmagctrl table %f"
 msgstr ""
 
-#: Opcodes/vpvoc.c:188
+#: Opcodes/vpvoc.c:187
 msgid "vpvoc: associated tableseg not found"
 msgstr ""
 
-#: Opcodes/vpvoc.c:210
+#: Opcodes/vpvoc.c:209
 #, c-format
 msgid "VPVOC cannot load %s"
 msgstr ""
 
-#: Opcodes/vpvoc.c:380
+#: Opcodes/vpvoc.c:379
 msgid "vpvoc: not initialised"
 msgstr ""
 
+#: Opcodes/vst4cs/src/vst4cs.cpp:109
+msgid "vstinit: Error loading effect."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:134
+msgid "vstaudio: too many input args"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:347
+msgid "Error: BeginLoadBank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:353
+msgid "Loaded bank ID doesn't match plug-in ID."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:358
+msgid "Loaded bank contains a chunk format that the effect cannot handle."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:381
+msgid "Problem loading bank."
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:398
+#, c-format
+msgid "VSTprogset: Program %d treated as 1\n"
+msgstr ""
+
+#: Opcodes/vst4cs/src/vst4cs.cpp:534
+msgid "vstnote_init: not scheduling 0 duration note.\n"
+msgstr ""
+
 #: Opcodes/wave-terrain.c:42
 msgid "wterrain: ftable not found"
 msgstr ""
 
-#: Opcodes/wave-terrain.c:122
+#: Opcodes/wave-terrain.c:121
 msgid "Source table must be same size or smaller than dest table\n"
 msgstr ""
 
@@ -10172,61 +10271,61 @@ msgstr ""
 msgid "Table lengths do not agree!!"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:116
+#: Opcodes/websockets/WebSocketOpcode.c:117
 #, c-format
 msgid "websocket: variable %s data not sent, buffer overrrun\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:217
+#: Opcodes/websockets/WebSocketOpcode.c:218
 msgid ""
 "websocket: this opcode does not send strings, only receiving them is "
 "supported\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:225
+#: Opcodes/websockets/WebSocketOpcode.c:226
 #, c-format
 msgid ""
 "websocket: error output string variable %s must not be initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:259
+#: Opcodes/websockets/WebSocketOpcode.c:260
 #, c-format
 msgid ""
 "websocket: error array variable %s has not been initialised\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:344
+#: Opcodes/websockets/WebSocketOpcode.c:345
 msgid ""
 "websocket: error, incompatible argument detected\n"
 "Exiting"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:484
+#: Opcodes/websockets/WebSocketOpcode.c:487
 #, c-format
 msgid ""
 "websocket: received message from is not correct size for variable %s, "
 "message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:494
+#: Opcodes/websockets/WebSocketOpcode.c:497
 #, c-format
 msgid "websocket: received string message from %s is too large, message dumped"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:507
+#: Opcodes/websockets/WebSocketOpcode.c:510
 #, c-format
 msgid "websocket: received message from %s dumped, buffer overrrun"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:543
+#: Opcodes/websockets/WebSocketOpcode.c:546
 #, c-format
 msgid "websocket: connection established for %s\n"
 msgstr ""
 
-#: Opcodes/websockets/WebSocketOpcode.c:635
+#: Opcodes/websockets/WebSocketOpcode.c:638
 msgid "websocket: could not initialise websocket, Exiting"
 msgstr ""
 
@@ -10272,824 +10371,855 @@ msgid "Error opening log file '%s': %s\n"
 msgstr ""
 
 #: Top/argdecode.c:124
-msgid "--help\tprint long usage options"
+msgid "--help      print long usage options"
 msgstr ""
 
 #: Top/argdecode.c:125
-msgid "--version\tprint version details"
+msgid "--version   print version details"
 msgstr ""
 
 #: Top/argdecode.c:126
-msgid "-U unam\trun utility program unam"
+msgid "-U unam     run utility program unam"
 msgstr ""
 
 #: Top/argdecode.c:127
-msgid "-C\tuse Cscore processing of scorefile"
+msgid "-C          use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:128
-msgid "-j N\tuse N threads in performance"
+msgid "-j N        use N threads in performance"
 msgstr ""
 
 #: Top/argdecode.c:129
-msgid "-I\tI-time only orch run"
+msgid "-I          I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:130
-msgid "-n\tno sound onto disk"
+msgid "-n          no sound onto disk"
 msgstr ""
 
 #: Top/argdecode.c:131
-msgid "-i fnam\tsound input filename"
+msgid "-i fnam     sound input filename"
 msgstr ""
 
-#: Top/argdecode.c:132 util/mixer.c:94 util/scale.c:45
-msgid "-o fnam\tsound output filename"
+#: Top/argdecode.c:132
+msgid "-o fnam     sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:133
-msgid "-b N\tsample frames (or -kprds) per software sound I/O buffer"
+msgid "-b N        sample frames (or -kprds) per software sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:134
-msgid "-B N\tsamples per hardware sound I/O buffer"
+msgid "-B N        samples per hardware sound I/O buffer"
 msgstr ""
 
-#: Top/argdecode.c:135 util/mixer.c:95 util/scale.c:46 util/srconv.c:774
-msgid "-A\tcreate an AIFF format output soundfile"
+#: Top/argdecode.c:135
+msgid "-A          create an AIFF format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:136 util/mixer.c:96 util/scale.c:47 util/srconv.c:776
-msgid "-W\tcreate a WAV format output soundfile"
+#: Top/argdecode.c:136
+msgid "-W          create a WAV format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:137 util/srconv.c:775
-msgid "-J\tcreate an IRCAM format output soundfile"
+#: Top/argdecode.c:137
+msgid "-J          create an IRCAM format output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:138 util/mixer.c:97 util/scale.c:48 util/srconv.c:777
-msgid "-h\tno header on output soundfile"
+#: Top/argdecode.c:138
+msgid "-h          no header on output soundfile"
 msgstr ""
 
-#: Top/argdecode.c:139 util/mixer.c:99 util/scale.c:49 util/srconv.c:778
-msgid "-c\t8-bit signed_char sound samples"
+#: Top/argdecode.c:139
+msgid "-c          8-bit signed_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:141 util/mixer.c:101 util/scale.c:50 util/srconv.c:779
-msgid "-a\talaw sound samples"
+#: Top/argdecode.c:141
+msgid "-a          alaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:143 util/mixer.c:98 util/mixer.c:100 util/srconv.c:780
-msgid "-8\t8-bit unsigned_char sound samples"
+#: Top/argdecode.c:143
+msgid "-8          8-bit unsigned_char sound samples"
 msgstr ""
 
-#: Top/argdecode.c:144 util/mixer.c:102 util/scale.c:51 util/srconv.c:781
-msgid "-u\tulaw sound samples"
+#: Top/argdecode.c:144
+msgid "-u          ulaw sound samples"
 msgstr ""
 
-#: Top/argdecode.c:145 util/mixer.c:103 util/scale.c:52 util/srconv.c:782
-msgid "-s\tshort_int sound samples"
+#: Top/argdecode.c:145
+msgid "-s          short_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:146 util/mixer.c:104 util/scale.c:53 util/srconv.c:783
-msgid "-l\tlong_int sound samples"
+#: Top/argdecode.c:146
+msgid "-l          long_int sound samples"
 msgstr ""
 
-#: Top/argdecode.c:147 util/mixer.c:105 util/scale.c:54 util/srconv.c:784
-msgid "-f\tfloat sound samples"
+#: Top/argdecode.c:147
+msgid "-f          float sound samples"
 msgstr ""
 
 #: Top/argdecode.c:148
-msgid "-3\t24bit sound samples"
+msgid "-3          24bit sound samples"
 msgstr ""
 
-#: Top/argdecode.c:149 util/srconv.c:785
-msgid "-r N\torchestra srate override"
+#: Top/argdecode.c:149
+msgid "-r N        orchestra srate override"
 msgstr ""
 
 #: Top/argdecode.c:150
-msgid "-k N\torchestra krate override"
+msgid "-k N        orchestra krate override"
 msgstr ""
 
-#: Top/argdecode.c:151 util/srconv.c:786
-msgid "-K\tDo not generate PEAK chunks"
+#: Top/argdecode.c:151
+msgid "-K          do not generate PEAK chunks"
 msgstr ""
 
 #: Top/argdecode.c:152
-msgid "-v\tverbose orch translation"
+msgid "-v          verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:153
-msgid "-m N\ttty message level. Sum of:"
+msgid "-m N        tty message level. Sum of:"
 msgstr ""
 
 #: Top/argdecode.c:154
-msgid "\t\t1=note amps, 2=out-of-range msg, 4=warnings"
+msgid "              1=note amps, 2=out-of-range msg, 4=warnings"
 msgstr ""
 
 #: Top/argdecode.c:155
-msgid "\t\t0/32/64/96=note amp format (raw,dB,colors)"
+msgid "              0/32/64/96=note amp format (raw,dB,colors)"
 msgstr ""
 
 #: Top/argdecode.c:156
-msgid "\t\t128=print benchmark information"
+msgid "              128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:157
-msgid "-d\tsuppress all displays"
+msgid "-d          suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:158
-msgid "-g\tsuppress graphics, use ascii displays"
+msgid "-g          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:159
-msgid "-G\tsuppress graphics, use Postscript displays"
+msgid "-G          suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:160
-msgid "-x fnam\textract from score.srt using extract file 'fnam'"
+msgid "-x fnam     extract from score.srt using extract file 'fnam'"
 msgstr ""
 
 #: Top/argdecode.c:161
-msgid "-t N\tuse uninterpreted beats of the score, initially at tempo N"
-msgstr ""
-
-#: Top/argdecode.c:162
-msgid "-t 0\tuse score.srt for sorted score rather than a temporary"
+msgid "-t N        use uninterpreted beats of the score, initially at tempo N"
 msgstr ""
 
 #: Top/argdecode.c:163
-msgid "-L dnam\tread Line-oriented realtime score events from device 'dnam'"
+msgid "-t 0        use score.srt for sorted score rather than a temporary"
 msgstr ""
 
 #: Top/argdecode.c:164
-msgid "-M dnam\tread MIDI realtime events from device 'dnam'"
+msgid "-L dnam     read Line-oriented realtime score events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:165
-msgid "-F fnam\tread MIDIfile event stream from file 'fnam'"
+#: Top/argdecode.c:166
+msgid "-M dnam     read MIDI realtime events from device 'dnam'"
 msgstr ""
 
-#: Top/argdecode.c:167 util/mixer.c:106 util/scale.c:59 util/srconv.c:787
-msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+#: Top/argdecode.c:167
+msgid "-F fnam     read MIDIfile event stream from file 'fnam'"
 msgstr ""
 
-#: Top/argdecode.c:168
-msgid "-H#\tprint heartbeat style 1, 2 or 3 at each soundfile write"
-msgstr ""
-
-#: Top/argdecode.c:169 util/mixer.c:108 util/scale.c:61 util/srconv.c:789
-msgid "-N\tnotify (ring the bell) when score or miditrack is done"
-msgstr ""
-
-#: Top/argdecode.c:170
-msgid "-T\tterminate the performance when miditrack is done"
+#: Top/argdecode.c:169
+msgid ""
+"-R          continually rewrite header while writing soundfile (WAV/AIFF)"
 msgstr ""
 
 #: Top/argdecode.c:171
-msgid "-D\tdefer GEN01 soundfile loads until performance time"
+msgid "-H#         print heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
 #: Top/argdecode.c:172
-msgid "-Q dnam\tselect MIDI output device"
+msgid "-N          notify (ring the bell) when score or miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:173
-msgid "-z\tList opcodes in this version"
+msgid "-T          terminate the performance when miditrack is done"
 msgstr ""
 
 #: Top/argdecode.c:174
-msgid "-Z\tDither output"
+msgid "-D          defer GEN01 soundfile loads until performance time"
 msgstr ""
 
-#: Top/argdecode.c:176
-msgid "--sched     set real-time priority and lock memory"
+#: Top/argdecode.c:175
+msgid "-Q dnam     select MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:177 Top/argdecode.c:179
-msgid "            (requires -d and real time audio (-iadc/-odac))"
+#: Top/argdecode.c:176
+msgid "-z          list opcodes in this version"
 msgstr ""
 
-#: Top/argdecode.c:178
-msgid "--sched=N   set specified scheduling priority, and lock memory"
+#: Top/argdecode.c:177
+msgid "-Z          dither output"
 msgstr ""
 
-#: Top/argdecode.c:188
-msgid "\t\t\tSet output file format"
+#: Top/argdecode.c:179
+msgid "--sched     set real-time priority and lock memory"
 msgstr ""
 
-#: Top/argdecode.c:189
-msgid "--aiff\t\t\tSet AIFF format"
+#: Top/argdecode.c:180 Top/argdecode.c:182
+msgid "              (requires -d and real time audio (-iadc/-odac))"
 msgstr ""
 
-#: Top/argdecode.c:190
-msgid "--au\t\t\tSet AU format"
+#: Top/argdecode.c:181
+msgid "--sched=N   set specified scheduling priority, and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:191
-msgid "--wave\t\t\tSet WAV format"
+msgid "  Set output file format"
 msgstr ""
 
 #: Top/argdecode.c:192
-msgid "--ircam\t\t\tSet IRCAM format"
+msgid "--aiff                  set AIFF format"
 msgstr ""
 
 #: Top/argdecode.c:193
-msgid "--ogg\t\t\tSet OGG/VORBIS format"
+msgid "--au                    set AU format"
 msgstr ""
 
 #: Top/argdecode.c:194
-msgid "--noheader\t\tRaw format"
+msgid "--wave                  set WAV format"
 msgstr ""
 
 #: Top/argdecode.c:195
-msgid "--nopeaks\t\tDo not write peak information"
+msgid "--ircam                 set IRCAM format"
+msgstr ""
+
+#: Top/argdecode.c:196
+msgid "--ogg                   set OGG/VORBIS format"
 msgstr ""
 
 #: Top/argdecode.c:197
-msgid "--displays\t\tUse graphic displays"
+msgid "--noheader              raw format"
 msgstr ""
 
 #: Top/argdecode.c:198
-msgid "--nodisplays\t\tSuppress all displays"
+msgid "--nopeaks               do not write peak information"
 msgstr ""
 
-#: Top/argdecode.c:199
-msgid "--asciidisplay\t\tSuppress graphics, use ascii displays"
+#: Top/argdecode.c:200
+msgid "--displays              use graphic displays"
 msgstr ""
 
-#: Top/argdecode.c:200
-msgid "--postscriptdisplay\tSuppress graphics, use Postscript displays"
+#: Top/argdecode.c:201
+msgid "--nodisplays            suppress all displays"
 msgstr ""
 
 #: Top/argdecode.c:202
-msgid "--defer-gen1\t\tDefer GEN01 soundfile loads until performance time"
+msgid "--asciidisplay          suppress graphics, use ascii displays"
 msgstr ""
 
 #: Top/argdecode.c:203
-msgid ""
-"--iobufsamps=N\t\tSample frames (or -kprds) per software sound I/O buffer"
+msgid "--postscriptdisplay     suppress graphics, use Postscript displays"
 msgstr ""
 
 #: Top/argdecode.c:205
-msgid "--hardwarebufsamps=N\tSamples per hardware sound I/O buffer"
-msgstr ""
-
-#: Top/argdecode.c:206
-msgid "--cscore\t\tUse Cscore processing of scorefile"
+msgid ""
+"--defer-gen1            defer GEN01 soundfile loads until performance time"
 msgstr ""
 
 #: Top/argdecode.c:207
-msgid "--orc\t\t\tUse orchfile without scorefile"
+msgid ""
+"--iobufsamps=N          sample frames (or -kprds) per software sound I/O "
+"buffer"
 msgstr ""
 
 #: Top/argdecode.c:209
-msgid "--midifile=FNAME\tRead MIDIfile event stream from file"
+msgid "--hardwarebufsamps=N    samples per hardware sound I/O buffer"
 msgstr ""
 
 #: Top/argdecode.c:210
-msgid "--midioutfile=FNAME\tWrite MIDI output to file FNAME"
+msgid "--cscore                use Cscore processing of scorefile"
 msgstr ""
 
 #: Top/argdecode.c:211
-msgid "--midi-device=FNAME\tRead MIDI realtime events from device"
+msgid "--orc                   use orchfile without scorefile"
 msgstr ""
 
-#: Top/argdecode.c:212
-msgid "--terminate-on-midi\tTerminate the performance when miditrack is done"
+#: Top/argdecode.c:213
+msgid "--midifile=FNAME        read MIDIfile event stream from file"
 msgstr ""
 
 #: Top/argdecode.c:214
-msgid ""
-"--heartbeat=N\t\tPrint a heartbeat style 1, 2 or 3 at each soundfile write"
+msgid "--midioutfile=FNAME     write MIDI output to file FNAME"
 msgstr ""
 
-#: Top/argdecode.c:216
-msgid "--notify\t\tNotify (ring the bell) when score or miditrack is done"
+#: Top/argdecode.c:215
+msgid "--midi-device=FNAME     read MIDI realtime events from device"
 msgstr ""
 
-#: Top/argdecode.c:217
+#: Top/argdecode.c:216
 msgid ""
-"--rewrite\t\tContinually rewrite header while writing soundfile (WAV/AIFF)"
+"--terminate-on-midi     terminate the performance when miditrack is done"
 msgstr ""
 
-#: Top/argdecode.c:220
-msgid "--input=FNAME\t\tSound input filename"
+#: Top/argdecode.c:219
+msgid ""
+"--heartbeat=N           print a heartbeat style 1, 2 or 3 at each soundfile "
+"write"
 msgstr ""
 
 #: Top/argdecode.c:221
-msgid "--output=FNAME\t\tSound output filename"
-msgstr ""
-
-#: Top/argdecode.c:222
-msgid "--logfile=FNAME\t\tLog output to file"
+msgid ""
+"--notify                notify (ring the bell) when score or miditrack is "
+"done"
 msgstr ""
 
-#: Top/argdecode.c:224
-msgid "--nosound\t\tNo sound onto disk or device"
+#: Top/argdecode.c:223
+msgid ""
+"--rewrite               continually rewrite header while writing soundfile "
+"(WAV/AIFF)"
 msgstr ""
 
-#: Top/argdecode.c:225
-msgid "--tempo=N\t\tUse uninterpreted beats of the score, initially at tempo N"
+#: Top/argdecode.c:226
+msgid "--input=FNAME           sound input filename"
 msgstr ""
 
 #: Top/argdecode.c:227
-msgid "--i-only\t\tI-time only orch run"
+msgid "--output=FNAME          sound output filename"
 msgstr ""
 
 #: Top/argdecode.c:228
-msgid "--syntax-check-only\tStop after checking orchestra and score syntax"
-msgstr ""
-
-#: Top/argdecode.c:229
-msgid "--control-rate=N\tOrchestra krate override"
+msgid "--logfile=FNAME         log output to file"
 msgstr ""
 
 #: Top/argdecode.c:230
-msgid "--sample-rate=N\t\tOrchestra srate override"
+msgid "--nosound               no sound onto disk or device"
 msgstr ""
 
 #: Top/argdecode.c:231
-msgid "--score-in=FNAME\tRead Line-oriented realtime score events from device"
+msgid ""
+"--tempo=N               use uninterpreted beats of the score, initially at "
+"tempo N"
 msgstr ""
 
 #: Top/argdecode.c:233
-msgid "--messagelevel=N\ttty message level, sum of:"
+msgid "--i-only                I-time only orch run"
 msgstr ""
 
 #: Top/argdecode.c:234
-msgid "--messageolevel=O\ttty message level in octal, of:"
-msgstr ""
-
-#: Top/argdecode.c:235
-msgid "\t\t\t\t1=note amps, 2=out-of-range msg, 4=warnings,"
+msgid "--syntax-check-only     stop after checking orchestra and score syntax"
 msgstr ""
 
 #: Top/argdecode.c:236
-msgid "\t\t\t\t0/32/64/96=note amp format (raw,dB,colors),"
+msgid "--control-rate=N        orchestra krate override"
 msgstr ""
 
 #: Top/argdecode.c:237
-msgid "\t\t\t\t128=print benchmark information"
+msgid "--sample-rate=N         orchestra srate override"
 msgstr ""
 
-#: Top/argdecode.c:239
-msgid "--m-amps=[01]\tmessages on note amps"
+#: Top/argdecode.c:238
+msgid ""
+"--score-in=FNAME        read line-oriented realtime score events from device"
 msgstr ""
 
 #: Top/argdecode.c:240
-msgid "--m-range=[01]\tMessages on range errors"
+msgid "--messagelevel=N        tty message level, sum of:"
 msgstr ""
 
 #: Top/argdecode.c:241
-msgid "--m-warnings=[01]\tMesage on warnings"
+msgid "--messageolevel=O       tty message level in octal, of:"
 msgstr ""
 
 #: Top/argdecode.c:242
-msgid "--m-raw=[01]\tRaw amp messages"
+msgid "                          1=note amps, 2=out-of-range msg, 4=warnings,"
 msgstr ""
 
 #: Top/argdecode.c:243
-msgid "--m-dB=[01]\tAmp messages in dB"
+msgid "                          0/32/64/96=note amp format (raw,dB,colors),"
 msgstr ""
 
 #: Top/argdecode.c:244
-msgid "--m-colours=[01]\tColour amp messages"
-msgstr ""
-
-#: Top/argdecode.c:245
-msgid "--m-benchmarks=[01]\tPrint benchmark information"
+msgid "                          128=print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:246
-msgid "--csd-line-nums=[01]\tControls how error line numbers are printed:"
+msgid "--m-amps=[01]           messages on note amps"
 msgstr ""
 
 #: Top/argdecode.c:247
-msgid "\t\t\t1=use CSD line #s (default), 0=use ORC/SCO-relative line #s"
+msgid "--m-range=[01]          messages on range errors"
 msgstr ""
 
 #: Top/argdecode.c:248
-msgid "--extract-score=FNAME\tExtract from score.srt using extract file"
+msgid "--m-warnings=[01]       mesage on warnings"
 msgstr ""
 
 #: Top/argdecode.c:249
-msgid "--keep-sorted-score"
+msgid "--m-raw=[01]            raw amp messages"
 msgstr ""
 
 #: Top/argdecode.c:250
-msgid "--env:NAME=VALUE\tSet environment variable NAME to VALUE"
+msgid "--m-dB=[01]             amp messages in dB"
 msgstr ""
 
 #: Top/argdecode.c:251
-msgid "--env:NAME+=VALUE\tAppend VALUE to environment variable NAME"
+msgid "--m-colours=[01]        colour amp messages"
 msgstr ""
 
 #: Top/argdecode.c:252
-msgid "--strsetN=VALUE\t\tSet strset table at index N to VALUE"
+msgid "--m-benchmarks=[01]     print benchmark information"
 msgstr ""
 
 #: Top/argdecode.c:253
-msgid "--utility=NAME\t\tRun utility program"
+msgid "--csd-line-nums=[01]    controls how error line numbers are printed:"
 msgstr ""
 
 #: Top/argdecode.c:254
-msgid "--verbose\t\tVerbose orch translation"
-msgstr ""
-
-#: Top/argdecode.c:255
-msgid "--list-opcodes\t\tList opcodes in this version"
+msgid ""
+"                          1=use CSD line #s (default), 0=use ORC/SCO-"
+"relative line #s"
 msgstr ""
 
 #: Top/argdecode.c:256
-msgid "--list-opcodesN\t\tList opcodes in style N in this version"
+msgid "--extract-score=FNAME   extract from score.srt using extract file"
 msgstr ""
 
 #: Top/argdecode.c:257
-msgid "--dither\t\tDither output"
+msgid "--keep-sorted-score"
 msgstr ""
 
 #: Top/argdecode.c:258
-msgid "--dither-triangular\t\tDither output with triangular distribution"
+msgid "--env:NAME=VALUE        set environment variable NAME to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:259
-msgid "--dither-uniform\t\tDither output with rectanular distribution"
+msgid "--env:NAME+=VALUE       append VALUE to environment variable NAME"
 msgstr ""
 
 #: Top/argdecode.c:260
-msgid "--sched\t\t\tSet real-time scheduling priority and lock memory"
+msgid "--strsetN=VALUE         set strset table at index N to VALUE"
 msgstr ""
 
 #: Top/argdecode.c:261
-msgid "--sched=N\t\tSet priority to N and lock memory"
+msgid "--utility=NAME          run utility program"
 msgstr ""
 
 #: Top/argdecode.c:262
-msgid "--opcode-lib=NAMES\tDynamic libraries to load"
+msgid "--verbose               verbose orch translation"
 msgstr ""
 
 #: Top/argdecode.c:263
-msgid "--opcode-omit=NAMES\tDynamic libraries not to load"
+msgid "--list-opcodes          list opcodes in this version"
 msgstr ""
 
 #: Top/argdecode.c:264
-msgid "--omacro:XXX=YYY\tSet orchestra macro XXX to value YYY"
+msgid "--list-opcodesN         list opcodes in style N in this version"
 msgstr ""
 
 #: Top/argdecode.c:265
-msgid "--smacro:XXX=YYY\tSet score macro XXX to value YYY"
+msgid "--dither                dither output"
 msgstr ""
 
 #: Top/argdecode.c:266
-msgid "--midi-key=N\t\tRoute MIDI note on message"
+msgid "--dither-triangular     dither output with triangular distribution"
 msgstr ""
 
 #: Top/argdecode.c:267
-msgid "\t\t\tkey number to pfield N as MIDI value [0-127]"
+msgid "--dither-uniform        dither output with rectanular distribution"
 msgstr ""
 
 #: Top/argdecode.c:268
-msgid "--midi-key-cps=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:269
-msgid "\t\t\tkey number to pfield N as cycles per second"
+msgid ""
+"--sched                 set real-time scheduling priority and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:270
-msgid "--midi-key-oct=N\tRoute MIDI note on message"
+msgid "--sched=N               set priority to N and lock memory"
 msgstr ""
 
 #: Top/argdecode.c:271
-msgid "\t\t\tkey number to pfield N as linear octave"
+msgid "--opcode-lib=NAMES      dynamic libraries to load"
 msgstr ""
 
 #: Top/argdecode.c:272
-msgid "--midi-key-pch=N\tRoute MIDI note on message"
+msgid "--opcode-omit=NAMES     dynamic libraries not to load"
 msgstr ""
 
 #: Top/argdecode.c:273
-msgid "\t\t\tkey number to pfield N as oct.pch"
+msgid "--omacro:XXX=YYY        set orchestra macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:274
-msgid "--midi-velocity=N\tRoute MIDI note on message"
+msgid "--smacro:XXX=YYY        set score macro XXX to value YYY"
 msgstr ""
 
 #: Top/argdecode.c:275
-msgid "\t\t\tvelocity number to pfield N as MIDI value [0-127]"
+msgid "--midi-key=N            route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:276
-msgid "--midi-velocity-amp=N\tRoute MIDI note on message"
-msgstr ""
-
-#: Top/argdecode.c:277
-msgid "\t\t\tvelocity number to pfield N as amplitude"
+msgid "                          key number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:278
-msgid "--no-default-paths\tTurn off relative paths from CSD/ORC/SCO"
+msgid "--midi-key-cps=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:279
-msgid "--sample-accurate\t\tUse sample-accurate timing of score events"
+msgid "                          key number to pfield N as cycles per second"
 msgstr ""
 
 #: Top/argdecode.c:280
-msgid "--realtime\t\trealtime priority mode"
+msgid "--midi-key-oct=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:281
-msgid "--nchnls=N\t\t override number of audio channels"
+msgid "                          key number to pfield N as linear octave"
 msgstr ""
 
 #: Top/argdecode.c:282
-msgid "--nchnls_i=N\t\t override number of input audio channels"
+msgid "--midi-key-pch=N        route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:283
-msgid "--0dbfs=N\t\t override 0dbfs (max positive signal amplitude)"
+msgid "                          key number to pfield N as oct.pch"
 msgstr ""
 
 #: Top/argdecode.c:284
-msgid "--sinesize\t\tlength of internal sine table"
+msgid "--midi-velocity=N       route MIDI note on message"
 msgstr ""
 
 #: Top/argdecode.c:285
 msgid ""
-"--daemon\t\t daemon mode: do not exit if CSD/orchestra is not given, is "
-"empty or does not compile"
+"                          velocity number to pfield N as MIDI value [0-127]"
 msgstr ""
 
 #: Top/argdecode.c:287
-msgid ""
-"--port=N\t\t listen to UDP port N for instruments/orchestra code (implies --"
-"daemon)"
+msgid "--midi-velocity-amp=N   route MIDI note on message"
+msgstr ""
+
+#: Top/argdecode.c:288
+msgid "                          velocity number to pfield N as amplitude"
 msgstr ""
 
 #: Top/argdecode.c:289
-msgid "--vbr-quality=Ft\t set quality of variable bit0rate compression"
+msgid "--no-default-paths      turn off relative paths from CSD/ORC/SCO"
 msgstr ""
 
 #: Top/argdecode.c:290
-msgid "--devices[=in|out] \t\t list available MIDI devices and exit"
+msgid "--sample-accurate       use sample-accurate timing of score events"
 msgstr ""
 
 #: Top/argdecode.c:291
-msgid "--midi-devices[=in|out] \t\t list available audio devices and exit"
+msgid "--realtime              realtime priority mode"
 msgstr ""
 
 #: Top/argdecode.c:292
-msgid "--get-system-sr \t\t print system sr and exit"
+msgid "--nchnls=N              override number of audio channels"
 msgstr ""
 
 #: Top/argdecode.c:293
-msgid "--ksmps=N \t\t override ksmps"
+msgid "--nchnls_i=N            override number of input audio channels"
 msgstr ""
 
 #: Top/argdecode.c:294
-msgid "--fftlib=N \t\t real fft lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgid "--0dbfs=N               override 0dbfs (max positive signal amplitude)"
+msgstr ""
+
+#: Top/argdecode.c:295
+msgid "--sinesize              length of internal sine table"
 msgstr ""
 
 #: Top/argdecode.c:296
-msgid "--help\t\t\tLong help"
+msgid ""
+"--daemon                daemon mode: do not exit if CSD/orchestra is not "
+"given, is empty or does not compile"
+msgstr ""
+
+#: Top/argdecode.c:298
+msgid ""
+"--port=N                listen to UDP port N for instruments/orchestra code "
+"(implies --daemon)"
+msgstr ""
+
+#: Top/argdecode.c:300
+msgid "--vbr-quality=Ft        set quality of variable bit-rate compression"
+msgstr ""
+
+#: Top/argdecode.c:301
+msgid "--devices[=in|out]      list available MIDI devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:302
+msgid "--midi-devices[=in|out] list available audio devices and exit"
+msgstr ""
+
+#: Top/argdecode.c:303
+msgid "--get-system-sr         print system sr and exit"
+msgstr ""
+
+#: Top/argdecode.c:304
+msgid "--ksmps=N               override ksmps"
+msgstr ""
+
+#: Top/argdecode.c:305
+msgid ""
+"--fftlib=N              actual FFT lib to use (FFTLIB=0, PFFFT = 1, vDSP =2)"
+msgstr ""
+
+#: Top/argdecode.c:307
+msgid "--udp-echo              echo UDP commands on terminal"
 msgstr ""
 
-#: Top/argdecode.c:312
+#: Top/argdecode.c:308
+msgid "--aft-zero              set aftertouch to zero, not 127 (default)"
+msgstr ""
+
+#: Top/argdecode.c:310
+msgid "--help                  long help"
+msgstr ""
+
+#: Top/argdecode.c:325
 #, c-format
-msgid "flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+msgid ""
+"flag defaults: csound -s -otest -b%d -B%d -m%d\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:319 Top/argdecode.c:335
-msgid "Usage:\tcsound [-flags] orchfile scorefile\n"
+#: Top/argdecode.c:332
+msgid "Usage:     csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:320 Top/argdecode.c:336 util/envext.c:53 util/xtrct.c:67
+#: Top/argdecode.c:333 Top/argdecode.c:347 util/envext.c:53 util/xtrct.c:67
 msgid "Legal flags are:\n"
 msgstr ""
 
-#: Top/argdecode.c:321
+#: Top/argdecode.c:334
 msgid ""
 "Long format:\n"
 "\n"
 msgstr ""
 
-#: Top/argdecode.c:326
+#: Top/argdecode.c:338
 msgid ""
 "\n"
-"Short form:\n"
+"Short format:\n"
+"\n"
 msgstr ""
 
-#: Top/argdecode.c:339
-msgid "Csound Command ERROR:\t"
+#: Top/argdecode.c:346
+msgid "Usage:      csound [-flags] orchfile scorefile\n"
 msgstr ""
 
-#: Top/argdecode.c:524
+#: Top/argdecode.c:350
+msgid "Csound Command ERROR:    "
+msgstr ""
+
+#: Top/argdecode.c:540
 #, c-format
 msgid "unknown output format: '%s'"
 msgstr ""
 
-#: Top/argdecode.c:542 Top/argdecode.c:1229
+#: Top/argdecode.c:558 Top/argdecode.c:1276
 msgid "no iobufsamps"
 msgstr ""
 
-#: Top/argdecode.c:549 Top/argdecode.c:1236
+#: Top/argdecode.c:565 Top/argdecode.c:1283
 msgid "no hardware bufsamps"
 msgstr ""
 
-#: Top/argdecode.c:577 Top/argdecode.c:1337
+#: Top/argdecode.c:593 Top/argdecode.c:1384
 msgid "no midifile name"
 msgstr ""
 
-#: Top/argdecode.c:581 Top/argdecode.c:1342
+#: Top/argdecode.c:597 Top/argdecode.c:1389
 msgid "-F: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:594
+#: Top/argdecode.c:610
 msgid "no midi output file name"
 msgstr ""
 
-#: Top/argdecode.c:624
+#: Top/argdecode.c:640
 msgid "invalid python variable definition syntax"
 msgstr ""
 
-#: Top/argdecode.c:631 Top/argdecode.c:1197
+#: Top/argdecode.c:647 Top/argdecode.c:1244
 msgid "no infilename"
 msgstr ""
 
-#: Top/argdecode.c:634 Top/argdecode.c:1201
+#: Top/argdecode.c:650 Top/argdecode.c:1248
 msgid "input cannot be stdout"
 msgstr ""
 
-#: Top/argdecode.c:638 Top/argdecode.c:1205
+#: Top/argdecode.c:654 Top/argdecode.c:1252
 msgid "stdin audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:669 Top/argdecode.c:1269
+#: Top/argdecode.c:685 Top/argdecode.c:1316
 msgid "no control rate"
 msgstr ""
 
-#: Top/argdecode.c:675
+#: Top/argdecode.c:691
 msgid "no ksmps"
 msgstr ""
 
-#: Top/argdecode.c:690 Top/argdecode.c:1311
+#: Top/argdecode.c:706 Top/argdecode.c:1358
 msgid "no Linein score device_name"
 msgstr ""
 
-#: Top/argdecode.c:706 Top/argdecode.c:712 Top/argdecode.c:1277
+#: Top/argdecode.c:722 Top/argdecode.c:728 Top/argdecode.c:1324
 msgid "no message level"
 msgstr ""
 
-#: Top/argdecode.c:719
+#: Top/argdecode.c:735
 msgid "no message amps"
 msgstr ""
 
-#: Top/argdecode.c:728
+#: Top/argdecode.c:744
 msgid "no message range"
 msgstr ""
 
-#: Top/argdecode.c:737
+#: Top/argdecode.c:753
 msgid "no message warnings"
 msgstr ""
 
-#: Top/argdecode.c:746
+#: Top/argdecode.c:762
 msgid "no message raw"
 msgstr ""
 
-#: Top/argdecode.c:755
+#: Top/argdecode.c:771
 msgid "no message dB"
 msgstr ""
 
-#: Top/argdecode.c:764
+#: Top/argdecode.c:780
 msgid "no message colours"
 msgstr ""
 
-#: Top/argdecode.c:773
+#: Top/argdecode.c:789
 msgid "no benchmark level"
 msgstr ""
 
-#: Top/argdecode.c:781
+#: Top/argdecode.c:797
 msgid "no value for --csd-line-nums"
 msgstr ""
 
-#: Top/argdecode.c:791 Top/argdecode.c:1322
+#: Top/argdecode.c:807 Top/argdecode.c:1369
 msgid "no midi device_name"
 msgstr ""
 
-#: Top/argdecode.c:796 Top/argdecode.c:1327
+#: Top/argdecode.c:812 Top/argdecode.c:1374
 msgid "-M: stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:817 Top/argdecode.c:1213 util/envext.c:84 util/mixer.c:206
+#: Top/argdecode.c:833 Top/argdecode.c:1260 util/envext.c:84 util/mixer.c:206
 #: util/scale.c:174 util/srconv.c:252 util/xtrct.c:120
 msgid "no outfilename"
 msgstr ""
 
-#: Top/argdecode.c:820 Top/argdecode.c:1217 util/scale.c:178 util/srconv.c:256
+#: Top/argdecode.c:836 Top/argdecode.c:1264 util/scale.c:178 util/srconv.c:256
 #: util/xtrct.c:124
 msgid "-o cannot be stdin"
 msgstr ""
 
-#: Top/argdecode.c:824 Top/argdecode.c:1221 util/scale.c:181 util/srconv.c:261
+#: Top/argdecode.c:840 Top/argdecode.c:1268 util/scale.c:181 util/srconv.c:261
 msgid "stdout audio not supported"
 msgstr ""
 
-#: Top/argdecode.c:834 Top/argdecode.c:1420 util/hetro.c:235
+#: Top/argdecode.c:850 Top/argdecode.c:1467 util/hetro.c:235
 msgid "no log file"
 msgstr ""
 
-#: Top/argdecode.c:868
+#: Top/argdecode.c:884
 msgid "option expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:873
+#: Top/argdecode.c:889
 msgid "option no-expresson-opt has no affect\n"
 msgstr ""
 
-#: Top/argdecode.c:895 Top/argdecode.c:1176
+#: Top/argdecode.c:911 Top/argdecode.c:1223
 msgid "no utility name"
 msgstr ""
 
-#: Top/argdecode.c:914 Top/argdecode.c:1291
+#: Top/argdecode.c:930 Top/argdecode.c:1338
 msgid "no xfilename"
 msgstr ""
 
-#: Top/argdecode.c:1029
+#: Top/argdecode.c:1045
 msgid "realtime mode enabled\n"
 msgstr ""
 
-#: Top/argdecode.c:1141
+#: Top/argdecode.c:1188
 #, c-format
 msgid "unknown long option: '--%s'"
 msgstr ""
 
-#: Top/argdecode.c:1264
+#: Top/argdecode.c:1311
 msgid "no sample rate"
 msgstr ""
 
-#: Top/argdecode.c:1296
+#: Top/argdecode.c:1343
 msgid "no tempo value"
 msgstr ""
 
-#: Top/argdecode.c:1301
+#: Top/argdecode.c:1348
 msgid "illegal tempo"
 msgstr ""
 
-#: Top/argdecode.c:1352
+#: Top/argdecode.c:1399
 msgid "no MIDI output device"
 msgstr ""
 
-#: Top/argdecode.c:1400
+#: Top/argdecode.c:1447
 msgid "No indirection file"
 msgstr ""
 
-#: Top/argdecode.c:1407
+#: Top/argdecode.c:1454
 #, c-format
 msgid "Cannot open indirection file %s\n"
 msgstr ""
 
-#: Top/argdecode.c:1441
+#: Top/argdecode.c:1488
 msgid "no number of threads"
 msgstr ""
 
-#: Top/argdecode.c:1452 util/envext.c:94 util/mixer.c:316 util/scale.c:242
+#: Top/argdecode.c:1499 util/envext.c:94 util/mixer.c:316 util/scale.c:242
 #: util/xtrct.c:239
 #, c-format
 msgid "unknown flag -%c"
 msgstr ""
 
-#: Top/argdecode.c:1459
+#: Top/argdecode.c:1506
 msgid "error: orchestra and score name not allowed in .csound6rc"
 msgstr ""
 
-#: Top/argdecode.c:1617
+#: Top/argdecode.c:1664
 msgid "stdout not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1678 Top/argdecode.c:1698 Top/argdecode.c:1718
+#: Top/argdecode.c:1725 Top/argdecode.c:1745 Top/argdecode.c:1765
 msgid "stdin not supported on this platform"
 msgstr ""
 
-#: Top/argdecode.c:1755
+#: Top/argdecode.c:1802
 #, c-format
 msgid "%d audio output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1758
+#: Top/argdecode.c:1805
 #, c-format
 msgid "%d audio input devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1773
+#: Top/argdecode.c:1820
 #, c-format
 msgid "%d MIDI output devices \n"
 msgstr ""
 
-#: Top/argdecode.c:1776
+#: Top/argdecode.c:1823
 #, c-format
 msgid "%d MIDI input devices \n"
 msgstr ""
@@ -11233,332 +11363,332 @@ msgstr ""
 msgid "Error de-initialising module '%s'"
 msgstr ""
 
-#: Top/csound.c:115
+#: Top/csound.c:117
 #, c-format
 msgid ""
 "--Csound version %s beta (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:120
+#: Top/csound.c:122
 #, c-format
 msgid ""
 "--Csound version %s (double samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:127
+#: Top/csound.c:129
 #, c-format
 msgid ""
 "--Csound version %s beta (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:132
+#: Top/csound.c:134
 #, c-format
 msgid ""
 "--Csound version %s (float samples) %s \n"
 "[commit: %s]\n"
 msgstr ""
 
-#: Top/csound.c:171
+#: Top/csound.c:173
 msgid "Error allocating opcode list"
 msgstr ""
 
-#: Top/csound.c:1526
+#: Top/csound.c:1595
 #, c-format
-msgid "Multithread performance: insno: %3d  thread %d of %d starting.\n"
+msgid "Multithread performance:thread %d of %d starting.\n"
 msgstr ""
 
-#: Top/csound.c:1532
+#: Top/csound.c:1601
 msgid "Bad ThreadId"
 msgstr ""
 
-#: Top/csound.c:2016 Top/csound.c:2050 Top/csound.c:2079 Top/csound.c:2115
-#: Top/csound.c:4287
+#: Top/csound.c:2092 Top/csound.c:2126 Top/csound.c:2155 Top/csound.c:2191
+#: Top/csound.c:4374
 msgid "Csound not ready for performance: csoundStart() has not been called \n"
 msgstr ""
 
-#: Top/csound.c:2033
+#: Top/csound.c:2109
 #, c-format
 msgid "Score finished in csoundPerformKsmps() with %d.\n"
 msgstr ""
 
-#: Top/csound.c:2057 Top/csound.c:4294
+#: Top/csound.c:2133 Top/csound.c:4381
 msgid "Early return from csoundPerformKsmps().\n"
 msgstr ""
 
-#: Top/csound.c:2064
+#: Top/csound.c:2140
 msgid "Score finished in csoundPerformKsmpsInternal().\n"
 msgstr ""
 
-#: Top/csound.c:2086
+#: Top/csound.c:2162
 msgid "Early return from csoundPerformBuffer().\n"
 msgstr ""
 
-#: Top/csound.c:2124
+#: Top/csound.c:2200
 msgid "Early return from csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2132
+#: Top/csound.c:2208
 msgid "Score finished in csoundPerform().\n"
 msgstr ""
 
-#: Top/csound.c:2143
+#: Top/csound.c:2219
 msgid "csoundPerform(): stopped.\n"
 msgstr ""
 
-#: Top/csound.c:2444
+#: Top/csound.c:2520
 msgid "WARNING: "
 msgstr ""
 
-#: Top/csound.c:2585
+#: Top/csound.c:2657
 msgid "rtdummy: failed to allocate globals"
 msgstr ""
 
-#: Top/csound.c:2586
+#: Top/csound.c:2658
 msgid "rtaudio: dummy module enabled\n"
 msgstr ""
 
-#: Top/csound.c:2615 Top/csound.c:2652
+#: Top/csound.c:2687 Top/csound.c:2724
 msgid " *** error: rtaudio module set to empty string"
 msgstr ""
 
-#: Top/csound.c:2619 Top/csound.c:2656
+#: Top/csound.c:2691 Top/csound.c:2728
 #, c-format
 msgid " unknown rtaudio module: '%s', using dummy module"
 msgstr ""
 
-#: Top/csound.c:2773
+#: Top/csound.c:2845
 msgid "WARNING: real time midi input disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2778 Top/csound.c:2812
+#: Top/csound.c:2850 Top/csound.c:2884
 msgid "error: -+rtmidi set to empty string"
 msgstr ""
 
-#: Top/csound.c:2781 Top/csound.c:2815
+#: Top/csound.c:2853 Top/csound.c:2887
 #, c-format
 msgid "error: -+rtmidi='%s': unknown module"
 msgstr ""
 
-#: Top/csound.c:2807
+#: Top/csound.c:2879
 msgid "WARNING: real time midi output disabled, using dummy functions\n"
 msgstr ""
 
-#: Top/csound.c:2829
+#: Top/csound.c:2901
 msgid "Unknown MIDI error"
 msgstr ""
 
-#: Top/csound.c:2992
+#: Top/csound.c:3064
 msgid "Failed to allocate new opcode entry."
 msgstr ""
 
-#: Top/csound.c:3014
+#: Top/csound.c:3086
 #, c-format
 msgid "Failed to allocate opcode entry for %s."
 msgstr ""
 
-#: Top/csound.c:3156 Top/main.c:372
+#: Top/csound.c:3228 Top/main.c:374
 msgid "setting dummy interface\n"
 msgstr ""
 
-#: Top/csound.c:3238
+#: Top/csound.c:3310
 msgid "Failed during csoundInitEnv"
 msgstr ""
 
-#: Top/csound.c:3263
+#: Top/csound.c:3335
 msgid "Failed during csoundInitStaticModules"
 msgstr ""
 
-#: Top/csound.c:3279
+#: Top/csound.c:3351
 msgid "Failed during csoundLoadModules"
 msgstr ""
 
-#: Top/csound.c:3320
+#: Top/csound.c:3392
 msgid "Real time audio module name"
 msgstr ""
 
-#: Top/csound.c:3345
+#: Top/csound.c:3417
 msgid "Real time MIDI module name"
 msgstr ""
 
-#: Top/csound.c:3350
+#: Top/csound.c:3422
 msgid "Ignore events (other than tempo changes) in tracks defined by pattern"
 msgstr ""
 
-#: Top/csound.c:3356
+#: Top/csound.c:3428
 msgid "Do not handle special MIDI controllers (sustain pedal etc.)"
 msgstr ""
 
-#: Top/csound.c:3364
+#: Top/csound.c:3436
 msgid "Title tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3370
+#: Top/csound.c:3442
 msgid "Copyright tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3375
+#: Top/csound.c:3447
 msgid "Short Copyright tag in output soundfile"
 msgstr ""
 
-#: Top/csound.c:3381
+#: Top/csound.c:3453
 msgid "Software tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3386
+#: Top/csound.c:3458
 msgid "Artist tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3393
+#: Top/csound.c:3465
 msgid "Comment tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3398
+#: Top/csound.c:3470
 msgid "Date tag in output soundfile (no spaces)"
 msgstr ""
 
-#: Top/csound.c:3408
+#: Top/csound.c:3480
 msgid "Enable message attributes (colors etc.)"
 msgstr ""
 
-#: Top/csound.c:3414
+#: Top/csound.c:3486
 msgid "Start score playback at the specified time, skipping earlier events"
 msgstr ""
 
-#: Top/csound.c:3421
+#: Top/csound.c:3493
 msgid "Ignore <CsOptions> in CSD files (default: no)"
 msgstr ""
 
-#: Top/csound.c:3630
+#: Top/csound.c:3717
 msgid "Cannot open /proc/cpuinfo. Support for RDTSC is not available.\n"
 msgstr ""
 
-#: Top/csound.c:3660
+#: Top/csound.c:3747
 msgid "No valid CPU frequency entry was found in /proc/cpuinfo.\n"
 msgstr ""
 
-#: Top/csound.c:4182
+#: Top/csound.c:4269
 msgid "csoundDestroyMessageBuffer: Message buffer not allocated."
 msgstr ""
 
-#: Top/csound.c:4214
+#: Top/csound.c:4301
 msgid "csound: internal error: message buffer overflow\n"
 msgstr ""
 
-#: Top/main.c:64
+#: Top/main.c:65
 #, c-format
 msgid "WARNING: cannot open csound6rc file %s\n"
 msgstr ""
 
-#: Top/main.c:67
+#: Top/main.c:68
 #, c-format
 msgid "Reading options from $CSOUND6RC: %s \n"
 msgstr ""
 
-#: Top/main.c:76
+#: Top/main.c:77
 msgid "Reading options from $HOME/.csound6rc\n"
 msgstr ""
 
-#: Top/main.c:96
+#: Top/main.c:97
 msgid "Reading options from local directory .csound6rc \n"
 msgstr ""
 
-#: Top/main.c:118
+#: Top/main.c:119 Top/main.c:364
 msgid ""
 "Csound is already started, call csoundReset()\n"
-"before starting again \n"
+"before starting again.\n"
 msgstr ""
 
-#: Top/main.c:147
+#: Top/main.c:148
 msgid "no orchestra name"
 msgstr ""
 
-#: Top/main.c:173 Top/main.c:177
+#: Top/main.c:174 Top/main.c:178
 msgid "Reading CSD failed ... stopping"
 msgstr ""
 
-#: Top/main.c:193
+#: Top/main.c:194
 msgid "error: multiple uses of stdin"
 msgstr ""
 
-#: Top/main.c:197
+#: Top/main.c:198
 msgid "error: multiple uses of stdout"
 msgstr ""
 
-#: Top/main.c:210
+#: Top/main.c:211
 msgid "realtime performance using dummy numeric scorefile\n"
 msgstr ""
 
-#: Top/main.c:233
+#: Top/main.c:234
 #, c-format
 msgid "orchname:  %s\n"
 msgstr ""
 
-#: Top/main.c:238
+#: Top/main.c:239
 #, c-format
-msgid "Failed to open input file - %s\n"
+msgid "main: failed to open input file - %s\n"
 msgstr ""
 
-#: Top/main.c:254
+#: Top/main.c:255
 msgid "cannot compile orchestra"
 msgstr ""
 
-#: Top/main.c:259
+#: Top/main.c:261
 msgid ""
 "cannot compile orchestra.\n"
 "Csound will start with no instruments"
 msgstr ""
 
-#: Top/main.c:274
+#: Top/main.c:276
 msgid "end of orchestra compile"
 msgstr ""
 
-#: Top/main.c:283
+#: Top/main.c:285
 #, c-format
 msgid "using previous %s\n"
 msgstr ""
 
-#: Top/main.c:293
+#: Top/main.c:295
 #, c-format
 msgid "cannot open scorefile %s"
 msgstr ""
 
-#: Top/main.c:295
+#: Top/main.c:297
 msgid "sorting score ...\n"
 msgstr ""
 
-#: Top/main.c:306
+#: Top/main.c:308
 #, c-format
 msgid "cannot open extract file %s"
 msgstr ""
 
-#: Top/main.c:309
+#: Top/main.c:311
 msgid "  ... extracting ...\n"
 msgstr ""
 
-#: Top/main.c:318
+#: Top/main.c:320
 msgid "end of score sort"
 msgstr ""
 
-#: Top/main.c:320
+#: Top/main.c:322
 msgid "Syntax check completed.\n"
 msgstr ""
 
-#: Top/main.c:439 util/dnoise.c:279
+#: Top/main.c:441 util/dnoise.c:279
 #, c-format
 msgid "%s not a recognised SFOUTYP env setting"
 msgstr ""
 
-#: Top/main.c:535
+#: Top/main.c:537
 #, c-format
-msgid "\"Real-time\" performance (engineStatus: %d).\n"
+msgid "Real-time score events (engineStatus: %d).\n"
 msgstr ""
 
-#: Top/main.c:541
+#: Top/main.c:545
 #, c-format
-msgid "\"Non-real-time\" performance (engineStatus: %d).\n"
+msgid "Compiled score (engineStatus: %d).\n"
 msgstr ""
 
 #: Top/new_opts.c:58
@@ -11655,168 +11785,186 @@ msgstr ""
 msgid "Invalid arguments in .csoundrc or -@ file: %s"
 msgstr ""
 
-#: Top/one_file.c:362 Top/one_file.c:859
+#: Top/one_file.c:362 Top/one_file.c:1148
 msgid "Missing end tag </CsOptions>"
 msgstr ""
 
-#: Top/one_file.c:389
+#: Top/one_file.c:430 Top/one_file.c:552
+msgid "missing \" to terminate string"
+msgstr ""
+
+#: Top/one_file.c:455 Top/one_file.c:498
 msgid "Missing end tag </CsInstruments>"
 msgstr ""
 
-#: Top/one_file.c:418 Top/one_file.c:503
+#: Top/one_file.c:568 Top/one_file.c:594 Top/one_file.c:683
 msgid "Missing end tag </CsScore>"
 msgstr ""
 
-#: Top/one_file.c:434 Top/one_file.c:439
+#: Top/one_file.c:614 Top/one_file.c:619
 msgid "Missing program in tag <CsScore>"
 msgstr ""
 
-#: Top/one_file.c:452
+#: Top/one_file.c:632
 #, c-format
 msgid "Creating %s (%p)\n"
 msgstr ""
 
-#: Top/one_file.c:467
+#: Top/one_file.c:647
 msgid "External generation failed"
 msgstr ""
 
-#: Top/one_file.c:469
+#: Top/one_file.c:649
 msgid "and cannot remove"
 msgstr ""
 
-#: Top/one_file.c:474 Top/one_file.c:483
+#: Top/one_file.c:654 Top/one_file.c:663
 #, c-format
 msgid "and cannot remove %s"
 msgstr ""
 
-#: Top/one_file.c:487
+#: Top/one_file.c:667
 #, c-format
 msgid "opened %s\n"
 msgstr ""
 
-#: Top/one_file.c:490
+#: Top/one_file.c:670
 #, c-format
 msgid "closing %s\n"
 msgstr ""
 
-#: Top/one_file.c:493
+#: Top/one_file.c:673
 #, c-format
 msgid "and cannot remove %s\n"
 msgstr ""
 
-#: Top/one_file.c:542
+#: Top/one_file.c:723 Top/one_file.c:780
 #, c-format
 msgid "Non base64 character %c(%2x)"
 msgstr ""
 
-#: Top/one_file.c:561
+#: Top/one_file.c:742 Top/one_file.c:799
 msgid "Truncated byte at end of base64 stream"
 msgstr ""
 
-#: Top/one_file.c:578
+#: Top/one_file.c:817
 #, c-format
 msgid "Cannot open temporary file (%s) for MIDI subfile"
 msgstr ""
 
-#: Top/one_file.c:595
+#: Top/one_file.c:834
 msgid "Missing end tag </CsMidifileB>"
 msgstr ""
 
-#: Top/one_file.c:611 Top/one_file.c:659 Top/one_file.c:705
+#: Top/one_file.c:850 Top/one_file.c:898 Top/one_file.c:986
 #, c-format
 msgid "File %s already exists"
 msgstr ""
 
-#: Top/one_file.c:616
+#: Top/one_file.c:855
 #, c-format
 msgid "Cannot open sample file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:630
+#: Top/one_file.c:869
 msgid "Missing end tag </CsSampleB>"
 msgstr ""
 
-#: Top/one_file.c:664 Top/one_file.c:710
+#: Top/one_file.c:903 Top/one_file.c:991
 #, c-format
 msgid "Cannot open file (%s) subfile"
 msgstr ""
 
-#: Top/one_file.c:679
+#: Top/one_file.c:918
 msgid "Missing end tag </CsFileB>"
 msgstr ""
 
-#: Top/one_file.c:721
+#: Top/one_file.c:959
+msgid "Missing end tag </CsFileC>"
+msgstr ""
+
+#: Top/one_file.c:1002
 msgid "Missing end tag </CsFile>"
 msgstr ""
 
-#: Top/one_file.c:743
+#: Top/one_file.c:1024
 #, c-format
 msgid "This CSD file requires a version of Csound before %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:751 Top/one_file.c:758
+#: Top/one_file.c:1032
 #, c-format
 msgid "This CSD file requires a version of Csound after %d.%02d"
 msgstr ""
 
-#: Top/one_file.c:764
+#: Top/one_file.c:1040
+#, c-format
+msgid "This CSD file requires version Csound %d.%02d or later"
+msgstr ""
+
+#: Top/one_file.c:1047
+#, c-format
+msgid "This CSD file requires version %d.%02d of Csound"
+msgstr ""
+
+#: Top/one_file.c:1053
 msgid "Missing end tag </CsVersion>"
 msgstr ""
 
-#: Top/one_file.c:774 Top/one_file.c:800
+#: Top/one_file.c:1063 Top/one_file.c:1089
 msgid "**** Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:780
+#: Top/one_file.c:1069
 msgid "**** End of Licence Information ****\n"
 msgstr ""
 
-#: Top/one_file.c:791
+#: Top/one_file.c:1080
 msgid "Missing end tag </CsLicence>"
 msgstr ""
 
-#: Top/one_file.c:809
+#: Top/one_file.c:1098
 msgid "Missing end tag </CsShortLicence>"
 msgstr ""
 
-#: Top/one_file.c:833
+#: Top/one_file.c:1122
 msgid "STARTING FILE\n"
 msgstr ""
 
-#: Top/one_file.c:849
+#: Top/one_file.c:1138
 msgid "Creating options\n"
 msgstr ""
 
-#: Top/one_file.c:855
+#: Top/one_file.c:1144
 msgid "Skipping <CsOptions>\n"
 msgstr ""
 
-#: Top/one_file.c:869
+#: Top/one_file.c:1158
 msgid "Creating orchestra\n"
 msgstr ""
 
-#: Top/one_file.c:874
+#: Top/one_file.c:1163
 msgid "Creating score\n"
 msgstr ""
 
-#: Top/one_file.c:887
+#: Top/one_file.c:1176
 msgid "Skipping <CsMidifileB>\n"
 msgstr ""
 
-#: Top/one_file.c:891
+#: Top/one_file.c:1180
 msgid "Missing end tag </CsMidiFileB>"
 msgstr ""
 
-#: Top/one_file.c:910
+#: Top/one_file.c:1205
 msgid "CsFile is deprecated and may not work; use CsFileB\n"
 msgstr ""
 
-#: Top/one_file.c:930
+#: Top/one_file.c:1225
 #, c-format
 msgid "unknown CSD tag: %s\n"
 msgstr ""
 
-#: Top/one_file.c:935
+#: Top/one_file.c:1230
 msgid "Could not find <CsoundSynthesizer> tag in CSD file.\n"
 msgstr ""
 
@@ -11829,26 +11977,74 @@ msgstr ""
 msgid "%d opcodes\n"
 msgstr ""
 
-#: Top/threads.c:792
+#: Top/server.c:57
+#, c-format
+msgid "UDP: Winsock2 failed to start: %d"
+msgstr ""
+
+#: Top/server.c:62
+msgid "UDP: error creating socket"
+msgstr ""
+
+#: Top/server.c:67 Top/server.c:76 Top/server.c:240 Top/server.c:249
+msgid "UDP Server: Cannot set nonblock"
+msgstr ""
+
+#: Top/server.c:95
+msgid "UDP: sock end failed"
+msgstr ""
+
+#: Top/server.c:112
+#, c-format
+msgid "UDP server started on port %d \n"
+msgstr ""
+
+#: Top/server.c:184
+#, c-format
+msgid "could not retrieve channel %s"
+msgstr ""
+
+#: Top/server.c:213
+#, c-format
+msgid "UDP server on port %d stopped\n"
+msgstr ""
+
+#: Top/server.c:256
+msgid "error creating socket"
+msgstr ""
+
+#: Top/server.c:310
+msgid "UDP Server: already running"
+msgstr ""
+
+#: Top/server.c:316
+msgid "UDP Server: could not start"
+msgstr ""
+
+#: Top/server.c:324
+msgid "UDP Server: failed to allocate memory"
+msgstr ""
+
+#: Top/threads.c:40
 #, c-format
 msgid "%s() is not implemented on this platform.\n"
 msgstr ""
 
-#: Top/utility.c:100
+#: Top/utility.c:101
 #, c-format
 msgid "util %s:\n"
 msgstr ""
 
-#: Top/utility.c:107
+#: Top/utility.c:108
 #, c-format
 msgid "Error: utility '%s' not found"
 msgstr ""
 
-#: Top/utility.c:110
+#: Top/utility.c:111
 msgid "Error: utility not found"
 msgstr ""
 
-#: Top/utility.c:114
+#: Top/utility.c:115
 msgid "The available utilities are:\n"
 msgstr ""
 
@@ -11863,8 +12059,8 @@ msgstr ""
 msgid "saving ATS data..."
 msgstr ""
 
-#: util/atsa.c:546 util/atsa.c:2363 util/atsa.c:2377 util/atsa.c:2399
-#: util/atsa.c:2579 util/atsa.c:2642 util/atsa.c:2730
+#: util/atsa.c:546 util/atsa.c:2369 util/atsa.c:2383 util/atsa.c:2405
+#: util/atsa.c:2586 util/atsa.c:2649 util/atsa.c:2737
 msgid "done!\n"
 msgstr ""
 
@@ -11989,170 +12185,170 @@ msgid ""
 "ERROR: cannot open file %s for writing\n"
 msgstr ""
 
-#: util/atsa.c:1921
+#: util/atsa.c:1923
 msgid "Error: sound not optimised !"
 msgstr ""
 
-#: util/atsa.c:1949 util/atsa.c:1954 util/atsa.c:1965 util/atsa.c:1968
-#: util/atsa.c:1972 util/atsa.c:1981 util/cvanal.c:232 util/hetro.c:626
-#: util/hetro.c:715 util/hetro.c:736
+#: util/atsa.c:1951 util/atsa.c:1956 util/atsa.c:1967 util/atsa.c:1970
+#: util/atsa.c:1974 util/atsa.c:1983 util/cvanal.c:241 util/hetro.c:627
+#: util/hetro.c:716 util/hetro.c:737
 msgid "Write failure\n"
 msgstr ""
 
-#: util/atsa.c:2022
+#: util/atsa.c:2024
 #, c-format
 msgid "atsa: cannot open input file '%s'"
 msgstr ""
 
-#: util/atsa.c:2029
+#: util/atsa.c:2031
 #, c-format
 msgid "atsa: file has %d channels, must be mono !"
 msgstr ""
 
-#: util/atsa.c:2034
+#: util/atsa.c:2036
 msgid "tracking...\n"
 msgstr ""
 
-#: util/atsa.c:2043
+#: util/atsa.c:2045
 #, c-format
 msgid "start %f out of bounds, corrected to 0.0"
 msgstr ""
 
-#: util/atsa.c:2053
+#: util/atsa.c:2055
 #, c-format
 msgid "duration %f out of bounds, limited to file duration"
 msgstr ""
 
-#: util/atsa.c:2059
+#: util/atsa.c:2061
 #, c-format
 msgid "start: %f duration: %f file dur: %f\n"
 msgstr ""
 
-#: util/atsa.c:2066
+#: util/atsa.c:2068
 #, c-format
 msgid "lowest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2076
+#: util/atsa.c:2078
 #, c-format
 msgid "highest freq. %f out of bounds, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2083
+#: util/atsa.c:2085
 #, c-format
 msgid ""
 "freq. dev. %f out of bounds, should be > 0.0 and <= 1.0, forced to default: "
 "%f"
 msgstr ""
 
-#: util/atsa.c:2091
+#: util/atsa.c:2093
 #, c-format
 msgid ""
 "windows cycles %d out of bounds, should be between 1 and 8, forced to "
 "default: %d"
 msgstr ""
 
-#: util/atsa.c:2099
+#: util/atsa.c:2101
 #, c-format
 msgid ""
 "window type %d out of bounds, should be between 0 and 3, forced to default: "
 "%d"
 msgstr ""
 
-#: util/atsa.c:2107
+#: util/atsa.c:2109
 #, c-format
 msgid ""
 "hop size %f out of bounds, should be > 0.0 and <= 1.0, forced to default: %f"
 msgstr ""
 
-#: util/atsa.c:2115
+#: util/atsa.c:2117
 #, c-format
 msgid ""
 "lowest magnitude %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2139
+#: util/atsa.c:2141
 #, c-format
 msgid "atsa: %d frames are not enough for analysis, need at least %d"
 msgstr ""
 
-#: util/atsa.c:2148
+#: util/atsa.c:2150
 #, c-format
 msgid "track length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2157
+#: util/atsa.c:2160
 #, c-format
 msgid "min. segment length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2166
+#: util/atsa.c:2170
 #, c-format
 msgid "min. gap length %d out of bounds, forced to: %d"
 msgstr ""
 
-#: util/atsa.c:2172
+#: util/atsa.c:2177
 #, c-format
 msgid ""
 "SMR threshold %f out of bounds, should be >= 0.0 and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2183
+#: util/atsa.c:2188
 #, c-format
 msgid ""
 "min. seg. SMR %f out of bounds, should be >= %f and < %f dB SPL, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2191
+#: util/atsa.c:2197
 #, c-format
 msgid ""
 "last peak contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced "
 "to default: %f"
 msgstr ""
 
-#: util/atsa.c:2199
+#: util/atsa.c:2205
 #, c-format
 msgid ""
 "SMR contribution %f out of bounds, should be >= 0.0 and <= 1.0, forced to "
 "default: %f"
 msgstr ""
 
-#: util/atsa.c:2344
+#: util/atsa.c:2350
 msgid "Initializing ATS data..."
 msgstr ""
 
-#: util/atsa.c:2374
+#: util/atsa.c:2380
 msgid "Computing residual..."
 msgstr ""
 
-#: util/atsa.c:2393 util/atsa.c:2396
+#: util/atsa.c:2399 util/atsa.c:2402
 msgid "Analysing residual..."
 msgstr ""
 
-#: util/atsa.c:2401
+#: util/atsa.c:2407
 msgid "tracking completed.\n"
 msgstr ""
 
-#: util/atsa.c:2509
+#: util/atsa.c:2516
 msgid "Filling sound gaps..."
 msgstr ""
 
-#: util/atsa.c:2597
+#: util/atsa.c:2604
 msgid "Trimming short partials..."
 msgstr ""
 
-#: util/atsa.c:2693
+#: util/atsa.c:2700
 msgid "Computing averages..."
 msgstr ""
 
-#: util/atsa.c:2744
+#: util/atsa.c:2751
 msgid "No partials to track -- stopping\n"
 msgstr ""
 
-#: util/atsa.c:2844
+#: util/atsa.c:2851
 msgid "Soundfile analysis for ATS opcodes"
 msgstr ""
 
@@ -12180,48 +12376,48 @@ msgstr ""
 msgid "unrecognised switch option"
 msgstr ""
 
-#: util/cvanal.c:111 util/pvanal.c:246
+#: util/cvanal.c:112 util/pvanal.c:246
 msgid "illegal number of filenames"
 msgstr ""
 
-#: util/cvanal.c:117 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
+#: util/cvanal.c:118 util/dnoise.c:460 util/lpanal.c:534 util/pvanal.c:255
 #: util/srconv.c:355
 #, c-format
 msgid "error while opening %s"
 msgstr ""
 
-#: util/cvanal.c:133
+#: util/cvanal.c:134
 msgid "cvanal: Error allocating header\n"
 msgstr ""
 
-#: util/cvanal.c:141 util/cvanal.c:161 util/lpanal.c:542 util/lpanal.c:546
+#: util/cvanal.c:142 util/cvanal.c:170 util/lpanal.c:542 util/lpanal.c:546
 msgid "cannot create output file"
 msgstr ""
 
-#: util/cvanal.c:164 util/lpanal.c:573
+#: util/cvanal.c:173 util/lpanal.c:573
 msgid "cannot write header"
 msgstr ""
 
-#: util/cvanal.c:168
+#: util/cvanal.c:177
 msgid "cvanal finished\n"
 msgstr ""
 
-#: util/cvanal.c:174
+#: util/cvanal.c:183
 #, c-format
 msgid "cvanal error: %s\n"
 msgstr ""
 
-#: util/cvanal.c:175
+#: util/cvanal.c:184
 msgid ""
 "Usage: cvanal [-d<duration>] [-c<channel>] [-b<begin time>] [-X] <input "
 "soundfile> <output impulse response FFT file> \n"
 msgstr ""
 
-#: util/cvanal.c:194
+#: util/cvanal.c:203
 msgid "less sound than expected!\n"
 msgstr ""
 
-#: util/cvanal.c:283
+#: util/cvanal.c:292
 msgid "Soundfile analysis for convolve"
 msgstr ""
 
@@ -12356,125 +12552,125 @@ msgstr ""
 msgid "writing %u-byte blks of %s to %s"
 msgstr ""
 
-#: util/dnoise.c:638 util/dnoise.c:677 util/dnoise.c:732 util/dnoise.c:743
-#: util/dnoise.c:747 util/dnoise.c:754 util/dnoise.c:764 util/dnoise.c:769
-#: util/dnoise.c:773 util/dnoise.c:777 util/dnoise.c:781
+#: util/dnoise.c:639 util/dnoise.c:679 util/dnoise.c:736 util/dnoise.c:748
+#: util/dnoise.c:753 util/dnoise.c:761 util/dnoise.c:772 util/dnoise.c:778
+#: util/dnoise.c:783 util/dnoise.c:788 util/dnoise.c:793
 msgid "dnoise: insufficient memory\n"
 msgstr ""
 
-#: util/dnoise.c:792 util/dnoise.c:803
+#: util/dnoise.c:804 util/dnoise.c:815
 msgid "dnoise: begin time is greater than EOF of noise file!"
 msgstr ""
 
-#: util/dnoise.c:836
+#: util/dnoise.c:848
 msgid "dnoise: not enough samples of noise reference\n"
 msgstr ""
 
-#: util/dnoise.c:1140
+#: util/dnoise.c:1152
 #, c-format
 msgid "%5.1f seconds of input complete\n"
 msgstr ""
 
-#: util/dnoise.c:1159
+#: util/dnoise.c:1171
 msgid "processing complete\n"
 msgstr ""
 
-#: util/dnoise.c:1169
+#: util/dnoise.c:1181
 msgid "usage: dnoise [flags] input_file"
 msgstr ""
 
-#: util/dnoise.c:1171
+#: util/dnoise.c:1183
 msgid "flags:"
 msgstr ""
 
-#: util/dnoise.c:1172
+#: util/dnoise.c:1184
 msgid "i = noise reference soundfile"
 msgstr ""
 
-#: util/dnoise.c:1173
+#: util/dnoise.c:1185
 msgid "o = output file"
 msgstr ""
 
-#: util/dnoise.c:1174
+#: util/dnoise.c:1186
 msgid "N = # of bandpass filters (1024)"
 msgstr ""
 
-#: util/dnoise.c:1175
+#: util/dnoise.c:1187
 msgid "w = filter overlap factor: {0,1,(2),3} DO NOT USE -w AND -M"
 msgstr ""
 
-#: util/dnoise.c:1176
+#: util/dnoise.c:1188
 msgid "M = analysis window length (N-1 unless -w is specified)"
 msgstr ""
 
-#: util/dnoise.c:1177
+#: util/dnoise.c:1189
 msgid "L = synthesis window length (M)"
 msgstr ""
 
-#: util/dnoise.c:1178
+#: util/dnoise.c:1190
 msgid "D = decimation factor (M/8)"
 msgstr ""
 
-#: util/dnoise.c:1179
+#: util/dnoise.c:1191
 msgid "b = begin time in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1180
+#: util/dnoise.c:1192
 msgid "B = starting sample in noise reference soundfile (0)"
 msgstr ""
 
-#: util/dnoise.c:1181
+#: util/dnoise.c:1193
 msgid "e = end time in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1182
+#: util/dnoise.c:1194
 msgid "E = final sample in noise reference soundfile (end)"
 msgstr ""
 
-#: util/dnoise.c:1183
+#: util/dnoise.c:1195
 msgid "t = threshold above noise reference in dB (30)"
 msgstr ""
 
-#: util/dnoise.c:1184
+#: util/dnoise.c:1196
 msgid "S = sharpness of noise-gate turnoff (1) (1 to 5)"
 msgstr ""
 
-#: util/dnoise.c:1185
+#: util/dnoise.c:1197
 msgid "n = number of FFT frames to average over (5)"
 msgstr ""
 
-#: util/dnoise.c:1186
+#: util/dnoise.c:1198
 msgid "m = minimum gain of noise-gate when off in dB (-40)"
 msgstr ""
 
-#: util/dnoise.c:1187
+#: util/dnoise.c:1199
 msgid "V : verbose - print status info"
 msgstr ""
 
-#: util/dnoise.c:1188
+#: util/dnoise.c:1200
 msgid "A : AIFF format output"
 msgstr ""
 
-#: util/dnoise.c:1189
+#: util/dnoise.c:1201
 msgid "W : WAV format output"
 msgstr ""
 
-#: util/dnoise.c:1190
+#: util/dnoise.c:1202
 msgid "J : IRCAM format output"
 msgstr ""
 
-#: util/dnoise.c:1209
+#: util/dnoise.c:1221
 #, c-format
 msgid "soundfile write returned sample count of %d, not %d\n"
 msgstr ""
 
-#: util/dnoise.c:1211
+#: util/dnoise.c:1223
 msgid ""
 "(disk may be full...\n"
 " closing the file ...)\n"
 msgstr ""
 
-#: util/dnoise.c:1279
+#: util/dnoise.c:1291
 msgid "Removes noise from a sound file"
 msgstr ""
 
@@ -12482,7 +12678,7 @@ msgstr ""
 msgid "Usage:\tenvext [-flags] soundfile\n"
 msgstr ""
 
-#: util/envext.c:54 util/srconv.c:773
+#: util/envext.c:54 util/srconv.c:776
 msgid "-o fnam\tsound output filename\n"
 msgstr ""
 
@@ -12618,87 +12814,87 @@ msgstr ""
 msgid "input and begin times cannot be less than zero"
 msgstr ""
 
-#: util/hetro.c:271
+#: util/hetro.c:272
 #, c-format
 msgid "Read error on %s\n"
 msgstr ""
 
-#: util/hetro.c:281 util/hetro.c:287
+#: util/hetro.c:282 util/hetro.c:288
 msgid "number of output points is too great"
 msgstr ""
 
-#: util/hetro.c:343
+#: util/hetro.c:344
 #, c-format
 msgid "analyzing harmonic #%d\n"
 msgstr ""
 
-#: util/hetro.c:344
+#: util/hetro.c:345
 #, c-format
 msgid "freq estimate %6.1f,"
 msgstr ""
 
-#: util/hetro.c:349
+#: util/hetro.c:350
 #, c-format
 msgid " max found %6.1f, rel amp %6.1f\n"
 msgstr ""
 
-#: util/hetro.c:357
+#: util/hetro.c:358
 msgid "Unable to write to SDIF file\n"
 msgstr ""
 
-#: util/hetro.c:580
+#: util/hetro.c:581
 #, c-format
 msgid ""
 "hetro:  %s\n"
 "\tanalysis aborted"
 msgstr ""
 
-#: util/hetro.c:616 util/hetro.c:620
+#: util/hetro.c:617 util/hetro.c:621
 msgid "cannot create output file\n"
 msgstr ""
 
-#: util/hetro.c:636
+#: util/hetro.c:637
 #, c-format
 msgid "scale = %f\n"
 msgstr ""
 
-#: util/hetro.c:748
+#: util/hetro.c:749
 #, c-format
 msgid "harmonic #%d:\tamp points %d, \tfrq points %d,\tpeakamp %d\n"
 msgstr ""
 
-#: util/hetro.c:752
+#: util/hetro.c:753
 #, c-format
 msgid "wrote %ld bytes to %s\n"
 msgstr ""
 
-#: util/hetro.c:784
+#: util/hetro.c:785
 msgid "OOPS: SDIF does not work on this machine!\n"
 msgstr ""
 
-#: util/hetro.c:810
+#: util/hetro.c:812
 #, c-format
 msgid "Error creating %s\n"
 msgstr ""
 
-#: util/hetro.c:838
+#: util/hetro.c:840
 msgid "Error writing SDIF frame header.\n"
 msgstr ""
 
-#: util/hetro.c:847
+#: util/hetro.c:849
 msgid "Error writing SDIF matrix header.\n"
 msgstr ""
 
-#: util/hetro.c:860
+#: util/hetro.c:862
 msgid "Error writing SDIF data.\n"
 msgstr ""
 
-#: util/hetro.c:867
+#: util/hetro.c:869
 #, c-format
 msgid "wrote %d 1TRC frames to %s\n"
 msgstr ""
 
-#: util/hetro.c:895
+#: util/hetro.c:897
 msgid "Soundfile analysis for adsyn"
 msgstr ""
 
@@ -12781,120 +12977,120 @@ msgstr ""
 msgid "Using filter coefficient storage method\n"
 msgstr ""
 
-#: util/lpanal.c:585
+#: util/lpanal.c:586
 msgid "soundfile read error, could not fill first frame"
 msgstr ""
 
-#: util/lpanal.c:618
+#: util/lpanal.c:619
 msgid "Starting new frame...\n"
 msgstr ""
 
-#: util/lpanal.c:661
+#: util/lpanal.c:662
 #, c-format
 msgid "Found only %d poles...sorry\n"
 msgstr ""
 
-#: util/lpanal.c:663
+#: util/lpanal.c:664
 #, c-format
 msgid "wanted %d poles\n"
 msgstr ""
 
-#: util/lpanal.c:684
+#: util/lpanal.c:685
 #, c-format
 msgid "Error in coef %d : %f <> %f \n"
 msgstr ""
 
-#: util/lpanal.c:737
+#: util/lpanal.c:738
 msgid "write error"
 msgstr ""
 
-#: util/lpanal.c:755
+#: util/lpanal.c:756
 #, c-format
 msgid "%d lpc frames written to %s\n"
 msgstr ""
 
-#: util/lpanal.c:774
+#: util/lpanal.c:775
 msgid "analysis aborted"
 msgstr ""
 
-#: util/lpanal.c:944
+#: util/lpanal.c:945
 msgid "USAGE:\tlpanal [flags] infilename outfilename"
 msgstr ""
 
-#: util/lpanal.c:945
+#: util/lpanal.c:946
 msgid "\twhere flag options are:"
 msgstr ""
 
-#: util/lpanal.c:946
+#: util/lpanal.c:947
 msgid "-s<srate>\tinput sample rate (defaults to header else 44100)"
 msgstr ""
 
-#: util/lpanal.c:947
+#: util/lpanal.c:948
 msgid "-c<chnlreq>\trequested channel of sound (default chan 1)"
 msgstr ""
 
-#: util/lpanal.c:948
+#: util/lpanal.c:949
 msgid "-b<begin>\tbegin time in seconds into soundfile (default 0.0)"
 msgstr ""
 
-#: util/lpanal.c:949
+#: util/lpanal.c:950
 msgid "-d<duration>\tseconds of sound to be analysed (default: to EOF)"
 msgstr ""
 
-#: util/lpanal.c:950
+#: util/lpanal.c:951
 msgid "-p<npoles>\tnumber of poles for analysis (default 34)"
 msgstr ""
 
-#: util/lpanal.c:951
+#: util/lpanal.c:952
 msgid "-h<hopsize>\toffset between frames in samples (default 200)"
 msgstr ""
 
-#: util/lpanal.c:952
+#: util/lpanal.c:953
 msgid "\t\t\t(framesize will be twice <hopsize>)"
 msgstr ""
 
-#: util/lpanal.c:953
+#: util/lpanal.c:954
 msgid "-C<string>\tcomment field of lp header (default empty)"
 msgstr ""
 
-#: util/lpanal.c:954
+#: util/lpanal.c:955
 msgid "-P<mincps>\tlower limit for pitch search (default 70 Hz)"
 msgstr ""
 
-#: util/lpanal.c:955
+#: util/lpanal.c:956
 msgid "\t\t\t(-P0 inhibits pitch tracking)"
 msgstr ""
 
-#: util/lpanal.c:956
+#: util/lpanal.c:957
 msgid "-Q<maxcps>\tupper limit for pitch search (default 200 Hz)"
 msgstr ""
 
-#: util/lpanal.c:957
+#: util/lpanal.c:958
 msgid ""
 "-v<verblevel>\tprinting verbosity: 0=none, 1=verbose, 2=debug (default 0)"
 msgstr ""
 
-#: util/lpanal.c:959
+#: util/lpanal.c:960
 msgid "-g\tgraphical display of results"
 msgstr ""
 
-#: util/lpanal.c:960
+#: util/lpanal.c:961
 msgid "-a\t\talternate (pole) file storage"
 msgstr ""
 
-#: util/lpanal.c:961 util/mixer.c:116
+#: util/lpanal.c:962 util/mixer.c:116
 msgid "-- fname\tLog output to file"
 msgstr ""
 
-#: util/lpanal.c:962
+#: util/lpanal.c:963
 msgid "see also:  Csound Manual Appendix"
 msgstr ""
 
-#: util/lpanal.c:1226
+#: util/lpanal.c:1227
 msgid "LPTRKFNS: called with excessive Windsiz"
 msgstr ""
 
-#: util/lpanal.c:1254
+#: util/lpanal.c:1255
 msgid "Linear predictive analysis for lpread"
 msgstr ""
 
@@ -12906,13 +13102,13 @@ msgstr ""
 msgid "Failed to read LPC header\n"
 msgstr ""
 
-#: util/lpc_export.c:91 util/lpc_export.c:100 util/lpc_import.c:92
+#: util/lpc_export.c:93 util/lpc_export.c:102 util/lpc_import.c:92
 #: util/lpc_import.c:100 util/lpcx_main.c:90 util/lpcx_main.c:104
 #: util/srconv.c:384
 msgid "Read failure\n"
 msgstr ""
 
-#: util/lpc_export.c:118
+#: util/lpc_export.c:120
 msgid "translate linear predictive coding file to text file"
 msgstr ""
 
@@ -12949,10 +13145,62 @@ msgstr ""
 msgid "Legal flags are:"
 msgstr ""
 
-#: util/mixer.c:107 util/scale.c:60 util/srconv.c:788
+#: util/mixer.c:94 util/scale.c:45
+msgid "-o fnam\tsound output filename"
+msgstr ""
+
+#: util/mixer.c:95 util/scale.c:46 util/srconv.c:777
+msgid "-A\tcreate an AIFF format output soundfile"
+msgstr ""
+
+#: util/mixer.c:96 util/scale.c:47 util/srconv.c:779
+msgid "-W\tcreate a WAV format output soundfile"
+msgstr ""
+
+#: util/mixer.c:97 util/scale.c:48 util/srconv.c:780
+msgid "-h\tno header on output soundfile"
+msgstr ""
+
+#: util/mixer.c:98 util/mixer.c:100 util/srconv.c:783
+msgid "-8\t8-bit unsigned_char sound samples"
+msgstr ""
+
+#: util/mixer.c:99 util/scale.c:49 util/srconv.c:781
+msgid "-c\t8-bit signed_char sound samples"
+msgstr ""
+
+#: util/mixer.c:101 util/scale.c:50 util/srconv.c:782
+msgid "-a\talaw sound samples"
+msgstr ""
+
+#: util/mixer.c:102 util/scale.c:51 util/srconv.c:784
+msgid "-u\tulaw sound samples"
+msgstr ""
+
+#: util/mixer.c:103 util/scale.c:52 util/srconv.c:785
+msgid "-s\tshort_int sound samples"
+msgstr ""
+
+#: util/mixer.c:104 util/scale.c:53 util/srconv.c:786
+msgid "-l\tlong_int sound samples"
+msgstr ""
+
+#: util/mixer.c:105 util/scale.c:54 util/srconv.c:787
+msgid "-f\tfloat sound samples"
+msgstr ""
+
+#: util/mixer.c:106 util/scale.c:59 util/srconv.c:790
+msgid "-R\tcontinually rewrite header while writing soundfile (WAV/AIFF)"
+msgstr ""
+
+#: util/mixer.c:107 util/scale.c:60 util/srconv.c:791
 msgid "-H#\tprint a heartbeat style 1, 2 or 3 at each soundfile write"
 msgstr ""
 
+#: util/mixer.c:108 util/scale.c:61 util/srconv.c:792
+msgid "-N\tnotify (ring the bell) when score or miditrack is done"
+msgstr ""
+
 #: util/mixer.c:109
 msgid "-F fpnum\tamount to scale amplitude for next input"
 msgstr ""
@@ -13046,47 +13294,47 @@ msgstr ""
 msgid "Input formats not the same"
 msgstr ""
 
-#: util/mixer.c:408
+#: util/mixer.c:409
 #, c-format
 msgid "mixer: error opening output file '%s'"
 msgstr ""
 
-#: util/mixer.c:418
+#: util/mixer.c:419
 #, c-format
 msgid "writing %d-byte blks of %s to %s (%s)\n"
 msgstr ""
 
-#: util/mixer.c:440
+#: util/mixer.c:441
 #, c-format
 msgid "Cannot open scale table file %s"
 msgstr ""
 
-#: util/mixer.c:537
+#: util/mixer.c:538
 #, c-format
 msgid "mixing %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/mixer.c:647
+#: util/mixer.c:648
 #, c-format
 msgid "Max val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:651
+#: util/mixer.c:652
 #, c-format
 msgid "Min val %d at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/mixer.c:656
+#: util/mixer.c:657
 #, c-format
 msgid "%d sample%s out of range\n"
 msgstr ""
 
-#: util/mixer.c:659 util/scale.c:458 util/scale.c:504
+#: util/mixer.c:660 util/scale.c:459 util/scale.c:505
 #, c-format
 msgid "Max scale factor = %.3f\n"
 msgstr ""
 
-#: util/mixer.c:670
+#: util/mixer.c:671
 #, c-format
 msgid "Mixes sound files (max. %d)"
 msgstr ""
@@ -13299,7 +13547,7 @@ msgstr ""
 msgid " -i     prints values as integers [defaults to floating point]"
 msgstr ""
 
-#: util/pvlook.c:122
+#: util/pvlook.c:123
 #, c-format
 msgid ""
 "pvlook: Unable to open '%s'\n"
@@ -13326,7 +13574,7 @@ msgstr ""
 msgid "-P fpnum\tscale file to given percentage of full"
 msgstr ""
 
-#: util/scale.c:62 util/srconv.c:790
+#: util/scale.c:62 util/srconv.c:793
 msgid "-- fnam\tlog output to file"
 msgstr ""
 
@@ -13342,37 +13590,37 @@ msgstr ""
 msgid "No maximum"
 msgstr ""
 
-#: util/scale.c:297 util/xtrct.c:306
+#: util/scale.c:298 util/xtrct.c:306
 #, c-format
 msgid "Failed to open output file %s"
 msgstr ""
 
-#: util/scale.c:300
+#: util/scale.c:301
 #, c-format
 msgid "writing %d-byte blks of %s to %s %s\n"
 msgstr ""
 
-#: util/scale.c:330
+#: util/scale.c:331
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: util/scale.c:406
+#: util/scale.c:407
 #, c-format
 msgid "scaling %ld sample frames (%3.1f secs)\n"
 msgstr ""
 
-#: util/scale.c:450 util/scale.c:496
+#: util/scale.c:451 util/scale.c:497
 #, c-format
 msgid "Max val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:454 util/scale.c:500
+#: util/scale.c:455 util/scale.c:501
 #, c-format
 msgid "Min val %.3f at index %ld (time %.4f, chan %d) %d times\n"
 msgstr ""
 
-#: util/scale.c:519
+#: util/scale.c:520
 msgid "Reports and/or adjusts maximum gain"
 msgstr ""
 
@@ -13535,35 +13783,47 @@ msgstr ""
 msgid "libsndfile error: %s\n"
 msgstr ""
 
-#: util/srconv.c:760
+#: util/srconv.c:763
 msgid "Do not use srconv but the src_conv program\n"
 msgstr ""
 
-#: util/srconv.c:767
+#: util/srconv.c:770
 msgid ""
 "usage: srconv [flags] infile\n"
 "\n"
 "flags:"
 msgstr ""
 
-#: util/srconv.c:768
+#: util/srconv.c:771
 msgid ""
 "-P num\tpitch transposition ratio (srate/r) [do not specify both P and r]"
 msgstr ""
 
-#: util/srconv.c:770
+#: util/srconv.c:773
 msgid "-Q num\tquality factor (1 to 8: default = 2)"
 msgstr ""
 
-#: util/srconv.c:771
+#: util/srconv.c:774
 msgid "-i filnam\tbreak file"
 msgstr ""
 
-#: util/srconv.c:772
+#: util/srconv.c:775
 msgid "-r num\toutput sample rate (must be specified)"
 msgstr ""
 
-#: util/srconv.c:857
+#: util/srconv.c:778
+msgid "-J\tcreate an IRCAM format output soundfile"
+msgstr ""
+
+#: util/srconv.c:788
+msgid "-r N\torchestra srate override"
+msgstr ""
+
+#: util/srconv.c:789
+msgid "-K\tDo not generate PEAK chunks"
+msgstr ""
+
+#: util/srconv.c:860
 msgid "Sample rate conversion"
 msgstr ""
 
@@ -13737,112 +13997,112 @@ msgstr ""
 msgid "Must be \"on\" or \"off\""
 msgstr ""
 
-#: util1/scot/scot.c:170
+#: util1/scot/scot.c:171
 msgid "Invalid time signature"
 msgstr ""
 
-#: util1/scot/scot.c:207
+#: util1/scot/scot.c:208
 msgid "Bad key signature"
 msgstr ""
 
-#: util1/scot/scot.c:242 util1/scot/scot.c:248
+#: util1/scot/scot.c:243 util1/scot/scot.c:249
 msgid "Invalid field"
 msgstr ""
 
-#: util1/scot/scot.c:259 util1/scot/scot.c:263
+#: util1/scot/scot.c:260 util1/scot/scot.c:264
 msgid "Nested next-parameter passing"
 msgstr ""
 
-#: util1/scot/scot.c:273
+#: util1/scot/scot.c:274
 msgid "Unrecognised keyword"
 msgstr ""
 
-#: util1/scot/scot.c:322
+#: util1/scot/scot.c:323
 msgid "Wrong number of beats in bar"
 msgstr ""
 
-#: util1/scot/scot.c:330
+#: util1/scot/scot.c:331
 msgid "Syntax error: cannot back up"
 msgstr ""
 
-#: util1/scot/scot.c:501
+#: util1/scot/scot.c:502
 msgid "Improper tie"
 msgstr ""
 
-#: util1/scot/scot.c:507
+#: util1/scot/scot.c:508
 msgid "Tie between different pitches"
 msgstr ""
 
-#: util1/scot/scot.c:515
+#: util1/scot/scot.c:516
 msgid "Warning: params changed on tie"
 msgstr ""
 
-#: util1/scot/scot.c:567
+#: util1/scot/scot.c:568
 msgid "Parameter number out of range"
 msgstr ""
 
-#: util1/scot/scot.c:627
+#: util1/scot/scot.c:628
 msgid "Lost previous note: not written"
 msgstr ""
 
-#: util1/scot/scot.c:746
+#: util1/scot/scot.c:747
 msgid "Macro expansion too long -- circular macros?"
 msgstr ""
 
-#: util1/scot/scot.c:823 util1/scot/scot.c:928 util1/scot/scot.c:952
+#: util1/scot/scot.c:824 util1/scot/scot.c:929 util1/scot/scot.c:953
 msgid "Syntax error: no {"
 msgstr ""
 
-#: util1/scot/scot.c:835
+#: util1/scot/scot.c:836
 msgid "No instrument specified"
 msgstr ""
 
-#: util1/scot/scot.c:840
+#: util1/scot/scot.c:841
 msgid "Instrument not defined"
 msgstr ""
 
-#: util1/scot/scot.c:876
+#: util1/scot/scot.c:877
 msgid "unresolved tie"
 msgstr ""
 
-#: util1/scot/scot.c:878
+#: util1/scot/scot.c:879
 msgid "unresolved slur"
 msgstr ""
 
-#: util1/scot/scot.c:885
+#: util1/scot/scot.c:886
 msgid "Circular note list\n"
 msgstr ""
 
-#: util1/scot/scot.c:931 util1/scot/scot.c:1045 util1/scot/scot.c:1059
-#: util1/scot/scot.c:1066 util1/scot/scot.c:1091
+#: util1/scot/scot.c:932 util1/scot/scot.c:1046 util1/scot/scot.c:1060
+#: util1/scot/scot.c:1067 util1/scot/scot.c:1092
 msgid "Unexpected end of file"
 msgstr ""
 
-#: util1/scot/scot.c:974
+#: util1/scot/scot.c:975
 msgid "Syntax error: no ="
 msgstr ""
 
-#: util1/scot/scot.c:976
+#: util1/scot/scot.c:977
 msgid "Syntax error: no number"
 msgstr ""
 
-#: util1/scot/scot.c:988
+#: util1/scot/scot.c:989
 msgid "No instruments declared"
 msgstr ""
 
-#: util1/scot/scot.c:1009
+#: util1/scot/scot.c:1010
 msgid "Expected ="
 msgstr ""
 
-#: util1/scot/scot.c:1157
+#: util1/scot/scot.c:1158
 msgid "Invalid pitch class"
 msgstr ""
 
-#: util1/scot/scot.c:1462
+#: util1/scot/scot.c:1463
 msgid "scot processing terminated\n"
 msgstr ""
 
-#: util1/scot/scot.c:1469
+#: util1/scot/scot.c:1470
 #, c-format
 msgid "scot: %d errors.\n"
 msgstr ""
diff --git a/po/tester b/po/tester
new file mode 100755
index 0000000..063effd
--- /dev/null
+++ b/po/tester
@@ -0,0 +1,2 @@
+(cd .. ; xgettext --keyword=Str --keyword=Str_noop -o /tmp/str --omit-header -f  all_string_files)
+diff csound.po /tmp/str |more
diff --git a/tests/c/CMakeLists.txt b/tests/c/CMakeLists.txt
index b58b402..c6a176a 100644
--- a/tests/c/CMakeLists.txt
+++ b/tests/c/CMakeLists.txt
@@ -59,7 +59,6 @@ add_test(NAME testCircularBuffer
 #        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/c/
 #        COMMAND $<TARGET_FILE:testCscore> ${CMAKE_SOURCE_DIR}/tests/c/ -arg2 ${TEST_ARGS})
 
-include_directories(${CMAKE_SOURCE_DIR}/interfaces)
 add_executable(testPerfThread perfthread_test.cpp)
 target_link_libraries(testPerfThread ${CSOUNDLIB} ${CUNIT_LIBRARY} pthread libcsnd6)
 add_test(NAME testPerfThread
diff --git a/tests/c/channel_tests.c b/tests/c/channel_tests.c
index 3d58a3f..a2a20cf 100644
--- a/tests/c/channel_tests.c
+++ b/tests/c/channel_tests.c
@@ -23,8 +23,7 @@ void test_control_channel_params(void)
     csoundSetOption(csound, "--logfile=NULL");
     //int argc = 2;
     csoundCompileOrc(csound, orc1);
-    int err = csoundStart(csound);
-    CU_ASSERT(err == CSOUND_SUCCESS);
+    CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS);
     controlChannelHints_t hints;
     hints.behav = CSOUND_CONTROL_CHANNEL_INT;
     hints.dflt = 5;
@@ -53,8 +52,7 @@ void test_control_channel(void)
     csoundSetOption(csound, "--logfile=null");
     //int argc = 2;
     csoundCompileOrc(csound, orc1);
-    int err = csoundStart(csound);
-    CU_ASSERT(err == CSOUND_SUCCESS);
+    CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS);
     csoundSetControlChannel(csound, "testing", 5.0);
     CU_ASSERT_EQUAL(5.0, csoundGetControlChannel(csound, "testing", NULL));
 
@@ -73,8 +71,7 @@ void test_channel_list(void)
     csoundSetOption(csound, "--logfile=null");
     //int argc = 2;
     csoundCompileOrc(csound, orc2);
-    int err = csoundStart(csound);
-    CU_ASSERT(err == CSOUND_SUCCESS);
+    CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS);
     controlChannelInfo_t *lst;
     int numchnls = csoundListChannels(csound, &lst);
     CU_ASSERT(numchnls == 2);
@@ -297,7 +294,7 @@ void test_chn_hints(void)
     csoundCreateMessageBuffer(csound, 0);
     csoundSetOption(csound, "--logfile=null");
     csoundCompileOrc(csound, orc6);
-    int err = csoundStart(csound);
+    (void)csoundStart(csound);
 //    err = csoundPerformKsmps(csound); //Need this to load instr 0
     controlChannelHints_t hints;
     hints.attributes = 0;
@@ -356,8 +353,7 @@ void test_string_channel(void)
     csoundDestroy(csound);
 }
 
-
-int main()
+int main(void)
 {
    CU_pSuite pSuite = NULL;
 
diff --git a/tests/c/csound_debugger_test.c b/tests/c/csound_debugger_test.c
index 165d3b6..f12ca71 100644
--- a/tests/c/csound_debugger_test.c
+++ b/tests/c/csound_debugger_test.c
@@ -182,7 +182,7 @@ void test_bkpt_instrument(void)
 int count = 0;
 static void brkpt_cb5(CSOUND *csound, debug_bkpt_info_t *bkpt_info, void *userdata)
 {
-    debug_opcode_t *debug_opcode = bkpt_info->currentOpcode;
+  /*debug_opcode_t *debug_opcode = bkpt_info->currentOpcode;*/
     count++;
 }
 
@@ -331,7 +331,7 @@ void test_line_breakpoint_orc_file(void)
 
     csoundCreateMessageBuffer(csound, 0);
     const char* argv[] = {"csound", "debug.orc", "debug.sco"};
-    csoundCompile(csound, 3, (char **) argv);
+    csoundCompile(csound, 3, argv);
 
     csoundDebuggerInit(csound);
     int line = 5;
diff --git a/tests/c/csound_message_buffer_test.c b/tests/c/csound_message_buffer_test.c
index bd6f42f..0661c91 100644
--- a/tests/c/csound_message_buffer_test.c
+++ b/tests/c/csound_message_buffer_test.c
@@ -18,9 +18,9 @@ void test_create_buffer(void)
     csoundSetGlobalEnv("OPCODE6DIR64", "../../");
     CSOUND *csound = csoundCreate(0);
     int argc = 2;
-    char *argv[] = {"csound", "-v"};
+    const char *argv[] = {"csound", "-v"};
     csoundCreateMessageBuffer(csound, 0);
-    int result = csoundCompile(csound, argc, argv);
+    csoundCompile(csound, argc, argv);
 
     int cnt = csoundGetMessageCnt(csound);
     CU_ASSERT(cnt > 0);
@@ -42,7 +42,7 @@ void test_buffer_run(void)
     csoundSetGlobalEnv("OPCODE6DIR64", "../../");
     CSOUND *csound = csoundCreate(0);
     csoundCreateMessageBuffer(csound, 0);
-    int result = csoundCompileOrc(csound, "instr 1\n"
+    csoundCompileOrc(csound, "instr 1\n"
                                   "asig oscil 0.1, 440\n"
                                   "out asig\n"
                                   "endin\n");
diff --git a/tests/c/csound_orc_semantics_test.c b/tests/c/csound_orc_semantics_test.c
index 78b2e7e..d0b7c0a 100644
--- a/tests/c/csound_orc_semantics_test.c
+++ b/tests/c/csound_orc_semantics_test.c
@@ -12,6 +12,7 @@
 #include <stdlib.h>
 #include <stdbool.h>
 #include "csoundCore.h"
+#include "csound_orc.h"
 #include "CUnit/Basic.h"
 
 extern OENTRIES* find_opcode2(CSOUND* csound, char* opname);
diff --git a/tests/c/engine_test.c b/tests/c/engine_test.c
index 61a1e12..2d1229e 100644
--- a/tests/c/engine_test.c
+++ b/tests/c/engine_test.c
@@ -17,14 +17,14 @@ int clean_suite1(void)
 void test_udp_server(void)
 {
     CSOUND  *csound;
-    int     result, compile_again=0;
+    //int     result;
 
     csound = csoundCreate(NULL);
     csoundSetIsGraphable(csound, 1);
     csoundSetOption(csound,"-odac");
     csoundSetOption(csound,"--port=12345");
-    result = csoundStart(csound);
-    sleep(1);
+    /*result =*/(void) csoundStart(csound);
+    csoundSleep(1000);
     /* delete Csound instance */
     csoundStop(csound);
     csoundDestroy(csound);
diff --git a/tests/commandline/CMakeLists.txt b/tests/commandline/CMakeLists.txt
index ee4f86b..2058b7c 100644
--- a/tests/commandline/CMakeLists.txt
+++ b/tests/commandline/CMakeLists.txt
@@ -1,5 +1,10 @@
 cmake_minimum_required(VERSION 2.8)
 
-add_custom_target(csdtests python test.py --csound-executable=${CMAKE_BINARY_DIR}/csound --opcode6dir64=${CMAKE_BINARY_DIR}
-	WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+if(MSVC) 
+  add_custom_target(csdtests python test.py --csound-executable=${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/csound --opcode6dir64=${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+else()
+  add_custom_target(csdtests python test.py --csound-executable=${CMAKE_BINARY_DIR}/csound --opcode6dir64=${CMAKE_BINARY_DIR}
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+endif()
 
diff --git a/tests/commandline/arrays/array_copy.csd b/tests/commandline/arrays/array_copy.csd
new file mode 100644
index 0000000..15d7fb2
--- /dev/null
+++ b/tests/commandline/arrays/array_copy.csd
@@ -0,0 +1,107 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n
+</CsOptions>
+<CsInstruments>
+
+ksmps = 32
+
+instr copy_one_dim_i2i
+
+ iArrSrc[] fillarray 1, 2, 3, 4, 5
+ iArrCpy[] init 5
+ iArrCpy = iArrSrc
+ print iArrCpy[0], iArrCpy[4]
+
+endin
+
+instr copy_one_dim_k2k
+
+ kArrSrc[] fillarray 1, 2, 3, 4, 5
+ kArrCpy[] init 5
+ kArrCpy = kArrSrc
+ printk 0, kArrCpy[0]
+ printk 0, kArrCpy[4]
+ turnoff
+
+endin
+
+instr copy_one_dim_i2k
+
+ iArrSrc[] fillarray 1, 2, 3, 4, 5
+ kArrCpy[] init 5
+ kArrCpy = iArrSrc
+ printk 0, kArrCpy[0]
+ printk 0, kArrCpy[4]
+ turnoff
+
+endin
+
+instr copy_one_dim_k2i
+
+ kArrSrc[] fillarray 1, 2, 3, 4, 5
+ iArrCpy[] init 5
+ iArrCpy = kArrSrc
+ print iArrCpy[0]
+ print iArrCpy[4]
+
+endin
+
+instr copy_two_dims_i2i
+
+ iArrSrc[][] init 2, 3
+ iArrSrc fillarray 1, 2, 3, 4, 5, 6
+ iArrCpy[][] init 2, 3
+ iArrCpy = iArrSrc
+ print iArrCpy[0][0], iArrCpy[1][2]
+
+endin
+
+instr copy_two_dims_k2k
+
+ kArrSrc[][] init 2, 3
+ kArrSrc fillarray 1, 2, 3, 4, 5, 6
+ kArrCpy[][] init 2, 3
+ kArrCpy = kArrSrc
+ printk 0, kArrCpy[0][0]
+ printk 0, kArrCpy[1][2]
+ turnoff
+
+endin
+
+instr copy_two_dims_i2k
+
+ iArrSrc[][] init 2, 3 
+ iArrSrc fillarray 1, 2, 3, 4, 5, 6
+ kArrCpy[][] init 2, 3
+ kArrCpy = iArrSrc
+ printk 0, kArrCpy[0][0]
+ printk 0, kArrCpy[1][2]
+ turnoff
+
+endin
+
+instr copy_two_dims_k2i
+
+ kArrSrc[][] init 2, 3 
+ kArrSrc fillarray 1, 2, 3, 4, 5, 6
+ iArrCpy[][] init 2, 3
+ iArrCpy = kArrSrc
+ print iArrCpy[0][0], iArrCpy[1][2]
+
+endin
+
+
+</CsInstruments>
+<CsScore>
+i "copy_one_dim_i2i" 0 0
+i "copy_one_dim_k2k" .1 .1
+i "copy_one_dim_i2k" .2 .1
+i "copy_one_dim_k2i" .3 0
+i "copy_two_dims_i2i" .4 0
+i "copy_two_dims_k2k" .5 .1
+i "copy_two_dims_i2k" .6 .1
+i "copy_two_dims_k2i" .7 0
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/tests/commandline/nested_strings.csd b/tests/commandline/nested_strings.csd
new file mode 100644
index 0000000..d579968
--- /dev/null
+++ b/tests/commandline/nested_strings.csd
@@ -0,0 +1,74 @@
+<CsoundSynthesizer>
+<CsOptions>
+</CsOptions>
+<CsInstruments>
+
+instr 1
+
+Seval = p4
+icompiled compilestr Seval
+
+if (icompiled == 0) then
+   printf_i "Compiled: %s\n", 1, Seval
+else
+   printf_i "!!!Did not compile: %s\n", 1, Seval
+endif
+
+endin
+
+
+schedule 1, 1, 1, {{
+instr 10
+
+aL chnget "outLeft"
+aR chnget "outRight"
+
+outs aL, aR
+
+chnclear "outLeft"
+chnclear "outRight"
+
+endin
+}}
+
+schedule 1, 2, 1, {{
+schedule 10, 0, -1
+}}
+
+
+schedule 1, 3, 1, {{
+instr 20
+ipan = p6
+ares oscil p4, p5
+
+aleft = ares * ipan
+aright = ares * (1 - ipan)
+
+chnmix  aleft, "outLeft"
+chnmix  aright, "outRight"
+
+endin
+}}
+
+
+schedule 1, 4, 1, {{
+schedule 20, 0, 1, 0.8, 261, 1
+}}
+
+schedule 1, 5, 1, {{
+schedule 20, 0, 1, 0.8, 330, 0
+}}
+
+schedule 1, 6, 1, {{
+schedule 20, 0, 1, 0.8, 440, 1
+}}
+
+
+</CsInstruments>
+<CsScore>
+;i1 0 1
+
+f0 8
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/tests/commandline/udo/fail_no_xin.csd b/tests/commandline/prints_number_no_crash.csd
similarity index 67%
copy from tests/commandline/udo/fail_no_xin.csd
copy to tests/commandline/prints_number_no_crash.csd
index f581eea..f90ca9b 100644
--- a/tests/commandline/udo/fail_no_xin.csd
+++ b/tests/commandline/prints_number_no_crash.csd
@@ -1,28 +1,22 @@
 <CsoundSynthesizer>
-;<CsOptions>
-;</CsOptions>
+<CsOptions>
+</CsOptions>
 ; ==============================================
 <CsInstruments>
 
-sr	=	44100
+sr	=	48000
 ksmps	=	1
 ;nchnls	=	2
 0dbfs	=	1
 
-opcode testUDO, i, i
-xout 9 
-endop
-
-instr 1	
-ival testUDO 1
-turnoff
+instr 1
+  prints 1 ;; should give an error and not crash!
 endin
 
 </CsInstruments>
 ; ==============================================
 <CsScore>
-i1 0 0.1
-
+i1 0 0.01
 
 </CsScore>
 </CsoundSynthesizer>
diff --git a/tests/commandline/test.py b/tests/commandline/test.py
index 9a89b83..1832b88 100755
--- a/tests/commandline/test.py
+++ b/tests/commandline/test.py
@@ -106,6 +106,7 @@ def runTest():
 	["test_string.csd", "test string assignment and printing"],
 	["test_sprintf.csd", "test string assignment and printing"],
 	["test_sprintf2.csd", "test string assignment and printing that causes reallocation"],
+	["nested_strings.csd", "test nested strings works with schedule [issue #861]"],
 	["test_label_within_if_block.csd", "test label within if block"],
 
 	["test_arrays.csd", "test k-array with single dimension, assignment to expression value"],
@@ -136,6 +137,7 @@ def runTest():
 	["test_udo_2d_array.csd", "test udo with 2d-array"],
         ["test_udo_string_array_join.csd", "test udo with S[] arg returning S"],
         ["test_array_function_call.csd", "test synthesizing an array arg from a function-call"],
+        ["prints_number_no_crash.csd", "test prints does not crash when given a number arguments"],
     ]
 
     arrayTests = [["arrays/arrays_i_local.csd", "local i[]"],
@@ -160,9 +162,7 @@ def runTest():
     tests += udoTests
 
     output = ""
-    tempfile = "/tmp/csound_test_output.txt"
-    if(os.sep == '/' and os.name == 'nt'):
-        tempfile = 'csound_test_output.txt'
+    tempfile = 'csound_test_output.txt' if (os.name == 'nt') else '/tmp/csound_test_output.txt'
     counter = 1
 
     retVals = []
diff --git a/tests/soak/modmatrix.csd b/tests/soak/modmatrix.csd
index f399f3f..fc38e20 100644
--- a/tests/soak/modmatrix.csd
+++ b/tests/soak/modmatrix.csd
@@ -24,10 +24,10 @@ giMaxNumParam	= 128
 giMaxNumMod	= 32
 giParam_In ftgen 0, 0, giMaxNumParam, 2, 0	; input parameters table
 ; output parameters table (parameter values with added modulators)
-giParam_Out ftgen 0, 0, giMaxNumParam, 2, 0	
+giParam_Out ftgen 0, 0, giMaxNumParam, 2, 0
 giModulators ftgen 0, 0, giMaxNumMod, 2, 0	 ; modulators table
 ; modulation scaling and routing (mod matrix) table, start with empty table
-giModScale ftgen 0, 0, giMaxNumParam*giMaxNumMod, -2, 0		
+giModScale ftgen 0, 0, giMaxNumParam*giMaxNumMod, -2, 0
 
 ;********************************************
 ; generate the modulator signals
@@ -58,7 +58,7 @@ kLFO2	= kLFO2+0.5				; offset
 icps1	= p4
 icps2	= p5
 icutoff	= p6
-	
+
 ; write parameters to table
 	tableiw	icps1, 0, giParam_In
 	tableiw	icps2, 1, giParam_In
@@ -86,8 +86,8 @@ iLfo2ToCutoff	= p9
 	tableiw	iLfo2ToCps1, 3, giModScale
 	tableiw	iLfo2ToCps2, 4, giModScale
 	tableiw	iLfo2ToCutoff, 5, giModScale
-	
-; and set the update flag for modulator matrix 
+
+; and set the update flag for modulator matrix
 ; ***(must update to enable changes)
 ktrig	init 1
 	chnset	ktrig, "modulatorUpdateFlag"
@@ -101,13 +101,13 @@ ktrig	= 0
 	instr 4
 
 ; get the update flag
-kupdate	chnget	"modulatorUpdateFlag"		
+kupdate	chnget	"modulatorUpdateFlag"
 
-; run the mod matrix 
+; run the mod matrix
 inum_mod	= 2
 inum_parm	= 3
-	modmatrix giParam_Out, giModulators, giParam_In, \\
-	giModScale, inum_mod, inum_parm, kupdate
+	modmatrix giParam_Out, giModulators, giParam_In, \
+        giModScale, inum_mod, inum_parm, kupdate
 
 ; and reset the update flag
 	chnset	0, "modulatorUpdateFlag"  ; reset the update flag
@@ -139,7 +139,7 @@ inum_parm	= 3
 
 	a2	oscili	iamp, kcps2, giSoftSaw
 	a2	lpf18	a2, kCF_freq2, kReso, kDist
-	
+
 		outs 	a1, a2
 
 	endin
@@ -165,7 +165,7 @@ i1 0 $SCORELEN			; start modulators
 i4 0 $SCORELEN			; start mod matrix
 i5 0 $SCORELEN			; start audio oscillator
 
-e	
+e
 
 </CsScore>
 </CsoundSynthesizer>
\ No newline at end of file
diff --git a/tests/soak/readk2.csd b/tests/soak/readk2.csd
index 8f70021..1c92258 100644
--- a/tests/soak/readk2.csd
+++ b/tests/soak/readk2.csd
@@ -16,7 +16,7 @@ nchnls = 2
 giSine ftgen 0, 0, 2^10, 10, 1
 
 instr 1 ;writes two control signals to a file
-kfreq     randh     100, 1, o.2, 1, 500 ;generates one random number between 400 and 600 per second
+kfreq     randh     100, 1, 0.2, 1, 500 ;generates one random number between 400 and 600 per second
 kdb       randh     12, 1, 0.2, 1, -12 ;amplitudes in dB between -24 and 0
           dumpk2    kfreq, kdb, "dumpk2.txt", 8, 1 ;writes the control signals
           prints    "WRITING:\n"
diff --git a/tests/soak/scogen.csd b/tests/soak/scogen.csd
index a368cbc..2146094 100644
--- a/tests/soak/scogen.csd
+++ b/tests/soak/scogen.csd
@@ -24,7 +24,7 @@
 ;===========================================================
 
 
-gScoName = "/Users/matt/Desktop/schottstaedt.sco"     ; the name of the file to be generated
+gScoName = "schottstaedt.sco"     ; the name of the file to be generated
 
     sr    =    100     ; this defines our temporal resolution,
                 ; an sr of 100 means we will generate p2 and p3 values
diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt
index 2b4aa42..2f37bf1 100644
--- a/util/CMakeLists.txt
+++ b/util/CMakeLists.txt
@@ -10,7 +10,7 @@ set(stdutil_SRCS
 
 if(MSVC) 
   make_plugin(stdutil "${stdutil_SRCS}" )
-  target_link_libraries(stdutil ${LIBSNDFILE_LIBRARY})
+  target_link_libraries(stdutil ${LIBSNDFILE_LIBRARY} ${LIBSNDFILE_SUPPORT_LIBS})
 elseif(WIN32)
   make_plugin(stdutil "${stdutil_SRCS}" m
     ${LIBSNDFILE_LIBRARY} ${LIBSNDFILE_SUPPORT_LIBS})
diff --git a/util/atsa.c b/util/atsa.c
index 496d3cb..5f9ee3a 100644
--- a/util/atsa.c
+++ b/util/atsa.c
@@ -439,7 +439,7 @@ static inline unsigned int ppp2(int num);
 static inline double amp2db(double amp);
 static inline double db2amp(double db);
 static inline double amp2db_spl(double amp);
-static inline double db2amp_spl(double db_spl);
+// static inline double db2amp_spl(double db_spl);
 
 /* optimize_sound
  * ==============
@@ -758,7 +758,7 @@ static double frq2bark(double frq, double *edges)
 
     if (frq <= 400.0)
       return (frq * 0.01);
-    if (frq >= 20000.0)
+    if (UNLIKELY(frq >= 20000.0))
       return (NIL);
 
     band = find_band(frq, edges);
@@ -1103,7 +1103,7 @@ static void to_polar(ATS_FFT *ats_fft, double *mags, double *phase, int N,
     for (k = 0; k < N; k++) {
       x = (double) ats_fft->data[k << 1];
       y = (double) ats_fft->data[(k << 1) + 1];
-      mags[k] = norm * sqrt(x * x + y * y);
+      mags[k] = norm * hypot(x, y)/*sqrt(x * x + y * y)*/;
       phase[k] = ((x == 0.0 && y == 0.0) ? 0.0 : atan2(y, x));
     }
 }
@@ -1455,7 +1455,7 @@ static void residual_compute_band_energy(ATS_FFT *fft, int *band_limits,
                                          int bands, double *band_energy,
                                          double norm)
 {
-    /* loop trough bands and evaluate energy
+    /* loop through bands and evaluate energy
        we compute energy of one band as:
        (N-1)/2
        1/N * sum(|X(k)|^2)
@@ -1491,10 +1491,10 @@ static void residual_analysis(CSOUND *csound, char *file, ATS_SOUND *sound)
     memset(&sfinfo, 0, sizeof(SF_INFO));
     fd = csound->FileOpen2(csound, &sf, CSFILE_SND_R, file, &sfinfo,  "SFDIR;SSDIR",
                            CSFTYPE_UNKNOWN_AUDIO, 0);
-    if (fd == NULL) {
+    if (UNLIKELY(fd == NULL)) {
       csound->Die(csound, Str("atsa: error opening residual file '%s'"), file);
     }
-    if (sfinfo.channels != 2) {
+    if (UNLIKELY(sfinfo.channels != 2)) {
       csound->Die(csound,
                   Str("atsa: residual file has %d channels, must be stereo !"),
                   (int) sfinfo.channels);
@@ -1822,7 +1822,7 @@ static void compute_residual(CSOUND *csound, mus_sample_t **fil,
     sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
     fd = csound->FileOpen2(csound, &sf, CSFILE_SND_W, output_file, &sfinfo,
                           NULL, CSFTYPE_WAVE, 0);
-    if (fd == NULL) {
+    if (UNLIKELY(fd == NULL)) {
       csound->Die(csound, Str("\nERROR: cannot open file %s for writing\n"),
                   output_file);
     }
@@ -1838,8 +1838,10 @@ static void compute_residual(CSOUND *csound, mus_sample_t **fil,
     /* compute residual frame by frame */
     for (frm = 1; frm < frames; frm++) {
       /* clean buffers up */
-      for (i = 0; i < frm_samps; i++)
-        in_buff[i] = synth_buff[i] = 0.0;
+      memset(in_buff, '\0', frm_samps * sizeof(double));
+      memset(synth_buff, '\0', frm_samps * sizeof(double));
+      /* for (i = 0; i < frm_samps; i++) */
+      /*   in_buff[i] = synth_buff[i] = 0.0; */
       frm_1 = frm - 1;
       frm_2 = frm;
       /* read frame from input */
@@ -1917,7 +1919,7 @@ static void ats_save(CSOUND *csound, ATS_SOUND *sound, FILE *outfile,
     double  daux;
     ATS_HEADER header;
 
-    if (sound->optimized == NIL) {
+    if (UNLIKELY(sound->optimized == NIL)) {
       csound->Die(csound, Str("Error: sound not optimised !"));
     }
     /* count how many partials are dead
@@ -2049,7 +2051,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->duration = sfdur - anargs->start;
     }
     f_tmp = anargs->duration + anargs->start;
-    if (!(anargs->duration > 0.0 && f_tmp <= sfdur)) {
+    if (UNLIKELY(!(anargs->duration > 0.0 && f_tmp <= sfdur))) {
       csound->Warning(csound, Str("duration %f out of bounds, "
                                   "limited to file duration"),
                       anargs->duration);
@@ -2059,9 +2061,9 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
     csound->Message(csound, Str("start: %f duration: %f file dur: %f\n"),
                     anargs->start, anargs->duration, sfdur);
     /* check lowest frequency */
-    if (!
+    if (UNLIKELY(!
         (anargs->lowest_freq > 0.0 &&
-         anargs->lowest_freq < anargs->highest_freq)) {
+         anargs->lowest_freq < anargs->highest_freq))) {
       csound->Warning(csound,
                       Str("lowest freq. %f out of bounds, "
                           "forced to default: %f"), anargs->lowest_freq,
@@ -2079,7 +2081,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->highest_freq = ATSA_HFREQ;
     }
     /* frequency deviation */
-    if (!(anargs->freq_dev > 0.0f && anargs->freq_dev < 1.0f)) {
+    if (UNLIKELY(!(anargs->freq_dev > 0.0f && anargs->freq_dev < 1.0f))) {
       csound->Warning(csound, Str("freq. dev. %f out of bounds, "
                                   "should be > 0.0 and <= 1.0, "
                                   "forced to default: %f"),
@@ -2087,7 +2089,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->freq_dev = ATSA_FREQDEV;
     }
     /* window cycles */
-    if (!(anargs->win_cycles >= 1 && anargs->win_cycles <= 8)) {
+    if (UNLIKELY(!(anargs->win_cycles >= 1 && anargs->win_cycles <= 8))) {
       csound->Warning(csound, Str("windows cycles %d out of bounds, "
                                   "should be between 1 and 8, "
                                   "forced to default: %d"),
@@ -2095,7 +2097,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->win_cycles = ATSA_WCYCLES;
     }
     /* window type */
-    if (!(anargs->win_type >= 0 && anargs->win_type <= 3)) {
+    if (UNLIKELY(!(anargs->win_type >= 0 && anargs->win_type <= 3))) {
       csound->Warning(csound, Str("window type %d out of bounds, "
                                   "should be between 0 and 3, "
                                   "forced to default: %d"),
@@ -2103,7 +2105,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->win_type = ATSA_WTYPE;
     }
     /* hop size */
-    if (!(anargs->hop_size > 0.0 && anargs->hop_size <= 1.0)) {
+    if (UNLIKELY(!(anargs->hop_size > 0.0 && anargs->hop_size <= 1.0))) {
       csound->Warning(csound, Str("hop size %f out of bounds, "
                                   "should be > 0.0 and <= 1.0, "
                                   "forced to default: %f"),
@@ -2111,7 +2113,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->hop_size = ATSA_HSIZE;
     }
     /* lowest mag */
-    if (!(anargs->lowest_mag <= 0.0)) {
+    if (UNLIKELY(!(anargs->lowest_mag <= 0.0))) {
       csound->Warning(csound, Str("lowest magnitude %f out of bounds, "
                                   "should be >= 0.0 and <= 1.0, "
                                   "forced to default: %f"),
@@ -2134,7 +2136,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
     /* compute total number of frames */
     anargs->frames = compute_frames(anargs);
     /* check that we have enough frames for the analysis */
-    if (!(anargs->frames >= ATSA_MFRAMES)) {
+    if (UNLIKELY(!(anargs->frames >= ATSA_MFRAMES))) {
       csound->ErrorMsg(csound,
                        Str("atsa: %d frames are not enough for analysis, "
                            "need at least %d"), anargs->frames, ATSA_MFRAMES);
@@ -2142,7 +2144,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
     }
     /* check other user parameters */
     /* track length */
-    if (!(anargs->track_len >= 1 && anargs->track_len < anargs->frames)) {
+    if (UNLIKELY(!(anargs->track_len >= 1 && anargs->track_len < anargs->frames))) {
       i_tmp = (ATSA_TRKLEN < anargs->frames) ? ATSA_TRKLEN : anargs->frames - 1;
       csound->Warning(csound,
                       Str("track length %d out of bounds, forced to: %d"),
@@ -2150,7 +2152,8 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->track_len = i_tmp;
     }
     /* min. segment length */
-    if (!(anargs->min_seg_len >= 1 && anargs->min_seg_len < anargs->frames)) {
+    if (UNLIKELY(!(anargs->min_seg_len >= 1 &&
+                   anargs->min_seg_len < anargs->frames))) {
       i_tmp =
           (ATSA_MSEGLEN < anargs->frames) ? ATSA_MSEGLEN : anargs->frames - 1;
       csound->Warning(csound,
@@ -2159,7 +2162,8 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->min_seg_len = i_tmp;
     }
     /* min. gap length */
-    if (!(anargs->min_gap_len >= 0 && anargs->min_gap_len < anargs->frames)) {
+    if (UNLIKELY(!(anargs->min_gap_len >= 0 &&
+                   anargs->min_gap_len < anargs->frames))) {
       i_tmp =
           (ATSA_MGAPLEN < anargs->frames) ? ATSA_MGAPLEN : anargs->frames - 1;
       csound->Warning(csound,
@@ -2168,7 +2172,8 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->min_gap_len = i_tmp;
     }
     /* SMR threshold */
-    if (!(anargs->SMR_thres >= 0.0 && anargs->SMR_thres < ATSA_MAX_DB_SPL)) {
+    if (UNLIKELY(!(anargs->SMR_thres >= 0.0 &&
+                   anargs->SMR_thres < ATSA_MAX_DB_SPL))) {
       csound->Warning(csound, Str("SMR threshold %f out of bounds, "
                                   "should be >= 0.0 and < %f dB SPL, "
                                   "forced to default: %f"),
@@ -2176,9 +2181,9 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->SMR_thres = ATSA_SMRTHRES;
     }
     /* min. seg. SMR */
-    if (!
+    if (UNLIKELY(!
         (anargs->min_seg_SMR >= anargs->SMR_thres &&
-         anargs->min_seg_SMR < ATSA_MAX_DB_SPL)) {
+         anargs->min_seg_SMR < ATSA_MAX_DB_SPL))) {
       csound->Warning(csound,
                       Str("min. seg. SMR %f out of bounds, "
                           "should be >= %f and < %f dB SPL, "
@@ -2187,7 +2192,8 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->min_seg_SMR = ATSA_MSEGSMR;
     }
     /* last peak contribution */
-    if (!(anargs->last_peak_cont >= 0.0 && anargs->last_peak_cont <= 1.0)) {
+    if (UNLIKELY(!(anargs->last_peak_cont >= 0.0 &&
+                   anargs->last_peak_cont <= 1.0))) {
       csound->Warning(csound, Str("last peak contribution %f out of bounds, "
                                   "should be >= 0.0 and <= 1.0, "
                                   "forced to default: %f"),
@@ -2195,7 +2201,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
       anargs->last_peak_cont = ATSA_LPKCONT;
     }
     /* SMR cont. */
-    if (!(anargs->SMR_cont >= 0.0 && anargs->SMR_cont <= 1.0)) {
+    if (UNLIKELY(!(anargs->SMR_cont >= 0.0 && anargs->SMR_cont <= 1.0))) {
       csound->Warning(csound, Str("SMR contribution %f out of bounds, "
                                   "should be >= 0.0 and <= 1.0, "
                                   "forced to default: %f"),
@@ -2370,7 +2376,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
     /* optimise sound */
     optimize_sound(csound, anargs, sound);
     /* compute residual */
-    if (anargs->type == 3 || anargs->type == 4) {
+    if (UNLIKELY(anargs->type == 3 || anargs->type == 4)) {
       csound->Message(csound, Str("Computing residual..."));
       compute_residual(csound, bufs, sflen, resfile, sound, win_samps,
                        anargs->srate);
@@ -2381,7 +2387,7 @@ static ATS_SOUND *tracker(CSOUND *csound, ANARGS *anargs, char *soundfile,
     csound->Free(csound, bufs[0]);
     csound->Free(csound, bufs);
     /* analyse residual */
-    if (anargs->type == 3 || anargs->type == 4) {
+    if (UNLIKELY(anargs->type == 3 || anargs->type == 4)) {
 #ifdef WIN32
       char buffer[160];
       char * tmp = getenv("TEMP");
@@ -2447,11 +2453,12 @@ static inline double amp2db_spl(double amp)
     return (amp2db(amp) + ATSA_MAX_DB_SPL);
 }
 
+/*
 static inline double db2amp_spl(double db_spl)
 {
     return (db2amp(db_spl - ATSA_MAX_DB_SPL));
 }
-
+*/
 /* ppp2
  * ====
  * returns the closest power of two
@@ -2738,9 +2745,9 @@ static void init_sound(CSOUND *csound, ATS_SOUND *sound, int sampling_rate,
                        int frame_size, int window_size, int frames,
                        double duration, int partials, int use_noise)
 {
-    int     i, j;
+    int     i /* , j*/;
 
-    if (partials==0) {
+    if (UNLIKELY(partials==0)) {
       csound->Die(csound, Str("No partials to track -- stopping\n"));
     }
     sound->srate = sampling_rate;
@@ -2763,25 +2770,25 @@ static void init_sound(CSOUND *csound, ATS_SOUND *sound, int sampling_rate,
       sound->time[i] =
           (double *) csound->Malloc(csound, frames * sizeof(double));
       sound->amp[i] =
-          (double *) csound->Malloc(csound, frames * sizeof(double));
+          (double *) csound->Calloc(csound, frames * sizeof(double));
       sound->frq[i] =
-          (double *) csound->Malloc(csound, frames * sizeof(double));
+          (double *) csound->Calloc(csound, frames * sizeof(double));
       sound->pha[i] =
-          (double *) csound->Malloc(csound, frames * sizeof(double));
+          (double *) csound->Calloc(csound, frames * sizeof(double));
       sound->smr[i] =
-          (double *) csound->Malloc(csound, frames * sizeof(double));
+          (double *) csound->Calloc(csound, frames * sizeof(double));
       sound->res[i] =
-          (double *) csound->Malloc(csound, frames * sizeof(double));
+          (double *) csound->Calloc(csound, frames * sizeof(double));
     }
     /* init all array values with 0.0 */
-    for (i = 0; i < partials; i++)
-      for (j = 0; j < frames; j++) {
-        sound->amp[i][j] = 0.0;
-        sound->frq[i][j] = 0.0;
-        sound->pha[i][j] = 0.0;
-        sound->smr[i][j] = 0.0;
-        sound->res[i][j] = 0.0;
-      }
+    /* for (i = 0; i < partials; i++) */
+    /*   for (j = 0; j < frames; j++) { */
+    /*     sound->amp[i][j] = 0.0; */
+    /*     sound->frq[i][j] = 0.0; */
+    /*     sound->pha[i][j] = 0.0; */
+    /*     sound->smr[i][j] = 0.0; */
+    /*     sound->res[i][j] = 0.0; */
+    /*   } */
     if (use_noise) {
       sound->band_energy =
           (double **) csound->Malloc(csound,
diff --git a/util/cvanal.c b/util/cvanal.c
index 13e80b3..b2e504c 100644
--- a/util/cvanal.c
+++ b/util/cvanal.c
@@ -43,8 +43,8 @@ static int CVAlloc(CSOUND*, CVSTRUCT**, long, int, MYFLT,
 #define SF_UNK_LEN      -1      /* code for sndfile len unkown  */
 
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-'))  \
-                            return quit(csound,MSG);
+                      if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))    \
+                        return quit(csound,MSG);
 
 static int cvanal(CSOUND *csound, int argc, char **argv)
 {
@@ -63,7 +63,7 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
     int new_format = 0;
 
     /* csound->dbfs_to_float = csound->e0dbfs = FL(1.0); */
-    if (!(--argc)) {
+    if (UNLIKELY(!(--argc))) {
       return quit(csound, Str("insufficient arguments"));
     }
     do {
@@ -81,7 +81,7 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
         case 'c':
           FIND(Str("no channel"))
             sscanf(s, "%d", &channel);
-          if ((channel < 1) || (channel > 4))
+          if (UNLIKELY((channel < 1) || (channel > 4)))
             return quit(csound, Str("channel must be in the range 1 to 4"));
           break;
         case 'b':
@@ -108,12 +108,13 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
       else break;
     } while (--argc);
 
-    if (argc !=  2) return quit(csound, Str("illegal number of filenames"));
+    if (UNLIKELY(argc !=  2))
+      return quit(csound, Str("illegal number of filenames"));
     infilnam = *argv++;
     outfilnam = *argv;
 
-    if ((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
-                                    &input_dur, &sr, channel)) == NULL) {
+    if (UNLIKELY((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
+                                             &input_dur, &sr, channel)) == NULL)) {
       snprintf(err_msg, 512, Str("error while opening %s"), infilnam);
       return quit(csound, err_msg);
     }
@@ -128,8 +129,8 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
       Estdatasiz *= p->nchanls;
 
     /* alloc & fill CV hdrblk */
-    if ((err = CVAlloc(csound, &cvh, Estdatasiz, CVMYFLT, sr,
-                       p->nchanls, channel, Hlen, CVRECT, 4))) {
+    if (UNLIKELY((err = CVAlloc(csound, &cvh, Estdatasiz, CVMYFLT, sr,
+                                p->nchanls, channel, Hlen, CVRECT, 4)))) {
       csound->Message(csound, Str("cvanal: Error allocating header\n"));
       return -1;
     }
@@ -137,14 +138,21 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
 
       ofd_handle = csound->FileOpen2(csound, &ofd, CSFILE_STD, outfilnam, "w",
                                      "SFDIR", CSFTYPE_CVANAL, 0);
-      if (ofd_handle == NULL) {                   /* open the output CV file */
+      if (UNLIKELY(ofd_handle == NULL)) {         /* open the output CV file */
         return quit(csound, Str("cannot create output file"));
       }                                           /* & wrt hdr into the file */
-      #if defined(USE_DOUBLE)
+#if defined(USE_DOUBLE)
       fprintf(ofd, "CVANAL\n%d %d %d %.17lg %d %d %d %d\n",
-      #else
+              cvh->headBsize,              /* total number of bytes of data */
+              cvh->dataBsize,              /* total number of bytes of data */
+              cvh->dataFormat,             /* (int) format specifier */
+              (double)cvh->samplingRate,   /* of original sample */
+              cvh->src_chnls,              /* no. of channels in source */
+              cvh->channel,                /* requested channel(s) */
+              cvh->Hlen,                   /* length of impulse reponse */
+              cvh->Format);                /* (int) how words are org'd in frm */
+#else
       fprintf(ofd, "CVANAL\n%d %d %d %.9g %d %d %d %d\n",
-      #endif
               cvh->headBsize,              /* total number of bytes of data */
               cvh->dataBsize,              /* total number of bytes of data */
               cvh->dataFormat,             /* (int) format specifier */
@@ -153,14 +161,15 @@ static int cvanal(CSOUND *csound, int argc, char **argv)
               cvh->channel,                /* requested channel(s) */
               cvh->Hlen,                   /* length of impulse reponse */
               cvh->Format);                /* (int) how words are org'd in frm */
+#endif
     }
     else {
       ofd_handle = csound->FileOpen2(csound, &ofd, CSFILE_STD, outfilnam, "wb",
                                      "SFDIR", CSFTYPE_CVANAL, 0);
-      if (ofd_handle == NULL) {                   /* open the output CV file */
+      if (UNLIKELY(ofd_handle == NULL)) {           /* open the output CV file */
         return quit(csound, Str("cannot create output file"));
       }                                           /* & wrt hdr into the file */
-      if ((long) fwrite(cvh, 1, cvh->headBsize, ofd) < cvh->headBsize) {
+      if (UNLIKELY((long) fwrite(cvh, 1, cvh->headBsize, ofd) < cvh->headBsize)) {
         return quit(csound, Str("cannot write header"));
       }
     }
@@ -190,7 +199,7 @@ static int takeFFT(CSOUND *csound, SOUNDIN *p, CVSTRUCT *cvh,
     nchanls = cvh->channel != ALLCHNLS ? 1 : cvh->src_chnls;
     j = (int) (Hlen * nchanls);
     inbuf = fp1 = (MYFLT *) csound->Malloc(csound, j * sizeof(MYFLT));
-    if ((read_in = csound->getsndin(csound, infd, inbuf, j, p)) < j) {
+    if (UNLIKELY((read_in = csound->getsndin(csound, infd, inbuf, j, p)) < j)) {
       csound->Message(csound, Str("less sound than expected!\n"));
       return -1;
     }
diff --git a/util/dnoise.c b/util/dnoise.c
index 2981bdb..cbea2fa 100644
--- a/util/dnoise.c
+++ b/util/dnoise.c
@@ -84,14 +84,14 @@
     return -1;                          \
 }
 
-#define FIND(x)                                                     \
-{                                                                   \
-    if (*s == '\0') {                                               \
-      if (!(--argc) || (((s = *argv++) != NULL) && *s == '-')) {    \
-        csound->Message(csound, "%s\n", Str(x));                    \
-        return dnoise_usage(csound, -1);                            \
-      }                                                             \
-    }                                                               \
+#define FIND(x)                                                            \
+{                                                                          \
+    if (*s == '\0') {                                                      \
+      if (UNLIKELY(!(--argc) || (((s = *argv++) != NULL) && *s == '-'))) { \
+        csound->Message(csound, "%s\n", Str(x));                           \
+        return dnoise_usage(csound, -1);                                   \
+      }                                                                    \
+    }                                                                      \
 }
 
 static  int     dnoise_usage(CSOUND *, int);
@@ -292,7 +292,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
               FIND("no outfilename");
               O.outfilename = s;                 /* soundout name */
               for ( ; *s != '\0'; s++) ;
-              if (strcmp(O.outfilename, "stdin") == 0) {
+              if (UNLIKELY(strcmp(O.outfilename, "stdin") == 0)) {
                 csound->Message(csound, Str("-o cannot be stdin\n"));
                 return -1;
               }
@@ -303,19 +303,19 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
               for ( ; *s != '\0'; s++) ;
               break;
             case 'A':
-              if (O.filetyp == TYP_WAV)
+              if (UNLIKELY(O.filetyp == TYP_WAV))
                 csound->Warning(csound,
                                 Str("-A overriding local default WAV out"));
               O.filetyp = TYP_AIFF;    /* AIFF output request*/
               break;
             case 'J':
-              if (O.filetyp == TYP_AIFF || O.filetyp == TYP_WAV)
+              if (UNLIKELY(O.filetyp == TYP_AIFF || O.filetyp == TYP_WAV))
                 csound->Warning(csound, Str("-J overriding local default "
                                             "AIFF/WAV out"));
               O.filetyp = TYP_IRCAM;   /* IRCAM output request */
               break;
             case 'W':
-              if (O.filetyp == TYP_AIFF)
+              if (UNLIKELY(O.filetyp == TYP_AIFF))
                 csound->Warning(csound,
                                 Str("-W overriding local default AIFF out"));
               O.filetyp = TYP_WAV;      /* WAV output request */
@@ -447,16 +447,16 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         }
       }
     }
-    if (infile == NULL) {
+    if (UNLIKELY(infile == NULL)) {
       csound->Message(csound, Str("dnoise: no input file\n"));
       return dnoise_usage(csound, -1);
     }
-    if (nfile == NULL) {
+    if (UNLIKELY(nfile == NULL)) {
       csound->Message(csound, Str("Must have an example noise file (-i name)\n"));
       return -1;
     }
-    if ((inf = csound->SAsndgetset(csound, infile, &p, &beg_time,
-                                   &input_dur, &sr, channel)) == NULL) {
+    if (UNLIKELY((inf = csound->SAsndgetset(csound, infile, &p, &beg_time,
+                                            &input_dur, &sr, channel)) == NULL)) {
       csound->Message(csound, Str("error while opening %s"), infile);
       return -1;
     }
@@ -491,7 +491,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
       }
       else
         outfd = sf_open_fd(1, SFM_WRITE, &sfinfo, 1);
-      if (outfd == NULL) {
+      if (UNLIKELY(outfd == NULL)) {
         csound->Message(csound, Str("cannot open %s."), O.outfilename);
         return -1;
       }
@@ -511,20 +511,20 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
       Chans = (int) p->nchanls;
     p->nchanls = Chans;
 
-    if (Chans > 2) {
+    if (UNLIKELY(Chans > 2)) {
       csound->Message(csound, Str("dnoise: input MUST be mono or stereo\n"));
       return -1;
     }
 
     /* read noise reference file */
 
-    if ((fp = csound->SAsndgetset(csound, nfile, &pn, &beg_ntime,
-                                  &input_ndur, &srn, channel)) == NULL) {
+    if (UNLIKELY((fp = csound->SAsndgetset(csound, nfile, &pn, &beg_ntime,
+                                           &input_ndur, &srn, channel)) == NULL)) {
       csound->Message(csound, Str("dnoise: cannot open noise reference file\n"));
       return -1;
     }
 
-    if (sr != srn) {
+    if (UNLIKELY(sr != srn)) {
       csound->Message(csound, Str("Incompatible sample rates\n"));
       return -1;
     }
@@ -542,7 +542,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
     for (i = 1; i < 4096; i *= 2)
       if (i >= N)
         break;
-    if (i != N)
+    if (UNLIKELY(i != N))
       csound->Message(csound,
                       Str("dnoise: warning - N not a valid power of two; "
                           "revised N = %d\n"),i);
@@ -557,7 +557,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
     Ninv = FL(1.0) / N;
 
     if (W != -1) {
-      if (M != 0)
+      if (UNLIKELY(M != 0))
         csound->Message(csound,
                         Str("dnoise: warning - do not specify both M and W\n"));
       else if (W == 0)
@@ -582,7 +582,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
     if ((L%2) == 0)
       Leven = 1;
 
-    if (M < 7) {
+    if (UNLIKELY(M < 7)) {
       csound->Message(csound, Str("dnoise: warning - M is too small\n"));
       exit(~1);
     }
@@ -593,13 +593,13 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
 
     lj = (long) M + 3 * (long) D;
     lj *= (long) Chans;
-    if (lj > 32767) {
+    if (UNLIKELY(lj > 32767)) {
       csound->Message(csound, Str("dnoise: M too large\n"));
       return -1;
     }
     lj = (long) L + 3 * (long) I;
     lj *= (long) Chans;
-    if (lj > 32767) {
+    if (UNLIKELY(lj > 32767)) {
       csound->Message(csound, Str("dnoise: L too large\n"));
       return -1;
     }
@@ -633,8 +633,9 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         window is renormalized so that the phase vocoder amplitude
         estimates are properly scaled.  */
 
-    if ((aWin = (MYFLT*) csound->Calloc(csound,
-                                        (M+Meven) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((aWin =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (M+Meven) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
@@ -672,8 +673,9 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         scale factor), and both are even in length.  If N < M,
         then an interpolating synthesis window is used. */
 
-    if ((sWin = (MYFLT*) csound->Calloc(csound,
-                                        (L+Leven) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((sWin =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (L+Leven) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
@@ -723,12 +725,14 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         then nextIn jumps back to the beginning, and the old
         values are written over. */
 
-    if ((ibuf1 = (MYFLT *) csound->Calloc(csound,
-                                          ibuflen * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((ibuf1 =
+                  (MYFLT *) csound->Calloc(csound,
+                                           ibuflen * sizeof(MYFLT))) == NULL)) {
       ERR("dnoise: insufficient memory\n");
     }
-    if ((ibuf2 = (MYFLT *) csound->Calloc(csound,
-                                          ibuflen * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((ibuf2 =
+                  (MYFLT *) csound->Calloc(csound,
+                                           ibuflen * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
@@ -738,19 +742,22 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         of the buffer to zero.  When nextOut reaches the end of
         the buffer, it jumps back to the beginning.  */
 
-    if ((obuf1 = (MYFLT*) csound->Calloc(csound,
-                                         obuflen * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((obuf1 =
+                  (MYFLT*) csound->Calloc(csound,
+                                          obuflen * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
-    if ((obuf2 = (MYFLT*) csound->Calloc(csound,
-                                         obuflen * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((obuf2 =
+                  (MYFLT*) csound->Calloc(csound,
+                                          obuflen * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
     /* set up analysis buffer for (N/2 + 1) channels: The input is real,
         so the other channels are redundant. */
 
-    if ((fbuf = (MYFLT*) csound->Calloc(csound, Np2 * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((fbuf =
+                  (MYFLT*) csound->Calloc(csound, Np2 * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
@@ -759,53 +766,58 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
         averaging them all together.  Multiply by th*th to
         establish threshold for noise-gating in each bin. */
 
-    if ((nref = (MYFLT*) csound->Calloc(csound,
-                                        (N2 + 1) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((nref =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (N2 + 1) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
-    if ((mbuf = (MYFLT*) csound->Calloc(csound,
-                                        (m * Np2) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((mbuf =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (m * Np2) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
-    if ((nbuf = (MYFLT*) csound->Calloc(csound,
-                                        (m * Np2) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((nbuf =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (m * Np2) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
-    if ((rsum = (MYFLT*) csound->Calloc(csound,
-                                        (N2 + 1) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((rsum =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (N2 + 1) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
-    if ((ssum = (MYFLT*) csound->Calloc(csound,
-                                        (N2 + 1) * sizeof(MYFLT))) == NULL) {
+    if (UNLIKELY((ssum =
+                  (MYFLT*) csound->Calloc(csound,
+                                          (N2 + 1) * sizeof(MYFLT))) == NULL)) {
       ERR(Str("dnoise: insufficient memory\n"));
     }
 
     /* skip over nMin samples */
     while (nMin > (long)ibuflen) {
-      if (!csound->CheckEvents(csound))
+      if (UNLIKELY(!csound->CheckEvents(csound)))
         csound->LongJmp(csound, 1);
       nread = csound->getsndin(csound, fp, ibuf1, ibuflen, pn);
       for(i=0; i < nread; i++)
         ibuf1[i] *= 1.0/csound->Get0dBFS(csound);
-      if (nread < ibuflen) {
+      if (UNLIKELY(nread < ibuflen)) {
         ERR(Str("dnoise: begin time is greater than EOF of noise file!"));
       }
       nMin -= (long) ibuflen;
     }
-    if (!csound->CheckEvents(csound))
+    if (UNLIKELY(!csound->CheckEvents(csound)))
       csound->LongJmp(csound, 1);
     i = (int) nMin;
     nread = csound->getsndin(csound, fp, ibuf1, i, pn);
     for(i=0; i < nread; i++)
         ibuf1[i] *= 1.0/csound->Get0dBFS(csound);
-    if (nread < i) {
+    if (UNLIKELY(nread < i)) {
       ERR(Str("dnoise: begin time is greater than EOF of noise file!"));
     }
     k = 0;
     lj = Beg;  /* single channel only */
     while (lj < End) {
-      if (!csound->CheckEvents(csound))
+      if (UNLIKELY(!csound->CheckEvents(csound)))
         csound->LongJmp(csound, 1);
       lj += (long) N;
       nread = csound->getsndin(csound, fp, fbuf, N, pn);
@@ -832,7 +844,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
       }
       k++;
     }
-    if (k == 0) {
+    if (UNLIKELY(k == 0)) {
       ERR(Str("dnoise: not enough samples of noise reference\n"));
     }
     fac = th * th / k;
@@ -848,7 +860,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
     /* f = ibuf1; */
     /* for (i = 0; i < ibuflen; i++, f++) */
     /*   *f = FL(0.0); */
-    if (!csound->CheckEvents(csound))
+    if (UNLIKELY(!csound->CheckEvents(csound)))
       csound->LongJmp(csound, 1);
     /* fill ibuf2 to start */
     nread = csound->getsndin(csound, inf, ibuf2, ibuflen, p);
@@ -896,7 +908,7 @@ static int dnoise(CSOUND *csound, int argc, char **argv)
     /*                         always begin writing to ob1 */
 
         if (ibs >= ibuflen) {    /* done reading from ib1 */
-          if (!csound->CheckEvents(csound))
+          if (UNLIKELY(!csound->CheckEvents(csound)))
             csound->LongJmp(csound, 1);
           /* swap buffers */
           ib0 = ib1;
@@ -1219,14 +1231,14 @@ static int writebuffer(CSOUND *csound, SNDFILE *outfd,
 {
     int     n;
 
-    if (outfd == NULL) return 0;
+    if (UNLIKELY(outfd == NULL)) return 0;
     n = sf_write_MYFLT(outfd, outbuf, nsmps);
-    if (n < nsmps) {
+    if (UNLIKELY(n < nsmps)) {
       sf_close(outfd);
       sndwrterr(csound, n, nsmps);
       return -1;
     }
-    if (O->rewrt_hdr)
+    if (UNLIKELY(O->rewrt_hdr))
       csound->rewriteheader(outfd);
 
     (*nrecs)++;                 /* JPff fix */
diff --git a/util/envext.c b/util/envext.c
index d9be590..e066f4f 100644
--- a/util/envext.c
+++ b/util/envext.c
@@ -37,7 +37,7 @@
 
 #define SHORTMAX 32767.0
 #define FIND(MSG)   if (*s == '\0')  \
-    if (!(--argc) || ((s = *++argv) && *s == '-')) {     \
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-'))) {          \
       csound->Message(csound, MSG); csound->LongJmp(csound, 1); }
 
 /* Static function prototypes */
@@ -73,7 +73,7 @@ static int envext(CSOUND *csound, int argc, char **argv)
     memset(&OO, 0, sizeof(OO));
 
     /* Check arguments */
-    if (!(--argc))
+    if (UNLIKELY(!(--argc)))
       envext_usage(csound, Str("Insufficient arguments"));
     do {
       s = *++argv;
@@ -93,7 +93,7 @@ static int envext(CSOUND *csound, int argc, char **argv)
           default:
             envext_usage(csound, Str("unknown flag -%c"), c);
           }
-      else if (inputfile == NULL) {
+      else if (LIKELY(inputfile == NULL)) {
         inputfile = --s;
       }
       else envext_usage(csound, Str("too many arguments"));
diff --git a/util/het_export.c b/util/het_export.c
index 0b8027b..f1b1620 100644
--- a/util/het_export.c
+++ b/util/het_export.c
@@ -52,12 +52,12 @@ static int het_export(CSOUND *csound, int argc, char **argv)
       return 1;
     }
     inf = csound->ldmemfile2withCB(csound, argv[1], CSFTYPE_HETRO,NULL);
-    if (inf == NULL) {
+    if (UNLIKELY(inf == NULL)) {
       csound->Message(csound, Str("Cannot open input file %s\n"), argv[1]);
       return 1;
     }
     outf = fopen(argv[2], "w");
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       csound->Message(csound, Str("Cannot open output file %s\n"), argv[2]);
       return 1;
     }
diff --git a/util/het_import.c b/util/het_import.c
index 29e211e..e22b88d 100644
--- a/util/het_import.c
+++ b/util/het_import.c
@@ -51,7 +51,7 @@ int16 getnum(FILE* inf, char *term)
     int  cc;
     int p = 0;
     while ((cc=getc(inf))!=',' && cc!='\n' && p<15) {
-        if (cc == EOF) {
+      if (UNLIKELY(cc == EOF)) {
             *term = '\0';
             return 0;
         }
@@ -68,18 +68,18 @@ static int het_import(CSOUND *csound, int argc, char **argv)
     FILE *outf;
     int c;
 
-    if (argc!= 3) {
+    if (UNLIKELY(argc!= 3)) {
       het_import_usage(csound);
       return 1;
     }
 
     infd = fopen(argv[1], "r");
-    if (infd == NULL) {
+    if (UNLIKELY(infd == NULL)) {
       csound->Message(csound, Str("Cannot open input comma file %s\n"), argv[1]);
       return 1;
     }
     outf = fopen(argv[2], "wb");
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       csound->Message(csound, Str("Cannot open output hetro file %s\n"), argv[2]);
       fclose(infd);
       return 1;
@@ -89,7 +89,7 @@ static int het_import(CSOUND *csound, int argc, char **argv)
       char buf[6];
       int i;
       for (i=0; i<4; i++) buf[i]=(char)getc(infd);
-      if (strncmp(buf, "ETRO", 4)!=0) {
+      if (UNLIKELY(strncmp(buf, "ETRO", 4)!=0)) {
         csound->Message(csound, Str("Not an hetro anaysis file %s\n"), argv[1]);
         fclose(infd); fclose(outf);
         return 1;
diff --git a/util/hetro.c b/util/hetro.c
index 1355372..1744729 100644
--- a/util/hetro.c
+++ b/util/hetro.c
@@ -114,8 +114,8 @@ static  int     quit(CSOUND *, char *);
 #define u(x)    (x>0.0 ? 1 : 0)
 
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-'))  \
-                            return quit(csound, MSG);
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))    \
+      return quit(csound, MSG);
 
 static void init_het(HET *thishet)
 {
@@ -150,7 +150,7 @@ static int hetro(CSOUND *csound, int argc, char **argv)
  /* csound->dbfs_to_float = csound->e0dbfs = FL(1.0);   Needed ? */
     init_het(thishet);
 
-    if (!(--argc)) {
+    if (UNLIKELY(!(--argc))) {
       return quit(csound,Str("no arguments"));
     }
     do {
@@ -196,10 +196,10 @@ static int hetro(CSOUND *csound, int argc, char **argv)
         case 'h':
           FIND(Str("no harmonic count"))
           sscanf(s,"%hd",&thishet->hmax);
-          if (thishet->hmax > HMAX)
+          if (UNLIKELY(thishet->hmax > HMAX))
             csound->Message(csound,Str("over %d harmonics but continuing"),
                             HMAX);
-          if (thishet->hmax < 1) {
+          if (UNLIKELY(thishet->hmax < 1)) {
             csound->Message(csound,Str("h of %d too low, reset to 1\n"),
                             thishet->hmax);
                 thishet->hmax = 1;
@@ -241,21 +241,21 @@ static int hetro(CSOUND *csound, int argc, char **argv)
       else break;
     } while (--argc);
 
-    if (argc != 2)
+    if (UNLIKELY(argc != 2))
       return quit(csound, Str("incorrect number of filenames"));
     thishet->infilnam = *argv++;
     thishet->outfilnam = *argv;
 
-    if (thishet->freq_c > 1)
+    if (UNLIKELY(thishet->freq_c > 1))
       csound->Message(csound, Str("Filter cutoff freq. = %f\n"),
                               thishet->freq_c);
 
-    if ((thishet->input_dur < 0) || (thishet->beg_time < 0))
+    if (UNLIKELY((thishet->input_dur < 0) || (thishet->beg_time < 0)))
       return quit(csound,Str("input and begin times cannot be less than zero"));
     /* open sndfil, do skiptime */
-    if ((infd = csound->SAsndgetset(csound, thishet->infilnam, &p,
+    if (UNLIKELY((infd = csound->SAsndgetset(csound, thishet->infilnam, &p,
                                     &thishet->beg_time, &thishet->input_dur,
-                                    &thishet->sr, channel)) == NULL) {
+                                             &thishet->sr, channel)) == NULL)) {
       char errmsg[256];
       snprintf(errmsg, 256, Str("Cannot open %s"), thishet->infilnam);
       return quit(csound, errmsg);
@@ -264,8 +264,9 @@ static int hetro(CSOUND *csound, int argc, char **argv)
     /* alloc for MYFLTs */
     thishet->auxp = (MYFLT*) csound->Malloc(csound, nsamps * sizeof(MYFLT));
     /* & read them in */
-    if ((thishet->smpsin = csound->getsndin(csound, infd,
-                                            thishet->auxp, nsamps, p)) <= 0) {
+    if (UNLIKELY((thishet->smpsin =
+                  csound->getsndin(csound, infd,
+                                   thishet->auxp, nsamps, p)) <= 0)) {
       char errmsg[256];
       csound->Message(csound, "smpsin = %ld\n", (long) thishet->smpsin);
       snprintf(errmsg, 256, Str("Read error on %s\n"), thishet->infilnam);
@@ -277,13 +278,13 @@ static int hetro(CSOUND *csound, int argc, char **argv)
 #if INCSDIF
     /* RWD no limit for SDIF files! */
     if (is_sdiffile(thishet->outfilnam)) {
-      if (thishet->num_pts >= nsamps - thishet->windsiz)
+      if (UNLIKELY(thishet->num_pts >= nsamps - thishet->windsiz))
         return quit(csound, Str("number of output points is too great"));
     }
     else
 #endif
-      if (thishet->num_pts > 32767 ||
-          thishet->num_pts >= nsamps - thishet->windsiz)
+      if (UNLIKELY(thishet->num_pts > 32767 ||
+                   thishet->num_pts >= nsamps - thishet->windsiz))
         return quit(csound, Str("number of output points is too great"));
     thishet->delta_t = FL(1.0)/thishet->sr;
     thishet->t = FL(1.0)/thishet->fund_est;
@@ -353,7 +354,7 @@ static int hetro(CSOUND *csound, int argc, char **argv)
 #if INCSDIF
     /* RWD if extension is .sdif, write as 1TRC frames */
     if (is_sdiffile(thishet->outfilnam)) {
-      if (!writesdif(csound,thishet)) {
+      if (UNLIKELY(!writesdif(csound,thishet))) {
         csound->Message(csound, Str("Unable to write to SDIF file\n"));
         retval = -1;
       }
@@ -611,12 +612,12 @@ static int filedump(HET *thishet, CSOUND *csound)
 
     /* fullpath else cur dir */
     if (thishet->newformat) {
-      if (csound->FileOpen2(csound, &ff, CSFILE_STD, thishet->outfilnam,
-                              "w", "", CSFTYPE_HETROT, 0) == NULL)
+      if (UNLIKELY(csound->FileOpen2(csound, &ff, CSFILE_STD, thishet->outfilnam,
+                                     "w", "", CSFTYPE_HETROT, 0) == NULL))
       return quit(csound, Str("cannot create output file\n"));
     } else
-      if (csound->FileOpen2(csound, &ofd, CSFILE_FD_W, thishet->outfilnam,
-                            NULL, "", CSFTYPE_HETRO, 0) == NULL)
+      if (UNLIKELY(csound->FileOpen2(csound, &ofd, CSFILE_FD_W, thishet->outfilnam,
+                                     NULL, "", CSFTYPE_HETRO, 0) == NULL))
         return quit(csound, Str("cannot create output file\n"));
 
     if (thishet->newformat)
@@ -779,7 +780,7 @@ static int writesdif(CSOUND *csound, HET *thishet)
     SDIF_MatrixHeader mh;
     FILE        *sdiffile = NULL;
 
-    if (SDIF_Init() != ESDIF_SUCCESS) {
+    if (UNLIKELY(SDIF_Init() != ESDIF_SUCCESS)) {
       csound->Message(csound,
                       Str("OOPS: SDIF does not work on this machine!\n"));
       return 0;
@@ -805,7 +806,8 @@ static int writesdif(CSOUND *csound, HET *thishet)
       }
     }
 
-    if ((r = SDIF_OpenWrite(thishet->outfilnam, &sdiffile))!=ESDIF_SUCCESS) {
+    if (UNLIKELY((r =
+                  SDIF_OpenWrite(thishet->outfilnam, &sdiffile))!=ESDIF_SUCCESS)) {
       /* can get SDIF error messages, but trickly for CSTRINGS */
       csound->Message(csound,Str("Error creating %s\n"),thishet->outfilnam);
       fclose(sdiffile);
@@ -834,7 +836,7 @@ static int writesdif(CSOUND *csound, HET *thishet)
       sdif_float32 amp,freq,phase = 0.0f;
       /* cannot offer anything interesting with phase! */
       head.time = (sdif_float32) ((MYFLT)i * timesiz);
-      if ((r = SDIF_WriteFrameHeader(&head,sdiffile))!=ESDIF_SUCCESS) {
+      if (UNLIKELY((r = SDIF_WriteFrameHeader(&head,sdiffile))!=ESDIF_SUCCESS)) {
         csound->Message(csound,Str("Error writing SDIF frame header.\n"));
         return 0;
       }
@@ -843,7 +845,7 @@ static int writesdif(CSOUND *csound, HET *thishet)
       mh.columnCount = 4;
       SDIF_Copy4Bytes(mh.matrixType,"1TRC");
       mh.matrixDataType = SDIF_FLOAT32;
-      if ((r = SDIF_WriteMatrixHeader(&mh,sdiffile))!=ESDIF_SUCCESS) {
+      if (UNLIKELY((r = SDIF_WriteMatrixHeader(&mh,sdiffile))!=ESDIF_SUCCESS)) {
         csound->Message(csound,Str("Error writing SDIF matrix header.\n"));
         return 0;
       }
@@ -853,10 +855,10 @@ static int writesdif(CSOUND *csound, HET *thishet)
         index = (sdif_float32)(j+1);
         amp = (sdif_float32) thishet->MAGS[j][i];
         freq = (sdif_float32) thishet->FREQS[j][i];
-        if (((r = SDIF_Write4(&index,1,sdiffile))!= ESDIF_SUCCESS) ||
-            ((r = SDIF_Write4(&freq,1,sdiffile))!= ESDIF_SUCCESS)  ||
-            ((r = SDIF_Write4(&amp,1,sdiffile))!= ESDIF_SUCCESS)   ||
-            ((r = SDIF_Write4(&phase,1,sdiffile))!= ESDIF_SUCCESS)) {
+        if (UNLIKELY(((r = SDIF_Write4(&index,1,sdiffile))!= ESDIF_SUCCESS) ||
+                     ((r = SDIF_Write4(&freq,1,sdiffile))!= ESDIF_SUCCESS)  ||
+                     ((r = SDIF_Write4(&amp,1,sdiffile))!= ESDIF_SUCCESS)   ||
+                     ((r = SDIF_Write4(&phase,1,sdiffile))!= ESDIF_SUCCESS))) {
           csound->Message(csound,Str("Error writing SDIF data.\n"));
           return 0;
         }
diff --git a/util/lpanal.c b/util/lpanal.c
index a28e4a4..67da888 100644
--- a/util/lpanal.c
+++ b/util/lpanal.c
@@ -87,8 +87,8 @@ static  MYFLT   getpch(CSOUND *, MYFLT *, LPANAL_GLOBALS*);
 
 /* Search for an argument and report of not found */
 #define FIND(MSG)   if (*s == '\0')  \
-                      if (!(--argc) || (((s = *++argv)!=0) && *s == '-'))  \
-                        lpdieu(csound, MSG);
+    if (UNLIKELY(!(--argc) || (((s = *++argv)!=0) && *s == '-')))       \
+      lpdieu(csound, MSG);
 
 #include <math.h>
 #include <stdio.h>
@@ -127,7 +127,7 @@ static void polyzero(int n, double *a, double *zerore, double *zeroim,
 
     /* for (i=0; i<=n; i++) */
     /*   work[i+1] = a[i]; */
-    memcpy(work+1, a, (n+1)*sizeof(double));
+    memcpy(&work[1], a, (n+1)*sizeof(double));
     *indic = 0;
     *pt = 0;
     n1 = n;
@@ -402,7 +402,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
     storePoles = FALSE;
 
    /* Parse argument until no more found %-( */
-    if (!(--argc))
+    if (UNLIKELY(!(--argc)))
       lpdieu(csound, Str("insufficient arguments"));
     do {
       char *s = *++argv;
@@ -482,26 +482,26 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
 
     /* Do some checks on arguments we got */
 
-    if (argc != 2)
+    if (UNLIKELY(argc != 2))
       lpdieu(csound, Str("incorrect number of filenames"));
     infilnam = *argv++;
     outfilnam = *argv;
-    if (lpc.poleCount > MAXPOLES)
+    if (UNLIKELY(lpc.poleCount > MAXPOLES))
       quit(csound,Str("poles exceeds maximum allowed"));
     /* Allocate space now */
     coef = (MYFLT*) csound->Malloc(csound, (NDATA+lpc.poleCount*2)*sizeof(MYFLT));
     /* Space allocated */
-    if (slice < lpc.poleCount * 5)
+    if (UNLIKELY(slice < lpc.poleCount * 5))
       csound->Warning(csound,Str("hopsize may be too small, "
                                  "recommend at least poleCount * 5\n"));
 
-    if ((lpc.WINDIN = slice * 2) > MAXWINDIN)
+    if (UNLIKELY((lpc.WINDIN = slice * 2) > MAXWINDIN))
       quit(csound,Str("input framesize (inter-frame-offset*2) exceeds "
                       "maximum allowed"));
-    if ((input_dur < 0) || (beg_time < 0))
+    if (UNLIKELY((input_dur < 0) || (beg_time < 0)))
       quit(csound,Str("input and begin times cannot be less than zero"));
 
-    if (lpc.verbose) {
+    if (UNLIKELY(lpc.verbose)) {
       csound->Message(csound,
                       Str("Reading sound from %s, writing lpfile to %s\n"),
                       infilnam, outfilnam);
@@ -516,7 +516,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
                         pchlow,pchhigh);
       else csound->Message(csound,Str("pitch tracking inhibited\n"));
     }
-    if ((input_dur < 0) || (beg_time < 0))
+    if (UNLIKELY((input_dur < 0) || (beg_time < 0)))
       quit(csound,Str("input and begin times cannot be less than zero"));
 
     if (storePoles)
@@ -528,8 +528,8 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
     lpg = (LPANAL_GLOBALS*) csound->Calloc(csound, sizeof(LPANAL_GLOBALS));
     lpg->firstcall = 1;
 
-    if ((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
-                                    &input_dur, &sr, channel)) == NULL) {
+    if (UNLIKELY((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
+                                             &input_dur, &sr, channel)) == NULL)) {
       char errmsg[256];
       snprintf(errmsg,256,Str("error while opening %s"), infilnam);
       quit(csound, errmsg);
@@ -537,12 +537,12 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
 
     /* Try to open output file */
     if (new_format) {
-      if (csound->FileOpen2(csound, &oFd, CSFILE_STD,
-                            outfilnam, "w", "", CSFTYPE_LPC, 0) == NULL)
-      quit(csound, Str("cannot create output file"));
+      if (UNLIKELY(csound->FileOpen2(csound, &oFd, CSFILE_STD,
+                                     outfilnam, "w", "", CSFTYPE_LPC, 0) == NULL))
+        quit(csound, Str("cannot create output file"));
     }
-    else if (csound->FileOpen2(csound, &ofd, CSFILE_FD_W,
-                          outfilnam, NULL, "", CSFTYPE_LPC, 0) == NULL)
+    else if (UNLIKELY(csound->FileOpen2(csound, &ofd, CSFILE_FD_W, outfilnam,
+                                        NULL, "", CSFTYPE_LPC, 0) == NULL))
       quit(csound, Str("cannot create output file"));
 
     /* Prepare header */
@@ -581,7 +581,8 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
     sigbuf2 = sigbuf + slice;
 
     /* Try to read first frame in buffer */
-    if ((n = csound->getsndin(csound, infd, sigbuf, lpc.WINDIN, p)) < lpc.WINDIN)
+    if (UNLIKELY((n = csound->getsndin(csound, infd, sigbuf, lpc.WINDIN, p)) <
+                 lpc.WINDIN))
       quit(csound,Str("soundfile read error, could not fill first frame"));
 
     /* initialize frame pitch table ? */
@@ -656,7 +657,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
         polyzero(lpc.poleCount,filterCoef,polePart1,polePart2,
                  &poleFound,2000,&indic,workArray1);
 
-        if (poleFound<lpc.poleCount) {
+        if (UNLIKELY(poleFound<lpc.poleCount)) {
           csound->Message(csound,
                           Str("Found only %d poles...sorry\n"), poleFound);
           csound->Message(csound,
@@ -680,7 +681,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
 #ifdef TRACE_FILTER
           csound->Message(csound, "filterCoef: %f\n", filterCoef[i]);
 #endif
-          if (filterCoef[i]-polyReal[lpc.poleCount-i]>1e-10)
+          if (UNLIKELY(filterCoef[i]-polyReal[lpc.poleCount-i]>1e-10))
             csound->Message(csound, Str("Error in coef %d : %f <> %f \n"),
                                     i, filterCoef[i], polyReal[lpc.poleCount-i]);
         }
@@ -733,7 +734,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
           #endif
       }
       else
-        if ((nb = write(ofd, (char *)coef, osiz)) != osiz)
+        if (UNLIKELY((nb = write(ofd, (char *)coef, osiz)) != osiz))
           quit(csound, Str("write error"));
       memcpy(sigbuf, sigbuf2, sizeof(MYFLT)*slice);
 
@@ -745,7 +746,7 @@ static int lpanal(CSOUND *csound, int argc, char **argv)
       /* Get next sound frame */
       if ((n = csound->getsndin(csound, infd, sigbuf2, slice, p)) == 0)
         break;          /* refill til EOF */
-      if (!csound->CheckEvents(csound))
+      if (UNLIKELY(!csound->CheckEvents(csound)))
         return -1;
     } while (counter < analframes); /* or nsmps done */
 #if 0
diff --git a/util/lpc_export.c b/util/lpc_export.c
index 561c242..41e254f 100644
--- a/util/lpc_export.c
+++ b/util/lpc_export.c
@@ -52,23 +52,23 @@ static int lpc_export(CSOUND *csound, int argc, char **argv)
     char *str;
     MYFLT *coef;
 
-    if (argc!= 3) {
+    if (UNLIKELY(argc!= 3)) {
       lpc_export_usage(csound);
       return 1;
     }
     inf = fopen(argv[1], "rb");
-    if (inf == NULL) {
+    if (UNLIKELY(inf == NULL)) {
       csound->Message(csound, Str("Cannot open input file %s\n"), argv[1]);
       return 1;
     }
     outf = fopen(argv[2], "w");
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       csound->Message(csound, Str("Cannot open output file %s\n"), argv[2]);
       fclose(inf);
       return 1;
     }
-    if (fread(&hdr, sizeof(LPHEADER)-4, 1, inf) != 1 ||
-        (hdr.lpmagic != LP_MAGIC && hdr.lpmagic != LP_MAGIC2)) {
+    if (UNLIKELY(fread(&hdr, sizeof(LPHEADER)-4, 1, inf) != 1 ||
+                 (hdr.lpmagic != LP_MAGIC && hdr.lpmagic != LP_MAGIC2))) {
       csound->Message(csound, Str("Failed to read LPC header\n"));
       fclose(inf);
       fclose(outf);
@@ -79,9 +79,11 @@ static int lpc_export(CSOUND *csound, int argc, char **argv)
             hdr.framrate, hdr.srate, hdr.duration);
     if (UNLIKELY(hdr.npoles<=0)) { fclose(inf); fclose(outf); return 1; }
     // to keep coverity happy
-    if (hdr.headersize>0x40000000 ||
+    if (UNLIKELY(hdr.headersize>0x40000000 ||
         hdr.headersize<sizeof(LPHEADER) ||
-        hdr.npoles+hdr.nvals > 0x10000000) { fclose(inf); fclose(outf); return 2;}
+                 hdr.npoles+hdr.nvals > 0x10000000)) {
+      fclose(inf); fclose(outf); return 2;
+    }
     str = (char *)csound->Malloc(csound,hdr.headersize-sizeof(LPHEADER)+4);
     if (UNLIKELY(str==NULL)) {
         fclose(inf); fclose(outf); return 2;}
diff --git a/util/lpc_import.c b/util/lpc_import.c
index 6e78384..9b6e48f 100644
--- a/util/lpc_import.c
+++ b/util/lpc_import.c
@@ -48,23 +48,23 @@ static int lpc_import(CSOUND *csound, int argc, char **argv)
     char *str;
     MYFLT *coef;
 
-    if (argc != 3) {
+    if (UNLIKELY(argc != 3)) {
       lpc_import_usage(csound);
       return 1;
     }
     inf = fopen(argv[1], "rb");
-    if (inf == NULL) {
+    if (UNLIKELY(inf == NULL)) {
       fprintf(stderr, Str("Cannot open input file %s\n"), argv[1]);
       return 1;
     }
     outf = fopen(argv[2], "w");
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       csound->Message(csound, Str("Cannot open output file %s\n"), argv[2]);
       fclose(inf);
       return 1;
     }
-    if (fread(&hdr, sizeof(LPHEADER)-4, 1, inf) != 1 ||
-        (hdr.lpmagic != LP_MAGIC && hdr.lpmagic != LP_MAGIC2)) {
+    if (UNLIKELY(fread(&hdr, sizeof(LPHEADER)-4, 1, inf) != 1 ||
+                 (hdr.lpmagic != LP_MAGIC && hdr.lpmagic != LP_MAGIC2))) {
       csound->Message(csound, Str("Failed to read LPC header\n"));
       fclose(outf);
       fclose(inf);
diff --git a/util/mixer.c b/util/mixer.c
index aa704a3..00870f6 100755
--- a/util/mixer.c
+++ b/util/mixer.c
@@ -44,8 +44,8 @@
 #define NUMBER_OF_FILES   (32)
 
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-')) \
-                            csound->Die(csound, Str("mixer: error: %s"), MSG);
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))            \
+      csound->Die(csound, Str("mixer: error: %s"), MSG);
 
 typedef struct scalepoint {
     MYFLT y0;
@@ -195,7 +195,7 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
     mixin[n].factor = FL(1.0); mixin[n].non_clear = 0;
     mixin[n].fulltable = NULL; mixin[n].use_table = 0;
     for (i=1; i<5; i++) mixin[n].channels[i] = 0;
-    if (!(--argc))
+    if (UNLIKELY(!(--argc)))
       usage(csound,Str("Insufficient arguments"));
     do {
       s = *++argv;
@@ -206,10 +206,10 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
             FIND(Str("no outfilename"))
             O.outfilename = s;         /* soundout name */
             for ( ; *s != '\0'; s++) ;
-            if (strcmp(O.outfilename, "stdin") == 0)
+            if (UNLIKELY(strcmp(O.outfilename, "stdin") == 0))
               csound->Die(csound, Str("mixer: -o cannot be stdin"));
 #if defined(WIN32)
-            if (strcmp(O.outfilename,"stdout") == 0) {
+            if (UNLIKELY(strcmp(O.outfilename,"stdout") == 0)) {
               csound->Die(csound, Str("mixer: stdout audio not supported"));
             }
 #endif
@@ -238,7 +238,7 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
             FIND(Str("no start sample"));
             mixin[n].start = atoi(s);
             while (*++s);
-            if (mixin[n].time >= FL(0.0)) {
+            if (UNLIKELY(mixin[n].time >= FL(0.0))) {
               csound->Warning(csound, Str("-S overriding -T"));
               mixin[n].time = -FL(1.0);
             }
@@ -247,7 +247,7 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
             FIND(Str("no start time"));
             mixin[n].time = (MYFLT) atof(s);
             while (*++s);
-            if (mixin[n].start >= 0) {
+            if (UNLIKELY(mixin[n].start >= 0)) {
               csound->Warning(csound, Str("-T overriding -S"));
               mixin[n].start = -1;
             }
@@ -273,7 +273,7 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
               FIND(Str("no destination channel number"));
               dst = atoi(s);
               while (*++s);
-              if (src > 4 || src < 1 || dst > 4 || dst < 1) {
+              if (UNLIKELY(src > 4 || src < 1 || dst > 4 || dst < 1)) {
                 csound->Warning(csound, Str("illegal channel number ignored"));
                 break;
               }
@@ -331,19 +331,19 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
     } while (--argc);
 
     /* Read sound files */
-    if (n == 0) {
+    if (UNLIKELY(n == 0)) {
       csound->ErrorMsg(csound, Str("No mixin"));
       return -1;
     }
     for (i = 0; i < n; i++) {
-      if (!MXsndgetset(csound, &mixin[i])) {
+      if (UNLIKELY(!MXsndgetset(csound, &mixin[i]))) {
         csound->ErrorMsg(csound, Str("%s: error while opening %s"),
                                  argv[0], inputfile);
         return -1;
       }
       mixin[i].p->channel = ALLCHNLS;
       if (i>0) {
-        if (mixin[0].p->sr != mixin[i].p->sr) {
+        if (UNLIKELY(mixin[0].p->sr != mixin[i].p->sr)) {
           csound->ErrorMsg(csound, Str("Input formats not the same"));
           return -1;
         }
@@ -393,8 +393,9 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
     if (strcmp(O.outfilename, "stdout") == 0) {
       outfd = sf_open_fd(1, SFM_WRITE, &sfinfo, 0);
       if (outfd != NULL) {
-        if (csound->CreateFileHandle(csound,
-                                     &outfd, CSFILE_SND_W, "stdout") == NULL) {
+        if (UNLIKELY(csound->CreateFileHandle(csound,
+                                              &outfd, CSFILE_SND_W,
+                                              "stdout") == NULL)) {
           sf_close(outfd);
           return -1;
         }
@@ -404,12 +405,12 @@ static int mixer_main(CSOUND *csound, int argc, char **argv)
                        &sfinfo, "SFDIR", csound->type2csfiletype(O.filetyp,
                        O.outformat), 0) == NULL)
       outfd = NULL;
-    if (outfd == NULL) {
+    if (UNLIKELY(outfd == NULL)) {
       csound->ErrorMsg(csound, Str("mixer: error opening output file '%s'"),
                                O.outfilename);
       return -1;
     }
-    if (O.rewrt_hdr)
+    if (UNLIKELY(O.rewrt_hdr))
       sf_command(outfd, SFC_SET_UPDATE_HEADER_AUTO, NULL, 0);
     /* calc outbuf size & alloc bufspace */
     pp->outbufsiz = NUMBER_OF_SAMPLES * pp->outputs;
@@ -435,8 +436,8 @@ InitScaleTable(MIXER_GLOBALS *pp, int i)
     MYFLT   x, y;
     scalepoint *tt = (scalepoint*) csound->Malloc(csound, sizeof(scalepoint));
 
-    if (csound->FileOpen2(csound, &f, CSFILE_STD, mixin[i].fname,
-                           "r", NULL, CSFTYPE_FLOATS_TEXT, 0) == NULL) {
+    if (UNLIKELY(csound->FileOpen2(csound, &f, CSFILE_STD, mixin[i].fname,
+                                   "r", NULL, CSFTYPE_FLOATS_TEXT, 0) == NULL)) {
       csound->Die(csound, Str("Cannot open scale table file %s"),
                           mixin[i].fname);
       return;   /* not reached */
diff --git a/util/new_srconv.c b/util/new_srconv.c
index 9931133..373e256 100644
--- a/util/new_srconv.c
+++ b/util/new_srconv.c
@@ -63,6 +63,14 @@
 
 #define Str_noop(x) x
 
+#if !(defined(__MACH__) && (__GNUC__ == 3) && (__GNUC_MINOR__ < 2))
+#  define LIKELY(x)     __builtin_expect(!!(x),1)
+#  define UNLIKELY(x)   __builtin_expect(!!(x),0)
+#else
+#  define LIKELY(x)     x
+#  define UNLIKELY(x)   x
+#endif
+
 static int rewrt_hdr = 0, heartbeat = 0, ringbell = 0, peaks = SF_TRUE;
 static int filetyp, outformat;
 static char* outfilename = NULL;
@@ -70,7 +78,7 @@ static int block = 0;
 #define FIND(MSG)                                                   \
 {                                                                   \
     if (*s == '\0')                                                 \
-      if (!(--argc) || (((s = *argv++) != NULL) && *s == '-')) {    \
+      if (UNLIKELY(!(--argc) || (((s = *argv++) != NULL) && *s == '-'))) { \
         dieu(MSG); return -1;                                       \
       }                                                             \
 }
@@ -109,7 +117,7 @@ static void heartbeater(void)
 
 static char set_output_format(char c, char outformch, int *outformat)
 {
-    if (outformat) {
+    if (UNLIKELY(outformat)) {
       fprintf(stderr, Str("Sound format -%c has been overruled by -%c"),
               outformch, c);
     }
@@ -213,7 +221,7 @@ int main(int argc, char **argv)
             FIND(Str("no outfilename"))
             outfilename = s;         /* soundout name */
             for ( ; *s != '\0'; s++) ;
-            if (strcmp(outfilename, "stdin") == 0) {
+            if (UNLIKELY(strcmp(outfilename, "stdin") == 0)) {
               fprintf(stderr, Str("-o cannot be stdin"));
               return -1;
             }
@@ -295,7 +303,7 @@ int main(int argc, char **argv)
         return -1;
       }
     }
-    if (infile == NULL) {
+    if (UNLIKELY(infile == NULL)) {
       fprintf(stderr, Str("No input given\n"));
       usage();
       return -1;
@@ -319,12 +327,12 @@ int main(int argc, char **argv)
       break;
     }
 
-    if ((P != 0.0) && (Rout != 0.0)) {
+    if (UNLIKELY((P != 0.0) && (Rout != 0.0))) {
       strncpy(err_msg, Str("srconv: cannot specify both -r and -P"), 299);
       goto err_rtn_msg;
     }
 
-    if ((inf = sf_open(infile, SFM_READ, &sfinfo)) == NULL) {
+    if (UNLIKELY((inf = sf_open(infile, SFM_READ, &sfinfo)) == NULL)) {
       fprintf(stderr, Str("error while opening %s"), infile);
       return -1;
     }
@@ -340,24 +348,24 @@ int main(int argc, char **argv)
     //printf("P=%f, Rin=%f, Rout=%f\n", P, Rin, Rout);
 
     if (tvflg) {
-      if ((tvfp = fopen(bfile, "r")) == NULL) {
+      if (UNLIKELY((tvfp = fopen(bfile, "r")) == NULL)) {
         strncpy(err_msg,
                 Str("srconv: cannot open time-vary function file"), 299);
         goto err_rtn_msg1;
       }
-      if (fscanf(tvfp, "%d", &tvlen) != 1) {
+      if (UNLIKELY(fscanf(tvfp, "%d", &tvlen) != 1)) {
         strncpy(err_msg, Str("Read failure of warp file\n"), 299);
         fclose(tvfp);
         goto err_rtn_msg1;
       }
-      if (tvlen <= 0) {
+      if (UNLIKELY(tvlen <= 0)) {
         fclose(tvfp);
         strncpy(err_msg, Str("srconv: tvlen <= 0 "), 299);
         goto err_rtn_msg1;
       }
       warp = (WARP*) calloc((tvlen+2), sizeof(WARP));
       for (i = 0; i < tvlen; i++) {
-        if (fscanf(tvfp, "%lf %lf", &warp[i].time, &warp[i].ratio) != 2) {
+        if (UNLIKELY(fscanf(tvfp, "%lf %lf", &warp[i].time, &warp[i].ratio) != 2)) {
           strncpy(err_msg, Str("srconv: too few x-y pairs "
                                 "in time-vary function file"), 299);
           fclose(tvfp);
@@ -368,7 +376,7 @@ int main(int argc, char **argv)
       warp[tvlen].ratio = warp[tvlen-1].ratio;
       warp[tvlen].frame = flen; warp[tvlen].time = flen/Rin;
       tvlen++;
-      if (warp[0].frame != 0.0) {
+      if (UNLIKELY(warp[0].frame != 0.0)) {
         strncpy(err_msg, Str("srconv: first frame value "
                              "in time-vary function must be 0"), 299);
         goto err_rtn_msg1;
@@ -400,7 +408,7 @@ int main(int argc, char **argv)
     //printf("filetyp=%x outformat=%x\n", filetyp, outformat);
     sfinfo.format = filetyp | outformat;
     outf = sf_open(outfilename, SFM_WRITE, &sfinfo);
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       snprintf(err_msg, 299, Str("cannot open %s."), outfilename);
       goto err_rtn_msg1;
     }
@@ -423,7 +431,7 @@ int main(int argc, char **argv)
 
       if (C==0) C=1;            /* avoid silly value for buffer sizes */
       state = src_new(Q, Chans, &err); /* initialise */
-      if (state==NULL) {
+      if (UNLIKELY(state==NULL)) {
         fprintf(stderr,
                 "Error: failed to initialise SRC -- %s\n", src_strerror(err));
         sf_close(inf); sf_close(outf);
@@ -463,12 +471,12 @@ int main(int argc, char **argv)
           CC += data.input_frames; countin += data.input_frames;
         }
         err = src_process(state, &data);
-        if (err) {
+        if (UNLIKELY(err)) {
           fprintf(stderr, "srconv: error: %s\n", src_strerror(err));
           sf_close(inf); sf_close(outf);
           exit(1);
         }
-        if (data.end_of_input && data.output_frames_gen == 0) break;
+        if (UNLIKELY(data.end_of_input && data.output_frames_gen == 0)) break;
         sf_writef_float(outf, output, data.output_frames_gen);
         if (rewrt_hdr)
           sf_command(outf, SFC_UPDATE_HEADER_NOW, NULL, 0);
@@ -494,7 +502,7 @@ int main(int argc, char **argv)
       int count = 0;
 
       state = src_new(Q, Chans, &err);
-      if (state==NULL) {
+      if (UNLIKELY(state==NULL)) {
         fprintf(stderr,
                 "Error: failed to initialise SRC -- %s\n", src_strerror(err));
         sf_close(inf); sf_close(outf);
@@ -514,16 +522,16 @@ int main(int argc, char **argv)
           data.data_in = input;
         }
         err = src_process(state, &data);
-        if (err) {
+        if (UNLIKELY(err)) {
           fprintf(stderr, "srconv: error: %s\n", src_strerror(err));
           sf_close(inf); sf_close(outf); free(input); free(output);
           exit(1);
         }
-        if (data.end_of_input && data.output_frames_gen == 0) break;
+        if (UNLIKELY(data.end_of_input && data.output_frames_gen == 0)) break;
         sf_writef_float(outf, output, data.output_frames_gen);
-        if (rewrt_hdr)
+        if (UNLIKELY(rewrt_hdr))
           sf_command(outf, SFC_UPDATE_HEADER_NOW, NULL, 0);
-        if (heartbeat) heartbeater();
+        if (UNLIKELY(heartbeat)) heartbeater();
         count += data.output_frames_gen;
         data.data_in += data.input_frames_used * Chans;
         data.input_frames -= data.input_frames_used;
diff --git a/util/pv_export.c b/util/pv_export.c
index 1679aac..d6e29c7 100644
--- a/util/pv_export.c
+++ b/util/pv_export.c
@@ -53,14 +53,14 @@ static int pv_export(CSOUND *csound, int argc, char **argv)
       return 1;
     }
     inf = csound->PVOC_OpenFile(csound, argv[1], &data, &fmt);
-    if (inf<0) {
+    if (UNLIKELY(inf<0)) {
       csound->Message(csound, Str("Cannot open input file %s\n"), argv[1]);
       return 1;
     }
     if (strcmp(argv[2], "-")==0) outf=stdout;
     else
       outf = fopen(argv[2], "w");
-    if (outf == NULL) {
+    if (UNLIKELY(outf == NULL)) {
       csound->Message(csound, Str("Cannot open output file %s\n"), argv[2]);
       csound->PVOC_CloseFile(csound, inf);
       return 1;
diff --git a/util/pv_import.c b/util/pv_import.c
index a61756f..54c2ff1 100644
--- a/util/pv_import.c
+++ b/util/pv_import.c
@@ -58,26 +58,26 @@ static int pv_import(CSOUND *csound, int argc, char **argv)
     PVOCDATA data;
     WAVEFORMATEX fmt;
 
-    if (argc != 3) {
+    if (UNLIKELY(argc != 3)) {
       pv_import_usage(csound);
       return 1;
     }
     inf = fopen(argv[1], "rb");
-    if (inf == NULL) {
+    if (UNLIKELY(inf == NULL)) {
       csound->Message(csound, Str("Cannot open input file %s\n"), argv[1]);
       return 1;
     }
-    if (UNLIKELY(EOF == fscanf(inf,
+    if (UNLIKELY(UNLIKELY(EOF == fscanf(inf,
            "FormatTag,Channels,SamplesPerSec,AvgBytesPerSec,"
-                               "BlockAlign,BitsPerSample,cbSize\n"))) {
+                                        "BlockAlign,BitsPerSample,cbSize\n")))) {
       csound->Message(csound, Str("Not a PV file\n"));
       exit(1);
     }
     {
       int fmt1, fmt2, fmt3, fmt4, fmt5;
-      if (7!=fscanf(inf, "%d,%d,%d,%d,%u,%u,%d\n",
+      if (UNLIKELY(7!=fscanf(inf, "%d,%d,%d,%d,%u,%u,%d\n",
              &fmt1, &fmt2, &fmt.nSamplesPerSec,
-                    &fmt.nAvgBytesPerSec, &fmt3, &fmt4, &fmt5)) {
+                             &fmt.nAvgBytesPerSec, &fmt3, &fmt4, &fmt5))) {
         printf("ill formed inout\n");
         exit(1);
       }
@@ -119,7 +119,7 @@ static int pv_import(CSOUND *csound, int argc, char **argv)
                                      data.wWindowType, data.fWindowParam,
                                      NULL, data.dwWinlen);
     }
-    if (outf < 0) {
+    if (UNLIKELY(outf < 0)) {
       csound->Message(csound, Str("Cannot open output file %s\n"), argv[2]);
       fclose(inf);
       return 1;
@@ -129,7 +129,7 @@ static int pv_import(CSOUND *csound, int argc, char **argv)
       float *frame =
         (float*) csound->Malloc(csound, data.nAnalysisBins*2*sizeof(float));
       int i;
-      if (frame==NULL) {
+      if (UNLIKELY(frame==NULL)) {
         csound->Message(csound, Str("Memory failure\n"));
         exit(1);
       }
@@ -140,10 +140,10 @@ static int pv_import(CSOUND *csound, int argc, char **argv)
           frame[j] = getnum(inf, &term);
           if (term==EOF) goto ending;
           if (feof(inf)) goto ending;
-          if (term!=',' && term!='\n')
+          if (UNLIKELY(term!=',' && term!='\n'))
             csound->Message(csound, Str("Sync error\n"));
         }
-        if (i%100==0) csound->Message(csound, "%d\n", i);
+        if (UNLIKELY(i%100==0)) csound->Message(csound, "%d\n", i);
         csound->PVOC_PutFrames(csound, outf, frame, 1);
       }
     ending:
diff --git a/util/pvanal.c b/util/pvanal.c
index 8363f84..5c94498 100644
--- a/util/pvanal.c
+++ b/util/pvanal.c
@@ -139,8 +139,8 @@ static  int     quit(CSOUND *, char *msg);
 #define SF_UNK_LEN      -1      /* code for sndfile len unkown  */
 
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-'))  \
-                            return quit(csound, MSG);
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))    \
+      return quit(csound, MSG);
 
 #define MAXPVXCHANS     (8)
 #define DEFAULT_BUFLEN  (8192)  /* per channel */
@@ -166,92 +166,92 @@ static int pvanal(CSOUND *csound, int argc, char **argv)
     int displays = 0;
 
 
-    if (!(--argc))
+    if (UNLIKELY(!(--argc)))
       return quit(csound, Str("insufficient arguments"));
-      do {
-        char *s = *++argv;
-        if (*s++ == '-')
-          switch (*s++) {
-          case 's': FIND(Str("no sampling rate"));
+    do {
+      char *s = *++argv;
+      if (*s++ == '-')
+        switch (*s++) {
+        case 's': FIND(Str("no sampling rate"));
 #if defined(USE_DOUBLE)
-            csound->sscanf(s, "%lf", &sr);
+          csound->sscanf(s, "%lf", &sr);
 #else
-            csound->sscanf(s, "%f", &sr);
+          csound->sscanf(s, "%f", &sr);
 #endif
-            break;
-          case 'c':  FIND(Str("no channel"));
-            sscanf(s, "%d", &channel);
-            break;
-          case 'b':  FIND(Str("no begin time"));
+          break;
+        case 'c':  FIND(Str("no channel"));
+          sscanf(s, "%d", &channel);
+          break;
+        case 'b':  FIND(Str("no begin time"));
 #if defined(USE_DOUBLE)
-            csound->sscanf(s, "%lf", &beg_time);
+          csound->sscanf(s, "%lf", &beg_time);
 #else
-            csound->sscanf(s, "%f", &beg_time);
+          csound->sscanf(s, "%f", &beg_time);
 #endif
-            break;
-          case 'd':  FIND(Str("no duration time"));
+          break;
+        case 'd':  FIND(Str("no duration time"));
 #if defined(USE_DOUBLE)
-            csound->sscanf(s, "%lf", &input_dur);
+          csound->sscanf(s, "%lf", &input_dur);
 #else
-            csound->sscanf(s, "%f", &input_dur);
+          csound->sscanf(s, "%f", &input_dur);
 #endif
-            break;
-          case 'H':
-            WindowType = PVOC_HAMMING;
-            break;
-          case 'K':
-            WindowType = PVOC_KAISER;
-            break;
-          case 'B':
-            FIND(Str("no beta given"));
+          break;
+        case 'H':
+          WindowType = PVOC_HAMMING;
+          break;
+        case 'K':
+          WindowType = PVOC_KAISER;
+          break;
+        case 'B':
+          FIND(Str("no beta given"));
             csound->sscanf(s, "%lf", &beta);
             break;
-          case 'n':  FIND(Str("no framesize"));
-            sscanf(s, "%ld", &frameSize);
-            if (frameSize < MINFRMPTS || frameSize > MAXFRMPTS) {
-              snprintf(err_msg, 512, Str("frameSize must be between %d and %d"),
-                               MINFRMPTS, MAXFRMPTS);
-              return quit(csound, err_msg);
-            }
-            if (frameSize & 1L)
-              return quit(csound, Str("pvanal: frameSize must be even"));
-            break;
-          case 'w':  FIND(Str("no windfact"));
-            sscanf(s, "%d", &ovlp);
-            break;
-          case 'h':  FIND(Str("no hopsize"));
-            sscanf(s, "%ld", &frameIncr);
-            break;
-          case 'g':  displays = 1;
-            break;
-          case 'G':  FIND(Str("no latch"));
-            sscanf(s, "%d", &latch);
-            displays = 1;
+        case 'n':  FIND(Str("no framesize"));
+          sscanf(s, "%ld", &frameSize);
+          if (UNLIKELY(frameSize < MINFRMPTS || frameSize > MAXFRMPTS)) {
+            snprintf(err_msg, 512, Str("frameSize must be between %d and %d"),
+                     MINFRMPTS, MAXFRMPTS);
+            return quit(csound, err_msg);
+          }
+          if (UNLIKELY(frameSize & 1L))
+            return quit(csound, Str("pvanal: frameSize must be even"));
+          break;
+        case 'w':  FIND(Str("no windfact"));
+          sscanf(s, "%d", &ovlp);
+          break;
+        case 'h':  FIND(Str("no hopsize"));
+          sscanf(s, "%ld", &frameIncr);
+          break;
+        case 'g':  displays = 1;
             break;
-          case 'V':  FIND(Str("no output file for trace"));
-            {
-              void  *dummy = csound->FileOpen2(csound, &trfil, CSFILE_STD, s,
-                                       "w", NULL, CSFTYPE_OTHER_TEXT, 0);
-              if (dummy == NULL)
-                return quit(csound, Str("Failed to open text file"));
-              csound->Message(csound, Str("Writing text form to file %s\n"), s);
-            }
-          default:
-            return quit(csound, Str("unrecognised switch option"));
+        case 'G':  FIND(Str("no latch"));
+          sscanf(s, "%d", &latch);
+          displays = 1;
+          break;
+        case 'V':  FIND(Str("no output file for trace"));
+          {
+            void  *dummy = csound->FileOpen2(csound, &trfil, CSFILE_STD, s,
+                                             "w", NULL, CSFTYPE_OTHER_TEXT, 0);
+            if (UNLIKELY(dummy == NULL))
+              return quit(csound, Str("Failed to open text file"));
+            csound->Message(csound, Str("Writing text form to file %s\n"), s);
           }
-        else break;
-      } while (--argc);
+        default:
+          return quit(csound, Str("unrecognised switch option"));
+        }
+      else break;
+    } while (--argc);
 
-      if (argc != 2)
-        return quit(csound, Str("illegal number of filenames"));
-      infilnam = *argv++;
-      outfilnam = *argv;
+    if (UNLIKELY(argc != 2))
+      return quit(csound, Str("illegal number of filenames"));
+    infilnam = *argv++;
+    outfilnam = *argv;
 
-    if (ovlp && frameIncr)
+    if (UNLIKELY(ovlp && frameIncr))
       return quit(csound, Str("pvanal cannot have both -w and -h"));
     /* open sndfil, do skiptime */
-    if ((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
-                                    &input_dur, &sr, channel)) == NULL) {
+    if (UNLIKELY((infd = csound->SAsndgetset(csound, infilnam, &p, &beg_time,
+                                             &input_dur, &sr, channel)) == NULL)) {
       snprintf(err_msg, 512, Str("error while opening %s"), infilnam);
       return quit(csound, err_msg);
     }
@@ -273,7 +273,7 @@ static int pvanal(CSOUND *csound, int argc, char **argv)
       ovlp = frameSize/frameIncr;
     else frameIncr = frameSize/ovlp;
 
-    if (ovlp < 2 || ovlp > 64) {
+    if (UNLIKELY(ovlp < 2 || ovlp > 64)) {
       csound->Message(csound,
                       Str("WARNING: pvanal: %d might be a bad window "
                           "overlap index\n"),
@@ -288,19 +288,19 @@ static int pvanal(CSOUND *csound, int argc, char **argv)
                             (long) oframeEst);
 
     /* even for old pvoc file, is absence of extension OK? */
-    if (p->nchanls > MAXPVXCHANS) {
+    if (UNLIKELY(p->nchanls > MAXPVXCHANS)) {
       csound->Message(csound, Str("pvxanal - source has too many channels: "
                                   "Maxchans = %d.\n"), MAXPVXCHANS);
       return -1;
     }
     csound->Message(csound, Str("pvanal: creating pvocex file\n"));
     /* handle all messages in here, for now */
-    if (displays)
+    if (UNLIKELY(displays))
         csound->dispinit(csound);
-    if (pvxanal(csound, p, infd, outfilnam, p->sr,
+    if (UNLIKELY(pvxanal(csound, p, infd, outfilnam, p->sr,
                         ((!channel || channel == ALLCHNLS) ? p->nchanls : 1),
                         frameSize, frameIncr, frameSize * 2,
-                WindowType, beta, displays) != 0) {
+                         WindowType, beta, displays) != 0)) {
       csound->Message(csound, Str("error generating pvocex file.\n"));
       return -1;
     }
@@ -460,7 +460,7 @@ static int pvxanal(CSOUND *csound, SOUNDIN *p, SNDFILE *fd, const char *fname,
     pvfile  = csound->PVOC_CreateFile(csound, fname, fftsize, overlap, chans,
                                               PVOC_AMP_FREQ, srate, stype,
                                               wintype, 0.0f, NULL, winsize);
-    if (pvfile < 0) {
+    if (UNLIKELY(pvfile < 0)) {
       csound->Message(csound,
                       Str("pvxanal: unable to create analysis file: %s"),
                       csound->PVOC_ErrorString(csound));
@@ -488,10 +488,10 @@ static int pvxanal(CSOUND *csound, SOUNDIN *p, SNDFILE *fd, const char *fname,
         for (k = 0; k < chans; k++) {
           frame = frame_c[k];
           chanbuf = inbuf_c[k];
-          if (!csound->CheckEvents(csound))
+          if (UNLIKELY(!csound->CheckEvents(csound)))
             csound->LongJmp(csound, 1);
           generate_frame(csound, pvx[k],chanbuf+i,frame,overlap,PVOC_AMP_FREQ);
-          if (!csound->PVOC_PutFrames(csound, pvfile, frame, 1)) {
+          if (UNLIKELY(!csound->PVOC_PutFrames(csound, pvfile, frame, 1))) {
             csound->Message(csound,
                             Str("pvxanal: error writing analysis frames: %s\n"),
                             csound->PVOC_ErrorString(csound));
@@ -523,7 +523,7 @@ static int pvxanal(CSOUND *csound, SOUNDIN *p, SNDFILE *fd, const char *fname,
         if (!csound->CheckEvents(csound))
           csound->LongJmp(csound, 1);
         generate_frame(csound,pvx[k],chanbuf+i,frame,overlap,PVOC_AMP_FREQ);
-        if (!csound->PVOC_PutFrames(csound, pvfile, frame, 1)) {
+        if (UNLIKELY(!csound->PVOC_PutFrames(csound, pvfile, frame, 1))) {
           csound->Message(csound,
                           Str("pvxanal: error writing analysis frames: %s\n"),
                           csound->PVOC_ErrorString(csound));
@@ -575,11 +575,11 @@ static int init(CSOUND *csound,
     M = winsize;
     D = overlap;
 
-    if (N <= 0)
+    if (UNLIKELY(N <= 0))
       return 1;
-    if (D < 0)
+    if (UNLIKELY(D < 0))
       return 1;
-    if (M < 0)
+    if (UNLIKELY(M < 0))
       return 1;
 
     thispvx->isr         = srate;
diff --git a/util/pvlook.c b/util/pvlook.c
index a685a63..081032c 100644
--- a/util/pvlook.c
+++ b/util/pvlook.c
@@ -50,7 +50,7 @@ static CS_NOINLINE CS_PRINTF2 void pvlook_print(PVLOOK *p, const char *fmt, ...)
     len = (int) vsnprintf(s, 1024, fmt, args);
     va_end(args);
  /* fprintf(p->outfd, "%s", s); */
-    p->csound->MessageS(p->csound, CSOUNDMSG_ORCH, s);
+    p->csound->MessageS(p->csound, CSOUNDMSG_ORCH, "%s", s);
     tmp = strrchr(s, '\n');
     if (tmp == NULL)
       p->linePos += len;
@@ -112,13 +112,14 @@ static int pvlook(CSOUND *csound, int argc, char *argv[])
       csound->SetConfigurationVariable(csound, "msg_color", (void*) &tmp);
     }
 
-    if (argc < 2) {
+    if (UNLIKELY(argc < 2)) {
       for (i = 0; pvlook_usage_txt[i] != NULL; i++)
         csound->Message(csound, "%s\n", Str(pvlook_usage_txt[i]));
       return -1;
     }
 
-    if ((fp = csound->PVOC_OpenFile(csound, argv[argc - 1], &data, &fmt)) < 0) {
+    if (UNLIKELY((fp = csound->PVOC_OpenFile(csound, argv[argc - 1],
+                                             &data, &fmt)) < 0)) {
       csound->ErrorMsg(csound, Str("pvlook: Unable to open '%s'\n Does it exist?"),
                                argv[argc - 1]);
       return -1;
diff --git a/util/scale.c b/util/scale.c
index 2f78df8..f56d4bf 100644
--- a/util/scale.c
+++ b/util/scale.c
@@ -36,8 +36,8 @@
 /* Constants */
 
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-')) \
-                            csound->Die(csound, MSG);
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))    \
+      csound->Die(csound, MSG);
 
 static const char *usage_txt[] = {
   Str_noop("Usage:\tscale [-flags] soundfile"),
@@ -163,7 +163,7 @@ static int scale(CSOUND *csound, int argc, char **argv)
                             envoutyp);
       }
     }
-    if (!(--argc))
+    if (UNLIKELY(!(--argc)))
       usage(csound, Str("Insufficient arguments"));
     do {
       s = *++argv;
@@ -174,10 +174,10 @@ static int scale(CSOUND *csound, int argc, char **argv)
             FIND(Str("no outfilename"))
             O.outfilename = s;         /* soundout name */
             for ( ; *s != '\0'; s++) ;
-            if (strcmp(O.outfilename, "stdin") == 0)
+            if (UNLIKELY(strcmp(O.outfilename, "stdin") == 0))
               csound->Die(csound, Str("-o cannot be stdin"));
 #if defined(WIN32)
-            if (strcmp(O.outfilename, "stdout") == 0) {
+            if (UNLIKELY(strcmp(O.outfilename, "stdout") == 0)) {
               csound->Die(csound, Str("stdout audio not supported"));
             }
 #endif
@@ -251,8 +251,8 @@ static int scale(CSOUND *csound, int argc, char **argv)
 
  retry:
     /* Read sound file */
-    if (inputfile == NULL) return -1;
-    if (!(infile = SCsndgetset(csound, &sc, inputfile))) {
+    if (UNLIKELY(inputfile == NULL)) return -1;
+    if (UNLIKELY(!(infile = SCsndgetset(csound, &sc, inputfile)))) {
       csound->Message(csound, Str("%s: error while opening %s"),
                               argv[0], inputfile);
       return -1;
@@ -273,7 +273,7 @@ static int scale(CSOUND *csound, int argc, char **argv)
 
       memset(&sfinfo, 0, sizeof(SF_INFO));
       //sfinfo.frames = 0/*was -1*/;
-      sfinfo.samplerate = (int) MYFLT2LRND( sc.p->sr);
+      sfinfo.samplerate = (int) /*MYFLT2LRND*/( sc.p->sr); // p->sr is int already
       sfinfo.channels = sc.p->nchanls;
       sfinfo.format = TYPE2SF(O.filetyp) | FORMAT2SF(O.outformat);
       /* open file for write */
@@ -282,8 +282,9 @@ static int scale(CSOUND *csound, int argc, char **argv)
           strcmp(O.outfilename, "-") == 0) {
         outfile = sf_open_fd(1, SFM_WRITE, &sfinfo, 0);
         if (outfile != NULL) {
-          if ((fd = csound->CreateFileHandle(csound, &outfile,
-                                             CSFILE_SND_W, "stdout")) == NULL) {
+          if (UNLIKELY((fd =
+                        csound->CreateFileHandle(csound, &outfile,
+                                                 CSFILE_SND_W, "stdout")) == NULL)) {
             sf_close(outfile);
             csound->Die(csound, Str("Memory allocation failure"));
           }
@@ -293,7 +294,7 @@ static int scale(CSOUND *csound, int argc, char **argv)
         fd = csound->FileOpen2(csound, &outfile, CSFILE_SND_W,
                        O.outfilename, &sfinfo, "SFDIR",
                        csound->type2csfiletype(O.filetyp, O.outformat), 0);
-      if (fd == NULL)
+      if (UNLIKELY(fd == NULL))
         csound->Die(csound, Str("Failed to open output file %s"),
                             O.outfilename);
       outbufsiz = 1024 * O.sfsampsize;    /* calc outbuf size  */
@@ -325,8 +326,8 @@ static void InitScaleTable(CSOUND *csound, SCALE *thissc,
       FILE    *f;
       double  samplepert = (double)thissc->p->sr;
       double  x, y;
-      if (csound->FileOpen2(csound, &f, CSFILE_STD, factorfile, "r", NULL,
-                              CSFTYPE_FLOATS_TEXT, 0) == NULL)
+      if (UNLIKELY(csound->FileOpen2(csound, &f, CSFILE_STD, factorfile, "r", NULL,
+                                     CSFTYPE_FLOATS_TEXT, 0) == NULL))
         csound->Die(csound, Str("Failed to open %s"), factorfile);
       while (fscanf(f, "%lf %lf\n", &x, &y) == 2) {
         scalepoint *newpoint =
diff --git a/util/sndinfo.c b/util/sndinfo.c
index ec13030..83e52de 100644
--- a/util/sndinfo.c
+++ b/util/sndinfo.c
@@ -62,14 +62,14 @@ static int sndinfo(CSOUND *csound, int argc, char **argv)
         continue;
       }
       fname = csound->FindInputFile(csound, infilnam, "SFDIR;SSDIR");
-      if (fname == NULL) {
+      if (UNLIKELY(fname == NULL)) {
         csound->Message(csound, Str("%s:\n\tcould not find\n"), infilnam);
         retval = -1;
         continue;
       }
       memset(&sf_info, 0, sizeof(SF_INFO));
       hndl = sf_open(fname, SFM_READ, &sf_info);
-      if (hndl == NULL) {
+      if (UNLIKELY(hndl == NULL)) {
         csound->Message(csound, Str("%s: Not a sound file\n"), fname);
         csound->Free(csound, fname);
         retval = -1;
diff --git a/util/srconv.c b/util/srconv.c
index 874c163..8c643b6 100644
--- a/util/srconv.c
+++ b/util/srconv.c
@@ -755,6 +755,9 @@ static int srconv(CSOUND *csound, int argc, char **argv)
     return -1;
 }
 #else
+#ifndef WIN32
+#include <unistd.h>
+#endif
 static int srconv(CSOUND *csound, int argc, char **argv)
 {
     csound->Message(csound, Str("Do not use srconv but the src_conv program\n"));
diff --git a/util/xtrct.c b/util/xtrct.c
index 7cd0f9a..7be37f3 100644
--- a/util/xtrct.c
+++ b/util/xtrct.c
@@ -40,8 +40,8 @@
 #define NUMBER_OF_SAMPLES       (4096)
 #define SHORTMAX                (32767)
 #define FIND(MSG)   if (*s == '\0')  \
-                        if (!(--argc) || ((s = *++argv) && *s == '-')) \
-                            csound->Die(csound, MSG);
+    if (UNLIKELY(!(--argc) || ((s = *++argv) && *s == '-')))    \
+      csound->Die(csound, MSG);
 
 typedef struct {
   long        sample;         /* Time file starts in samples */
@@ -107,7 +107,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
     xtrc.sample = -1; xtrc.stime = -FL(1.0);
     xtrc.stop  = -1; xtrc.endtime = -FL(1.0);
     xtrc.numsamps = -1; xtrc.dur = -FL(1.0);
-    if (!(--argc)) {
+    if (UNLIKELY(!(--argc))) {
       usage(csound,Str("Insufficient arguments"));
       return 1;
     }
@@ -120,7 +120,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             FIND(Str("no outfilename"))
             O.outfilename = s;         /* soundout name */
             for ( ; *s != '\0'; s++) ;
-            if (strcmp(O.outfilename, "stdin") == 0)
+            if (UNLIKELY(strcmp(O.outfilename, "stdin") == 0))
               csound->Die(csound, Str("-o cannot be stdin"));
             break;
           case 'S':
@@ -128,7 +128,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.sample = atoi(s);
             while (*++s);
             if (xtrc.stime >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-S overriding -T"));
               xtrc.stime = -1.0;
             }
@@ -138,7 +138,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.stime = (MYFLT) atof(s);
             while (*++s);
             if (xtrc.sample >= 0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-T overriding -S"));
               xtrc.sample = -1;
             }
@@ -148,17 +148,17 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.stop = atoi(s);
             while (*++s);
             if (xtrc.endtime >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Z overriding -E"));
               xtrc.endtime = -1.0;
             }
             if (xtrc.dur >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Z overriding -D"));
               xtrc.dur = FL(0.1);
             }
             if (xtrc.numsamps >=0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Z overriding -Q"));
               xtrc.numsamps = -1;
             }
@@ -168,17 +168,17 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.endtime = (MYFLT) atof(s);
             while (*++s);
             if (xtrc.dur >= 0.0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-E overriding -D"));
               xtrc.dur = FL(0.1);
             }
             if (xtrc.numsamps >=0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-E overriding -Q"));
               xtrc.numsamps = -1;
             }
             if (xtrc.stop >= 0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-E overriding -Z"));
               xtrc.stop = -1;
             }
@@ -188,17 +188,17 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.dur = (MYFLT) atof(s);
             while (*++s);
             if (xtrc.endtime >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-D overriding -E"));
               xtrc.endtime = -1.0;
             }
             if (xtrc.numsamps >=0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-D overriding -Q"));
               xtrc.numsamps = -1;
             }
             if (xtrc.stop >= 0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-D overriding -Z"));
               xtrc.stop = -1;
             }
@@ -208,17 +208,17 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             xtrc.numsamps = atoi(s);
             while (*++s);
             if (xtrc.endtime >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Q overriding -E"));
               xtrc.endtime = -1.0;
             }
             if (xtrc.dur >= FL(0.0)) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Q overriding -D"));
               xtrc.dur = FL(0.1);
             }
             if (xtrc.stop >= 0) {
-              if (Omsg & WARNMSG)
+              if (UNLIKELY(Omsg & WARNMSG))
                 csound->Message(csound,Str("-Q overriding -Z"));
               xtrc.stop = -1;
             }
@@ -239,15 +239,15 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
             usage(csound, Str("unknown flag -%c"), c);
           }
       else {
-        if (inputfile != NULL) usage(csound,Str("Too many inputs"));
+        if (UNLIKELY(inputfile != NULL)) usage(csound,Str("Too many inputs"));
         inputfile = --s;
       }
     } while (--argc);
 
     /* Read sound file */
-    if (inputfile == NULL) usage(csound,Str("No input"));
+    if (UNLIKELY(inputfile == NULL)) usage(csound,Str("No input"));
 
-    if (!(infd = EXsndgetset(csound, &xtrc, inputfile))) {
+    if (UNLIKELY(!(infd = EXsndgetset(csound, &xtrc, inputfile)))) {
       csound->Message(csound,Str("%s: error while opening %s"), argv[0], inputfile);
       return 1;
     }
@@ -292,7 +292,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
       outfd = sf_open_fd(1, SFM_WRITE, &sfinfo, 0);
       if (outfd != NULL) {
         fd = csound->CreateFileHandle(csound, &outfd, CSFILE_SND_W, "stdout");
-        if (fd == NULL) {
+        if (UNLIKELY(fd == NULL)) {
           sf_close(outfd);
           csound->Die(csound, Str("Memory allocation failure"));
         }
@@ -302,7 +302,7 @@ static int xtrct(CSOUND *csound, int argc, char **argv)
       fd = csound->FileOpen2(csound, &outfd, CSFILE_SND_W,
                        O.outfilename, &sfinfo, "SFDIR",
                        csound->type2csfiletype(O.filetyp, O.outformat), 0);
-    if (fd == NULL)
+    if (UNLIKELY(fd == NULL))
       csound->Die(csound, Str("Failed to open output file %s"),
                           O.outfilename);
     ExtractSound(csound, &xtrc, infd, outfd, &O);
diff --git a/util1/CMakeLists.txt b/util1/CMakeLists.txt
index 160a75e..639ed0a 100644
--- a/util1/CMakeLists.txt
+++ b/util1/CMakeLists.txt
@@ -3,21 +3,21 @@
 make_utility(scsort      sortex/smain.c)
 make_utility(extract     sortex/xmain.c)
 
-if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
+if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG OR MSVC)
+    make_utility(cs         csd_util/cs.c)
     if(HAVE_UNISTD_H)
-      add_definitions("-DHAVE_UNISTD_H")
+        target_compile_definitions(cs PRIVATE "-DHAVE_UNISTD_H")
     endif()
-    make_utility(cs         csd_util/cs.c)
-    
-    set(csb64enc_SRCS 
+
+    set(csb64enc_SRCS
         csd_util/base64.c csd_util/csb64enc.c)
     make_utility(csb64enc "${csb64enc_SRCS}")
-    
-    set(makecsd_SRCS 
+
+    set(makecsd_SRCS
         csd_util/base64.c csd_util/makecsd.c)
     make_utility(makecsd "${makecsd_SRCS}")
-    
-    set(scot_SRCS 
+
+    set(scot_SRCS
         scot/scot_main.c scot/scot.c)
     make_utility(scot "${scot_SRCS}")
 endif()
diff --git a/util1/csd_util/base64.c b/util1/csd_util/base64.c
index 16e3ac6..664b897 100644
--- a/util1/csd_util/base64.c
+++ b/util1/csd_util/base64.c
@@ -64,8 +64,10 @@ void encode_file(char *inflname, FILE *outfl, int style)
       exit(-1);
     }
     /* create new CSD tag and encode file */
-    if (style)
+    if (style==1)
       fprintf(outfl, "<CsMidifileB>");
+    else if (style==2)
+      fprintf(outfl, "<CsFileC filename=\"%s\">", s);
     else
       fprintf(outfl, "<CsFileB filename=\"%s\">", s);
     linepos = bitcnt = inval = 0;
diff --git a/util1/csd_util/csb64enc.c b/util1/csd_util/csb64enc.c
index c04b963..b15d33d 100644
--- a/util1/csd_util/csb64enc.c
+++ b/util1/csd_util/csb64enc.c
@@ -9,7 +9,7 @@
 static  int     nr_infiles = 0;
 static  int     max_infiles = 0;
 static  char    **infile_names = NULL;
-
+static  int     style      = 0;
 static  int     output_is_stdout = 1;
 static  char    *outflname = NULL;
 static  FILE    *outfile = NULL;
@@ -52,6 +52,14 @@ int main(int argc, char **argv)
         else
           output_is_stdout = 0;
       }
+      else if (!strcmp(argv[i], "-s")) {
+        if (!(--j)) {
+          fprintf(stderr, "csb64enc: missing option for -s\n");
+          exit(-1);
+        }
+        i++;
+        style = atoi(argv[i]);
+      }
       else {                                    /* input file name */
         if (*(argv[i]) == '-') {
           fprintf(stderr, "csb64enc: invalid option: %s\n", argv[i]);
@@ -81,6 +89,9 @@ int main(int argc, char **argv)
               "    -w <n>      set line width to n (default: 72)\n");
       fprintf(stderr,
               "    -o <fname>  output file name (default: stdout)\n");
+      fprintf(stderr,
+              "    -s <n>      output style to 0 (CsFileB default)\n"
+              "                or 2 (CsFileC) or 1 (MIDI)\n");
       exit(-1);
     }
     /* open output file */
@@ -96,7 +107,7 @@ int main(int argc, char **argv)
       outfile = stdout;
     /* encode all input files */
     for (i = 0; i < nr_infiles; i++)
-      encode_file(infile_names[i], outfile, 0);
+      encode_file(infile_names[i], outfile, style);
     /* close output file */
     if (!output_is_stdout) {
       fflush(outfile);
diff --git a/util1/csd_util/makecsd.c b/util1/csd_util/makecsd.c
index a68677c..a5e7dcc 100644
--- a/util1/csd_util/makecsd.c
+++ b/util1/csd_util/makecsd.c
@@ -358,7 +358,7 @@ int main(int argc, char **argv)
       char buff[32];
       time_t tt = time(NULL);
       strftime(buff, 32, "<CsLicence>\nCopyright %Y: ", gmtime(&tt));
-      fprintf(outfile, buff);
+      fprintf(outfile, "%s", buff);
       switch (licencetype) {
       default:
       case 0:
diff --git a/util1/scot/scot.c b/util1/scot/scot.c
index 853e84d..924b83e 100644
--- a/util1/scot/scot.c
+++ b/util1/scot/scot.c
@@ -165,8 +165,9 @@ void readinstsec(Inst *inst,
         }
         else if (!strncmp(s, "timesignature", c)) {
           efindword(s);
-          if ((sscanf(s, "%lu/%lu", &timesig->num, &timesig->denom) != 2) ||
-              (&timesig->denom == 0)) {
+          if ((sscanf(s, "%lu/%lu", &timesig->num, &timesig->denom) != 2)
+              ||
+              (&(timesig->denom) == 0) ) {
             scoterror(Str("Invalid time signature"));
             timesig->num = 0;
             timesig->denom = 1;

-- 
csound packaging



More information about the pkg-multimedia-commits mailing list