Capture : record/resample stereo audio from almost any patch

Hello :v:

This is my first contribution to the Organelle, i think i’m in love with it… but since day one i missed the ability to record internally, so i worked on Capture → https://sourceforge.net/projects/capture-organelle/

MenuScreen

AuxScreen

The “Captures” patch features :

page#1 : recorder page (record the line/mic input, monitor : compression, .wav files and record/playback time)

PatchScreen

– knob1 : line/mic input volume/gain (0-100%)
– knob2 : compressor release (0.01-1000ms)
– knob3 : hi-pass filter (0-150hz)
– knob4 : capture bitrate (16/24/32bit)
– aux / fs : start/stop recording*
– keys : play/stop the 24 last captures and switch to page#2 when playing

  • controls and keys are locked when recording except : encbut, knob1 and vol knobs

page#2 : playback page (monitor captures)

PatchScreenScope

– knob1 : oscilloscope framerate (0 / 10-25fps)
– knob2 : oscilloscope zoom (x1-13)
– knob3 : hi-pass filter (0-2000hz)
– knob4 : lo-pass filter (30-22050hz)
– aux : stop playback and switch to page#1
– keys : play/stop captures and switch to page#1 when stopped

Each time a page is loaded, its parameters are reset to :

recorder page :
– input volume/gain = 0%
– compressor release = 100ms
– hi-pass filter < 0hz
– capture bitrate : 16bit (once)

playback page :
– scope frame rate = 25fps
– scope zoom = 0%
– hi-pass filter = 0hz
– lo-pass filter = 22050hz

made on Organelle (M) OS 3.2 with ORAC 2.0

If you installed the Audio Setup hack, you need to update it (for compatibility with Capture 2.3 and above)
https://patchstorage.com/audio-setup

Capture

8 Likes

Cool idea …

Can I offer some thoughts/suggestions on the orac implementation

I’d advise against overwriting existing files or changing my custom mother.pd as these change every release - so you’ll have to update every time I update - and if you don’t you’ll break peoples orac install.
Eg imagine when I release 2.1, if you have not yet altered your release and a user then installs, my 2.1 now has an old mother version !

This really concerns me, as it could lead to me getting bug reports about orac with are nothing to do with my code … so are going to be hard to diagnose :frowning:
( users will forget to mentioned they’d install this :wink: )

I think it would be better to implement this as a module - this would also allow users to record separate tracks.

And/or if you want it more integrated then you could release it as a router module - this would mean you would not have to use a slot.
I see no reason for loss of functionality this way.

Note: the encoder+aux key is already used for module select

4 Likes

Thanks for your suggestions, I see your point and I agree, I’m removing the mother.pd mod (from the ORAC version) for now, and I will make it a module instead, as it was in the first versions. :v:

1 Like

I’ve just updated to v1.4 (just need to run the .zop installer again) :

i think my work is over on the Organelle version, the compressor/limiter is now up to my expectations (finally i added a ‘1ms lookahead’ to the limiter, so the sound is properly maximized) wich was the most important.

I should have wait until it’s solid before publishing it, i’ll try not to make the same mistake for future patches.

Next step will be the ORAC record module, i’ll post here when it’s done. :v:

5 Likes

And i’ve just updated the ORAC version, it now includes 2 modules : a minimalist recorder (with compressor/limiter) and a sampler to play with captures, more details in the description. :v:

2 Likes

Hmmm, I’m really not happy with the deployment script. You assume that people would want to install capture into every default C&G patch, and you also assume that people have kept the default patches in the same folder structure. You also don’t explicitly state on Patchstorage that the .zop installs Capture into every default patch. Now I have to go delete the files from all the patches manually, not cool.

I think you should remove the default installations from the script, and rather include a copy of the “capture” files that need to be added to other patches within a directory in the Captures patch, and then document this on Patchstorage so that people know that they have to add those files to the patches that they want to record. You could even flash a message on the screen during installation with instructions.

Edit: Couple more issues. You misspelt “Stereo Rhythmicon” so that one would never have worked. Also noticed that your add the Capture patch as a standalone to /Samplers/. Again, this assumes that people want to install community patches alongside the default patches.

I’m really annoyed by this and I’m probably coming across as super grumpy, because I am. If you’re going to execute scripts on other people’s devices, please don’t make assumptions about them, and communicate these things clearly.

