-
PonZo
Synth sequencer for touchscreens - works with PD synths or external MIDI synthesizers
From top to bottom:
Octave (4 octave range)
Note (black box in radio = play that 16th note, click twice to turn off step but keep note)
32nd notes
16th note triplets
Length (short medium long tie/slur)
VelocityFeatures:
Display synth name and assign bg color
4 pattern memory - copy out pattern 1 button
Sequence the patterns - 1 2 3 4, 0 means don't play anything that measure
Changes made to a pattern will be initiated on each 8 bar phrase unless you hit Load!
GlideProblems:
Frankly I just made some changes so that I could share it here.
In the test patch I'm getting a click on beat 1.
The clock might not play 16ths until you adjust the shuffle up and down.
The clock is silly...Needs:
There's more room for data structures and the like.
Phrase/fill generator or generate variations based on pattern 1
Load pattern option/timer/warning
Use 2nd argument as 0 for audio, 1 for MIDI
Wouldn't hurt to be able to adjust the lengths - presently, short, medium, long, tie
STATE SAVING!!!! - this will likely be best implemented by saving the arrays to text files, then using a popup to select your preprogrammed sequence.Try it:
Unzip it and move the files into your home folder (sorry, no declarepath) Open testingthis.pd and see if it works or something.Best,
J.P. -
PonZo
Synth sequencer for touchscreens - works with PD synths or external MIDI synthesizers
From top to bottom:
Octave (4 octave range)
Note (black box in radio = play that 16th note, click twice to turn off step but keep note)
32nd notes
16th note triplets
Length (short medium long tie/slur)
VelocityFeatures:
Display synth name and assign bg color
4 pattern memory - copy out pattern 1 button
Sequence the patterns - 1 2 3 4, 0 means don't play anything that measure
Changes made to a pattern will be initiated on each 8 bar phrase unless you hit Load!
GlideProblems:
Frankly I just made some changes so that I could share it here.
In the test patch I'm getting a click on beat 1.
The clock might not play 16ths until you adjust the shuffle up and down.
The clock is silly...Needs:
There's more room for data structures and the like.
Phrase/fill generator or generate variations based on pattern 1
Load pattern option/timer/warning
Use 2nd argument as 0 for audio, 1 for MIDI
Wouldn't hurt to be able to adjust the lengths - presently, short, medium, long, tie
STATE SAVING!!!! - this will likely be best implemented by saving the arrays to text files, then using a popup to select your preprogrammed sequence.Try it:
Unzip it and move the files into your home folder (sorry, no declarepath) Open testingthis.pd and see if it works or something.Best,
J.P. -
PonZo
It would be nice (and a lot of work) for the mods to select "finished" patches, abstractions, and externals and organize them in a neat list for newcomers to peruse, no discussion allowed but links to the thread that they are discussed in.
This occurred to me just now as I was searching for toxonic or saturno's beat slicing patch - the one I use was one of the first things I did in PD and I've been to stubborn to update it - then I realized that I wouldn't even know about toxonic and saturno's if I had not been on the forum years ago and recalled their projects.
Just a thought - not intended to be exclusive, just intended to help newcomers find inspiration.
- J.P.
-
PonZo
Hi, I'm sure everyone knows that drawing in your own control curves is sketchy - personally I'm using a touch screen and the best luck I've had is putting a [grid] behind the array - even then it does not update consistently.
In general I'm hoping to find better solutions for the gui - I have no experience with computer programming so I feel that I should start with GEM data structures (is that even part of GEM...?) as deerell has mentioned under patch~/mousing arrays = frustrating.
I'll be going to work on this, now, and would just like to check in to see if there are any (new) amazing front-ends that anyone is aware of. In the long run I would like to implement the two pd instances -nogui/-nodsp trick using OSC to communicate - another thing I have no experience with. Then think about a "java" or "python" thingy.
Let me know if I'm heading in the right direction here. In the long run I would like to have 2 touchscreens plus one large monitor with excellent visual feedback and I'm thinking that anything but Tcl/TK is going to be best in terms of maintaining low latency (for VUs, arrays, etc). Oh, that'll mean I'll get a graphics card too
Best,
J.P. -
PonZo
From Windows XP, impressed by the guis created by katja & sonofsol, I move to my music machine booting UbuStu 64 on the -rt 2.6.33-4 kernel. Known issues with my onboard ATI Radeon graphics card - since I haven't used GEM, I haven't cared.
[gemwin] does not work. Cannot create const context, Bad request, peril, peril!
Boot on -preempt 2.6.32-3. [gemwin] works, not tested any further.
Shall I upgrade my graphics card sooner than I had planned or slog through fixing the driver? The drivers may not even be the problem - I have little understanding of kernel intricacies.
A fix so that I can keep my present kernel?
Switch to the best -preempt or a different hard real time kernel?
Thanks.
-
PonZo
Well, I know that I can open a patch (in this case a simple sequencer) with a bang routed to pd internal message [; pd open sequencer.pd ../PD/(
...but I would very much like to close it with a bang as well - the bang would output first to cue up the pattern I've entered and then close the window as well.
DO NOT go querying on this, you won't find anything.
I'm open minded about a shell command if someone seconds my opinion that it may be the only way. I would prefer an internal message or object though.
Thanks,
J.P. -
PonZo
Hi everybody, I'm back from about a year off PD, I know it sounds terrible and it was...I'm hoping to get involved in the forum since I feel a little bit more confident and I'll still need lots of help.
I'm posting because I need to share something with people that will understand. I just discovered the Grid object (many thanks to the programmers) and I have been sitting on my computer like a kitten with a ball of yarn for the last ten minutes - because I have a 15 inch touch screen.
If anyone is interested in getting a touch screen I recommend it, though now I have to go through all my old patches to make buttons larger.
I spent a total of $115 on an Elo 1545L touchscreen and have it running *fairly* accurately on Ubuntu Studio. It's inaccurate at the edges of the screen.
While the Elo drivers should work for Windows (not XP x64 though...) (and Mac?) I could not compile them under Linux (probably because it's AMD64?...I may have been missing some dependencies, this is one of the first things I did with Linux)
so I used a program called xinput_calibrator by Tias (and co) that did a good job. The program will apply the calibrations and then output a line that you insert into your .xinitrc file. Only problem here is that I had to change Grub to "text" startup so that I get a plain login, type "startx", and it reads the script, bypassing GDM. You can make GDM read the script but I'm a Linux noob and can't be bothered.
Anyway, Grid + touchscreen = huge kaoss pad (TM) for a fraction of the price. Or drum pad, I'm finding that it is responsive enough to play sixteenth notes at a moderate tempo.
If you have any questions about touchscreens there's a 50% chance that I'll give you worthwhile information and a 100% chance I'll tell you to get Elo (because they are cheap and I haven't used any others.)
Funny thing about Elo is that the touch system works out of the box, but it inverts X and Y. A couple cleverly placed mirrors might do the trick.
Don't get one if you are dead set on using XP x64. Elo has very good docs even for discontinued items.
Happy parametering!
- J.P.
-
PonZo
So I'm running on 1.33GHz Powerbook G4, OS X 10.3.9 Panther.
Is Panther why Jack is worse than portaudio or am I simply configuring Jack poorly?
I don't need Jack to do any funny business...I simply need it to route audio from pure data out dac 1 2 and dac 5 6 to my firebox (soundcard) and then to the amp. (I also have inputs on ADC 1-4). So I don't need any virtual ins outs whatnot - the only time I got it working I did have to setup "routing" so that "puredata out0" is connected to "firebox out1" etc... Should I mess with the buffer? I also unchecked everything in preferences/ jack router because I was pissed - maybe I should leave some of those checked? But I do not need the router - at all - I can't run another app anyway with what PD is doing.
With portaudio I run a 100ms buffer in puredata - with Jack, it all went to hell, but I'm really hoping to get down to 50ms so that I'm not a f'in 16th note behind.
That said, I'm going to get a PC when I'm not poor...yeah right, I live in the States...20% unemployment...before the riots and looting start (maybe I should wait it out actually). Anyway, I'll start a thread for dream computers but I'm pretty single-minded right now:
3GHz processor
1GHz front-side bus (or one of those fancy new things that's faster than FSB if I can afford it.) FYI, my G4 has 133MHz FSB...ewww.Load Debian.
Load Puredata.
Also, is there any way to put priority to audio above the GUI? - I'm running close to 10 16-step sequencers and other graphics that give me info, but I don't need them to run well - I wish there was a separate graphics buffer.
-
PonZo
Okay, so this things works; I say that first cause when you open it up your palm will probably hit your forehead.
The idea is that there is only one metro for the clock and that it is sending out different streams. So you run the clock (after adjusting shuffle and tempo - move shuffle up to 5 and back down to 0) and then anywhere else in your patch you can:
[r this] ; outputs a stream (at 16th note intervals) 0, 1, 2, 3,....15
[r this96] ; outputs a stream (at 96th note intervals) 0, 1, 2, 3,.....95
[r these] ; outputs a stream (at eight-note intervals) 0, 1, .....31 (4 bars instead of one, controlled by the "phrase buttons 1bar, 2bar or 4bar.)
Some of the others are used by the ACID patch previously posted...the way I setup 16th-note triplets and 32nd-notes is messy, but you could get it to work for you. I think they are and ...
There are some graphics to lag your computer whenever 4-bar, 8-bar, 16-bar periods have elapsed.
You can also:
[r bang4] or [r bang8] which gives you bangs on important phrases.
It also has a built in stutter (unfortunately using another metro.) It stutters the clock output - works pretty well but it's a damn mess. It's under [pd keyboard] because I use a MIDI controller for it. If you can figure it out, more power to you - basically, if you have a MIDI controller you should be able to get it working - it uses thirteen keys C -> C Pressing any of these keys should give you some rhythm, like repeat count 5, 5, 5, 5, 5, unless you also hold down the lower C which would give you 5, 6, 5, 6 or the D which would give you 5, 6, 7, 5, 6, 7...there's other stuff too.
If you're trying to get the ACID to work, don't worry, it should do it just fine, all the sends and receives are there. Put both files in your PD folder, open a new patch, and make an object [ACID4u] and [Clock4u] and they should be talking to each other.
-
PonZo
Hello,
This is what I have been using to control my Paia Fatman which is just a simple analog synth with two sawtooth oscillators. It is very nice to have digital control over analog sound - best of both. It would take some exploring for you to figure the stuff, and I doubt that many folks will have identical equipment.The feature I'm most proud of is the gui for rhythmic control - you may program in 16 steps, 24 steps, or 32 steps, or all at once.
This is why you need a 96-count master clock which I'll post after this (it should be under abstractions but oh well.)
So feel free to rip off my GUI layout for whatever you need it for - I know it's a pain in the ass setting up all the sends (which I did lazily anyway.) There are also some random-material manipulators that are half badass...find the "fatphraser" subpatch. The idea is that you put in an acid line and it generates variations to create a convincing 4-bar phrase...different each time of course.
There is some small help info - look at [pd readtables] for a better idea of what you're dealing with in terms of data juggling.
And remember - this will not make any sound - it is simply sending MIDI information out of your computer to an external MIDI device. You could rig it to a soft-synth.
-
PonZo
Greetings,
Anyone done something like this?
[metro 10] [ADC~ 1] ; a microphone
| |
[ tabwrite~ adc1 ] ; microphone is sampled every 10 ms (~441 samples)The table adc1 is then read by a tabread4~ which is looked up by a [phasor~]-[abs~]-[*~ 441] (forward and reverse, I'll explain)
The frequency is controlled by MIDI keyboard.Awwww, now you see, it is a midi-controlled "synthesizer" using the sample of your voice for the waveform. Very simple program, please experiment if you haven't to discover the issues.
I have my code sloppily "double buffered" (two alternating tables) in a hopeless attempt to reduce distortion.
My hopes and queries:
-
eliminate distortion
-
set the start point of the table lookup to correspond to signal=0 and look up exactly one period of the waveform (crosses 0 again, resets at next 0.) This way the [abs~] would be unnecessary as it is a means of "smoothing the edges." It would also calibrate the pitch. The logic sounds simple enough but I was getting nowhere with the unsig~ "re"sig~ voodoo that I attempted. Any suggestions?
I am thinking that I would be better off sampling 64 samples at a time (1.514 ms or something.) Or more likely 256 or 512 for a full period. Forget about the waveform logic mentioned in number 2), the patch sounds badass as it is and that's all that matters.
Does anyone think that I could use tabosc~ or some exotic table object that may suit my purposes better? Being able to change tables would be nice, for starters.
Please try it out, it will only take 5 minutes to get it making noise, and it is an awesome patch if we get it working properly - much better than a vocoder - and if you don't believe me, try it. Just A E I O U to your heart's content.
I've been meaning to post for months, so a belated thank you to all whose work has frustrated me to the point I'm at now, and a thank you in advance for your help. I've been working on an all in one Techno patch that is very CPU cheap - I will get around to uploading it soon. If anyone out there has a MIDI controlled analog synth you will enjoy my ACID patch - if anyone out there likes break beats, you will enjoy my break looper, randomizer, pitcher, and keyboard controlled stustutter.
*If anyone isn't using a 96tic/bar master clock take that as my first contribution.
This most recent effort is an attempt at something more melodic, though I am dismayed by my 100ms latency on G4 1.33...Debian will be my savior I hope.
Happy projramming
-
-
PonZo
Anyway, you don't want things that are CPU intensive!?!?!?! Are you hoping to use Pd for live performance that is synthesis heavy? Do you need to play an instrument that will interact with the computer in some way?
It works on 64 bit. This is all that I know. I believe that the latest version takes some advantage of 64 bit architecture but I am unsure, see the release notes.
Is the WAV file in question exactly one period? Or would you like to write a program that will detect its different periods and bump each of those into a, say, 1024 point table, so that any timbre present in the WAV file can be reused at any pitch? And played through the different timbres in sequence? With adjustable speed, orientation, whatever?
Cause that'd be tricky. There are some gurus on here, be patient and their wisdom will flow from your computer screen as water from a spray bottle...agh! agh! stop spraying me! Okay go read this tutorial. You'll see.
-
PonZo
Heheh, it was rude of me to even suggest that it was sample based when you made the samples yourself. Interesting idea to split and record several parts simultaneously - an excellent approach to gain some flexibility without having to re record and hope for the best.
I must admit though...I have never constructed wave tables in Pd. What are the basic building blocks of a wave table that allows one to "seek" through gradually changing waveforms? It seems that tabosc4~ would be cumbersome since there must be two that are phase aligned.
-
PonZo
3.audioexamples / J08.classicsynth.pd
When I first got my new computer I copied out eight of those to see if it could handle it - this synth pretty much killed my G4.
-
PonZo
Okay, now I am terrified... I was sure it that it was simply granular manipulation of ORCHESTRAL samples.
I'm interested in your methods of control. At one extreme would be making decisions constantly, the other would be rinsing the track to disk while making a sandwich. And you mention multitracking, so perhaps your control comes in the editorial stage? That is, your "direct aesthetic manipulation" as opposed to the decisions suggested to the computer through your brilliant patch.
What do you mean by an algorithmic wavetable? Like a wavetable data is permuted into a new wavetable, so on? And, for heaven's sake, since when does an accurate periodic waveform sound anything like a real instrument!?!?! What have you done?
Just to be an asshole, as is my want, re-processing and multitracking is inherently "sample" based. I imagine that this became necessary in terms of CPU performance and gaining more control over any finished product.
Again, congratulations, as so many others I was very moved by this work.
As an aside, no offense intended, it reminded me of 4 - 6 AM spent listening to hundreds of birds calling furiously while I (not the birds, I hope) was under the influence of LSD. This is a sincere complement if you can accept it.
-
PonZo
Great, make sure to post if you make a new recording, I'd love to hear multiple sound sources.