Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - loganmcbroom

Pages: 1 2 3 [4] 5
46
General Board / Re: CDP Lua Interface
« on: August 05, 2016, 07:47:09 AM »
Here is a script I enjoyed. You'll need to set the notedata file location. It starts off by recording for 2 seconds, if you'd rather use prerecorded audio switch sysutils_recsf( 2 ) with f[ i ]. You can make numOuts larger to run it multiple times in parallel (it will record linearly for 2*numOuts seconds at the start).
Code: [Select]
notedata = "PATH HERE/notedata.txt"
numOuts = 1

getmetatable('').__index = function( str, i ) return housekeep_chans( 1, i, str ) end
getmetatable('').__call = function( str, l ) return modify_loudness( 4, "-l" .. ( l or 1 ), str ) end

function makestereo( ... )
local arg = {...}
local stereos = {}
for i = 1, #arg/2 do stereos[i] = multichannel_interlx( arg[2*i-1], arg[2*i] ) end
return unpack( stereos )
end

recordings = {}
outputs = {}
for i = 1,numOuts do recordings[i] = sysutils_recsf( 2 ) end
for i=1,numOuts do
outputs[i] = texture_postornate( 1, notedata, 30, .5, --notedata outdur skiptime
1,1,  36,64,  3,3,  --sndfirst sndlast mingain maxgain mindur maxdur
0, 2, 1, 0, 3, --phgrid grpspace gpsprange amprise contour
0.15,0.4, --multlo, multhi
housekeep_chans( 4, recordings[i] )(.5) )(.8)
end

return modify_loudness( 4, "-l0.8",
makestereo(
pvoc_synth(
blur_selfism( 4,
blur_drunk( 4, 2, 12, "-z",
pvoc_anal( 1,
housekeep_chans( 2,
unpack( outputs ) )))))))
Using this notedata:
Code: [Select]
60
#8
0.0 1 60 0 0
0.5 1 67 0 0
1.0 1 72 0 0
1.5 1 67 0 0
2.0 1 62 0 0
2.5 1 69 0 0
3.0 1 74 0 0
3.5 1 69 0 0
#5
0.0 1 60 0 0
0.0 1 62 0 0
0.0 1 64 0 0
0.0 1 67 0 0
0.0 1 69 0 0
#8
0 1 60 30 20
1 1 62 30 20
2 1 64 30 20
3 1 67 30 20
4 1 69 30 20
5 1 72 30 20
6 1 69 30 20
7 1 67 30 20

47
General Board / Re: Integrating CDP into other software
« on: August 01, 2016, 11:39:21 PM »
Well I'd like to keep the cdp interface consistent but I don't want to handle all the flags recsf has. Looking at those flags though I realized there is a -i flag which solves this problem by starting the recording immediately.

48
General Board / Re: Integrating CDP into other software
« on: August 01, 2016, 09:17:40 AM »
Running into a problem with recsf. Using Juce::ChildProcess you can't send input to the spawned process so it can't be started (it requires a keypress to begin recording).

I could use juce for the recording in that function but I'd rather not. Thoughts?

49
General Board / Re: CDP Lua Interface
« on: July 27, 2016, 07:47:08 AM »
I'm also going to keep track of what is fully tested here. Sorry for the mess I'm pasting it in with tab characters.

distort             //Untested
envel                //Untested                              
extend             //Untested
filter                 //Untested
grain              //Untested
housekeep   //Untested
modify      //Untested
multichannel   //Incomplete, inverted flags
psow      //Untested
reverb      ///Incomplete, inverted flags
sndinfo      //Untested
sfedit      //Untested
submix      //Untested
synth      //Untested
sysutils      ///Incomplete, inverted flags
texture      //Untested

blur         //Untested
combine      //Untested
focus      //Untested
formants      //Untested
hilite              //Untested
morph      //Untested
oneform      //Untested
pitch              ///Incomplete, bad flags
PVOC      //Extract untested
repitch      //Extra untested, type outputs might not work on anything
spec         ///Incomplete, bad flags
strange      ///Incomplete, bad flags
stretch      //Untested
 