The biggest issue is replacing mother.pd everywhere. This is a terrible idea to do by default. If C&G ever update mother.pd to fix a bug or add a feature, now all of those patches will still be using your override, and like @thetechnobear said, people will forget that they’ve installed capture, or even not know that the script did this at all. Instead, the recommendation would be that if someone wants to make a capture-compatible version of a patch, they should copy the existing patch, add in mother.pd and folder_list.pd_linux, and now they have a recordable patch.

Anyway. I’ve created a script that will remove the copied files. It should only undo what the version 1.4 deployment script did, but use at your own risk and read it over before running it.

Edit: I have deleted the uninstall script above, since even though it was only a regex edit of the install script, it did actually remove files in the official patches what would have only been overwritten by the install script.

1 Like

I’m sorry that you had troubles… thanks for reporting the Stereo Rhythmicon issue, i’ve just fixed it and i hope you won’t mind that i now included your uninstall script (that goes into /sdcard/data/capture )

I also changed the description, because of course it has to be clear : for now this mod is made for OS v3.2 with a default configuration (with factory patches and folders structure unedited) and it installs on every factory patch.

I thought about these points you mentionned but i didn’t find a better way to install yet, my first idea was to backup and replace the OS mother.pd file only, but i don’t think this would have been a better idea (anyway i wasn’t able to do so). It was a fully manual install at first, it’s now automated because it was a pain to apply/update to every patches as i wanted to.

By the way, there’s something else that wasn’t mentionned : Capture is listing files from the captures folder, files are named from 1.wav to 32.wav for example, if you have 32 captures and delete the number 25, Capture won’t work anymore, there has to be files from 1.wav to the last number without missing ones. I recommend to backup the whole folder and start again from 0 regularly.

:v:

My point is that the installation shouldn’t be applied to every patch. It should be a manual process to install. Sooner or later, the default mother.pd will be updated, and people will forget (or not even be aware of) that they’ve overridden mother.pd in every single default patch. But if the instruction from you is that they need to copy a patch before installing the mother.pd override (as it should be), then the problem is solved, since firstly they still have the original version of the patch that will use whatever mother.pd that C&G provides, and secondly the act of copying and modifying the patch was a deliberate action, with intent, which means that it’s easier to remember doing so, and also silos the functionality of that patch into its own thing at the time of creation. Yes it will use a different/older mother.pd, but now it’s okay since that is what that patch functionally became when it was copied and modified by the user. Does that make sense?

I realise that in your use case you do want to apply it to every patch, but again this it is a big assumption on the part of the users you are sharing this patch with that they also want to apply it to every patch.

On another note, your script overwrites any potentially existing mother.pd in every default patch. What if there was some other patch that did the same? Or some other use case where a user created their own mother.pd override for whatever reason? What if I made a patch now that adds some feature to every patch by overriding and overwriting mother.pd using the deployment script? Would you be happy if this script broke your patch?

Thanks for this conversation, i think it’s interesting and can be useful for anyone.
I don’t agree with every suggestions you made, so i’ll try to explain myself…
But first and once again i’m sorry for your troubles, i understand because i also changed the folders structure when i received the Organelle, then i found myself stuck when i wanted to create an automated installer/updater for anyone, so at this point i had to make a choice : leave it as a manual install or get my Organelle back to its original patches/folders structure.

Yes i do, since i had success creating an installer package i tried to make it clear :

it is a mod to be able to resample audio from factory patches PLUS an addon if you want to install it on almost any other patch.

i may be wrong but i assume there are more people that didn’t mess with the folders structure and just want to run the installer to add this function everywhere the simpliest way possible… than people who did customize the folders structure, added mother.pd files to factory patches and/or only want to record from a few patches, i thought that for those people with enough knowledge i guess (like you and me) they could just rename the .zop into .zip then unzip with a computer to install it the way they want… (i’ll add these instructions onto patchstorage also)

I don’t agree but i recognize there must be enough informations before installing. Just to be clear for people who don’t have PD knowledge : the Capture installer isn’t overwriting the factory mother.pd , it is only placing another one in patches so it just overrides the factory one. Placing a mother.pd file into a patch isn’t terrible, it is allowed. The mother.pd file from Capture is based on the factory one found in my Organelle-M OS 3.2 , i only replaced the compressor, added a recorder and enabled ‘patchsub’ to be able to use the encoder selection button, nothing else, i’ve been using and capturing my Organelle since and never had an issue.
When there will be an OS update, i will update Capture, until then i will mention is it made for OS 3.2

