depends on: zexy moonlib list-abs iemlib
This is an example, demonstration patch, though fully functional in its own right, demonstrating the use of the fx1000 multi-effects pedal abstraction (included in the zip where more details about it are available in its -help file).
Like its predecessor, the fx600, the fx1000 is a cheap, fast, and easy to use multieffects abstraction (though including 10 not 6 effects) that, when combined, can easily create wonderful, highly complex, and original sounds. Each fx1000 includes: chorus, delay, distortion, flanger, phaser, pitchshifter, reverb, tremelo, vcf, and vibrato.
The s3s includes:
- a sample or adc~ toggle, which sets whether to receive audio~ from a sample (.wav) file or adc~;
- a sample player, with both a short, default (Pachabel's Canon) sample for testing and an openpanel to either test or even edit and remaster tracks;
- presets (for all three pedals) via savepanel and openpanel. There is no need to navigate anywhere to save the preset, just click "SAVE", enter a filename, and click "Save" (they are all stored in the fx1000/presets folder with a prefix in the format "pedal1effect-pedal2effect-pedal3effect"+whatever you entered). Note: you Do need to navigate to that folder to load a preset;
- a parallel or serial selector which either sums, i.e. +~ all three effects, or serializes them, audio~>1>2>3>masterout~;
- a transport control (abs) for recording your work, which includes fadein and fadeout bangs and times(ms) which starts recording from env~=0 and then sends a line~ ramp up to 0.9 or vice versa sends line~ down then stops recording when env~=0. Recordings are saved at fx1000/recordings.
If you just turn dsp one and click the "PLAY" toggle, it will play the default(loadbang) voice (3 choruses).
I can't play guitar very well. But I really wish I could, because I would really like to be able to use this patch to its full potential. Which is where you come in. .
I would Really like to see/hear what I good guitarist can do with a pedal board of 3 multifxs.
Please, do drop me a line or link if you use it or even just experiment with/test it.
I hope you find it easy to use and understand, rich in the amount of possibilities it (compactly) opens up, and able to free you up to do the really important thing, which is you making music (not programming pd .
Let me know if you have any problems getting it to work or there are issues with it and I'll help you or fix them as soon as I can.
Peace and Love through Music.
p.s. one really fun thing to do is set it to "Parallel", then "R"andomly set the 3 pedals, and switch to Series, and tweak the knobs. Parallel allows you to hear each one, while Series allows you to hear the...whacked out...result. If it's cool, just save it with a name. Watch out though, it is limiter~ed but random results for distortion can be quite noise~y.
I have updated:
the -help file to include two of the abs;
a router (fx600~/ROUTER~) to demonstrate re-routing on-the-fly (1 into 2, 2 into 1, or both summed (+~), i.e. in parallel);
a sample player (to better hear the effect);
a short sample (Pachabel's Canon);
modified the parameter receive to be an unpack instead of a route.
from the -help:
By using s~/r~ + $1 it makes it very simple to create routers allowing for (via hid, pduino, keyboard, midi, etc.) to change the routing on the fly. For example, as above, switching from pedal 1 into pedal 2, vice versa, or summed (parallel) via +~.
fx-600~:multieffects pedal abstraction;
pichshifter, tremolo, delay, phaser, chorus, and flanger;
depends on: zexy moonlib list-abs;
1 creation argument (the pedal id);
Ins are handled by creation argument sends;
fx600-ps-$1 (0, 1, 2, 3, 4, all 0 to 1, ie [x y(;
is also handled via the $1 index fx600-OUT-$1;
The output is limited with a zexy limiter.;
The bypass retains the depth state.;
Note: the best parts about it are its ease of use, speed, ability to control with midi or hid, and the possibility of easily creating alternate routings, ex. serial or parallel signals.
"May it serve you well."
Two things to keep in mind about ggee/shell:
- semicolon is a reserved character in pd.
- the ggee/shell linux stack is cleared after each (list) command you send it is completed.
So you can not do things like "x=3;echo $x" which can be very frustrating.
I've tried various substitution methods and never found a way around that.
If anyone knows how to that would be a great thing to share (on a different thread).
This is what I came up with. Seems to work correctly and I added a previous and next feature.
Note: The functionality of randomly getting a filepath/filename is in "rnd_player" (so that that functionality might be used elsewhere) and the "player" is just a readsf~ subpatch in the -help file.
random file selector using ggee [shell] object and shell "find" command and a [text] object (linux and Mac(i think) only);
- bang load_list;
- navigate to a file within the folder you want to randomly play and click OK;
- click RND_FILE to output the filepath/filename of a random file inside that folder;
- click << to go to the previous file;
- click >> to go to the next file.;
left a bang which triggers load_list;
right a bang which gets a new random file(path+name);
OUTLET: the filepath/filename of a randomly selected (.wav) file in the load_list selected folder
I hope this is not too confusing.
If you are on Linux (or I think Mac) you could use the ggee [shell] obj, for example with [ls( of [find (.
(I apologise if this is what David already suggested. On my hand-held now.)
Let me know if you are either of these and I'll try and send something along for you to work with.