50
General Board / Re: CDP Lua Interface
« on: July 27, 2016, 03:55:32 AM »
I'm not normally in the business of self bumping but I've finished a new version of this. There is now a mapping of almost every cdp process on the lua side. Mostly untested but enough works to do some cool things. You can write code like this:

return
   modify_loudness( 3,
   pvoc_synth(
   blur_blur( 100,
   pvoc_anal(
   housekeep_chans( 2,
   housekeep_respec( 1, 48000,
   unpack( f )))))))

Which takes every input given, resamples to 48000, splits all multichannel files into multiple mono files, blurs, and returns all results normalized. You can process in loops! Anything transforming a set number of inputs to a set number of outputs can take any number of files divisible by the input group size, e.g. something taking two inputs and making one output can take ten inputs and gives five outputs. Order of arguments is mode (if applicable), parameters, flags (in quotes e.g. "-r100"), infiles.

Google drive link in the op is updated version.

51
General Board / Reverb dll error
« on: July 27, 2016, 03:16:07 AM »
Trying to run anything in reverb.exe gives "The procedural entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll.". Anyone know what's up with that?

52
General Board / Re: CDP github
« on: July 07, 2016, 08:30:36 AM »
Yeah I don't think library implementations exist either hence saying I wish it existed, but I think it has a better shot at existing if the community could help with things (like the bugs and leaks you mention). Emailing a bit with Archer it seems that things are still being worked on even if it is slow going.

53
General Board / Re: CDP github
« on: July 06, 2016, 12:31:10 AM »
I am worried if I describe any specific process someone will point out it's already tucked away in a process I'm not familiar with but I would like to see some iterative processes, and maybe some things based more on musicality than algorithmic manipulation. Iteration of processes on audio is the main reason I'm working on my own front end (If you want to check it out it's a few threads down). As for tweaks, I'm keeping a log of things that seem out of place in the inconsistencies in procs and docs thread.

The library implementation is what I want far more than anything else. If it existed there's no telling what kind of software could pop up, using the CDP as building blocks for more complicated processing. I think the CDPs downfall as it is, is lack of scaling. Soundloom has instruments but it lacks robust programmatic power.

54
General Board / Re: Hi Everybody
« on: July 01, 2016, 09:52:33 PM »
Welcome to the forum, always good to see a new face. It's a slow moving place but move it does. I check in pretty often and I think a few others do too.