I didn’t found any mod that adds mother.pd files to factory patches, if there is one then i’m sorry i didn’t know and i’ll have to mention it.

At first the installer was backing up files if existing, then i removed this function for two reasons :
1 - after one update there would be 2 mother.pd and 2 folder_list.pd_linux per patch, and more with every update
2 - by default, there are no mother.pd files into the folders where capture is installing, otherwize the user must know and consider it before running the installer.

I realize every suggestion you made are due to the lack of details in the description, i take this in conderation and made changes, i hope it’s gonna be fine for everyone at the end, thank you. :v:

Ive got guests visiting at the moment, so really dont have time to dig into the above…

but i do want to make one small point, which might help/provide a way forward?

if you want to apply a particular mother.pd to ‘every’ patch, you can simply place one mother.pd in /System/mother.pd - you do not need to put it in every patch folder.

this would mean uninstalling is a simple matter of removing that one file.
(they could then copy it to a particular patch if they want it on that patch)

i understand the idea behind viewing it a useful for all patches, but I think its pretty risky to it for every patch.

also it has a ‘flaw’, it only installs it into patches that are installed at the time you install capture, if you install new patches, it won’t be in these new patches - which might confuse
users. using /System/mother.pd avoids this issue.

btw: overwriting mother.pd will break orac2 … it has a very specific mother.pd of its own.
again System/mother.pd avoids this , since a patch specific mother.pd overrides a system/mother.pd

hmm, not sure id agree with that… i dont see its as ‘advanced functionality’ renaming folder/creating subfolders esp. since the introduction of patchmanager, and the fact that the organelle-m uses folders for patches

1 Like

My bad i just realized OS 3.2 is only for Organelle M and that the mother.pd might not be the same for both models, i hope it’s not a major issue…

i didn’t know that, thanks! but patches with custom mother.pd will override this one…? if yes, this might be a solution for Capture…

:v:

exactly… thats why i coded it likes this :wink:
e.g.
/root/mother.pd -> /System/mother.pd ->patch/mother.pd

(its the same for pd-opts.txt too)

i dont think mother.pd changed for 3.2 …

note: if mother.pd version changes in an OS update, then the OS will automatically ‘disable’ your mother.pd until its updated (so you’d have to issue an update for your patch)
this is designed so that after the OS update all patches will work… even if a (now) incompatible mother.pd is present

1 Like

sorry you did answer this before i asked… thanks a lot, i’ll work on this. :pray:

another idea (one that id probably go for)

you could create a system (aka extra) script, that enables/disable capture.
this script is super simple… enabling simply is moving your mother.pd to /system (*) and disabling is removing it.

(*) id also have a warning, if you find a system/mother.pd already presents, dont just overwrite it… as someone might already have a custom mother.pd, and need to be ‘warned’ this is an issue

1 Like

How does one completely delete this patch once installed?

Update:

Just figured it out after I read the whole thread.

EDIT : if you want to uninstall Capture v1.3 to 1.5 please download this, unzip it from your computer and place the update.zop into /Patches , then run it on the Organelle. This script will remove “mother.pd” and “folder_list.pd_linux” files from factory patches with their default folder configuration (but not from patches that need “folder_list.pd_linux”), it will back up mother.pd files into /sdcard/data/capture/backups for safety : update.zip (2.5 KB)

Thanks for the uninstall script! I’m currently keeping the capture patch installed, but the uninstall script is nice to have.

1 Like

I’ve just uploaded Capture 2.0 and updated the link and description in the first message of this topic.

I tried to take consideration of everything mentionned here, i think it’s much better thanks to @fwwwn and @thetechnobear , i’ll focus on making music for now and may work to improve it later, it may not be perfect yet but i think it’s solid enough to share it (i hope so, please report eventual issues, especially Organelle 1 users since there’s now multiprocessing so it’s optimized for the M).

:v:

1 Like

You’re missing the “h Rando” sampler patch in your list. I searched for the help file for that external, and “h Rando” was also missing the compiled external itself. I’ve removed my uninstall script above.

1 Like

cool @electrafa Im really excited to try this… now I just need to find a couple of extra hours for the day :wink:

1 Like