55
General Board / Re: Inconsistencies in Processes and Documentation
« on: June 28, 2016, 09:14:37 PM »
Removing the period from the folder name fixed this issue (I'll update the main). I don't think I have spaces in anything path-wise. I imagine the first period encountered is used for positioning internally.

This could have caused the other file naming issue as well, I'll test it in a bit.

56
General Board / Inconsistencies in Processes and Documentation
« on: June 22, 2016, 10:15:06 AM »
I'm creating lua mappings for every process and in doing so I am occasionally seeing inconsistencies in processes and the documentation found here http://www.ensemble-software.co.uk/CDPDocs/html/ccdpndex.htm. I'll record anything I notice that seems noteworthy here for others to reference or correct.

Documentation errors:

    Housekeep Gate
    This process has 5 modes, the documentation doesn't list this as a modal process.

    Sndinfo Diff
    This is listed twice in the documentation.

    PSOW grab
    Density and spectrans are flipped by order.

    Distort Pulsed
    Missing the env parameter.

    Shifter
    Both modes missing the dur parameter.

Process errors:

    Gate Gate 2
    When cutting out enough sound this process is causing extreme pitch changes over time.

    Modify Shudder
    There is some kind of file name handling error in here that is cutting out a bunch of the output file name.
    Also, "outfilename – note that a '0' will replace the last character of your given outfile name"
    This isn't an error but it is ridiculous.

    Synth Spectra
    When running this, both the files mentioned are created... but the file with 1 appended is immediately deleted? It's
    always something. The doc is missing some parameter, range starting at 16k.

    Iterline
    I always receive out of memory errors.

    Madrid
    I get "[CDP] ERROR: INVALID DATA
    ERROR: Cannot open output file C:\Users\Logan\Desktop\Altar\Altar1470210899998\0_altar" for all inputs I've tried.
    It always strips the extension.
    This is probably fixed but I can't find it again.
   
    ptobrk
    No matter what I enter after ptobrk it always does nothing more than tell me how to use ptobrk.

Gripes:
    Housekeep Copy 2
    Would be nice to be able to specify the path this outputs to.

    Processes outputting multiple files have vastly different output naming schemes.

57
General Board / CDP Lua Interface
« on: June 14, 2016, 09:06:31 AM »
Here is some software I made for working with the cdp. Before it will run you'll need to set your _cdpprogs dirctory and working directory ( absolute file paths ) in Settings.lua. Drag audio in and drag clips around to reorder. Hit the pi button to send the files in the order they're listed to the lua script. Use cdp() to do stuff. '$' will generate a file name for output. Everything returned will be listed on the right. You can drag files back over to the left to process them anew.

I still have a few features to add but it's usable as is. Here's the source and if you're windows bound here's an archive with everything it needs to run. Includes some of my favorite recordings.
https://github.com/loganmcbroom/Altar
https://drive.google.com/file/d/0BxzJlrC6KHmxZnRwMEk2U19GLTA/view?usp=sharing

Hope you enjoy, feel free to shoot me feature ideas.

Edit: Switched archive for updated version without dll dependencies. Should fix missing vcruntime dll errors. Added a lot of functions to the lua interface but I'm going to wait on writing them all down until the interface is done.

Edit: Added more to LTMP system, made a readme. Tried to make it much harder to crash. This is now valid code:
return distort_average( {5,10,15,20}, housekeep_chans( 2, unpack( f ) ) )
It will split the channels of all inputs, and cyclically apply 5,10,15,20 as the parameter to average.
You can also write
getmetatable('').__index = function( str, i ) return housekeep_chans( 1, i, str ) end
This allows f[1][2] to access the second channel of the first file.

58
Showcase / Re: Another go at a CDP frontend
« on: June 09, 2016, 02:17:37 AM »
Alright, makes sense. I was glad to hear you're using JUCE, I'll be ready to poke at it whenever you decide to put it out.

59
General Board / Re: Integrating CDP into other software
« on: June 08, 2016, 07:30:27 PM »
The separate threads wouldn't be for individual processes, but for the entire series of processes described by a script. That way you can run several long scripts at a time. Splitting to a new thread also takes away the need for polling running processes.

It leaves a problem as well though. I would guess in your front-end for each process you check to see when all the necessary files have been created and then process them. It's hard to do that in a script. Previously the only thing that came to mind to allow running multiple processes in parallel within a script was a function for starting the child process without blocking the thread and some functions for managing things.

Idea though: Rather than executing anything as the script runs, the script could patch together something more like what you have internally. That would allow similar parallelism. I am feeling way too lazy to try that atm but maybe if I run out of other things to do.

Thanks for the suggestions. I saw you mention taking a break on your front-end, still on pause?

60
General Board / Re: Integrating CDP into other software
« on: June 08, 2016, 07:30:53 AM »
Well, there's not a huge amount a screenshot will show but I'll post what I have. The concept I'm working on only has a small gui for getting files in, managing processing threads (working on this now, I've never dealt with threads so it's taking some extra time) and seeing the output. The actual descriptions for how the audio should be processed are in a Lua script which is invoking c functions which call CDP modules.

One of the things I think is missing from most front-ends is pure programmatic control. Being able to take a file and iteratively process it 1000 times, or applying a number of processes in some algorithmic way is hard to do without access to the control flow structures of a plain old programming language.

There are a few important bits still missing but it is in working condition. I'll post a proper exe download once threads are done-ish. Still need to add drag and drop to reorder list items, running scripts in threads, being able to start a cdp module without blocking the current thread, and helper functions for individual processes deemed important enough. Currently the only helper function is normalize although that may not be on github.

Source and a screenshot:

https://github.com/loganmcbroom/Altar
http://i.imgur.com/PPhinWM.png?1

I haven't used github before so if I've committed some faux pas let me know. I'm also fairly inexperienced so if you see any programming goofs point them out.

Pages: 1 2 3 [4] 5