Seq Sampler Loop
No sound out of this Oscar.
Here's a bit of the error message:
ch file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus13.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus16.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus16.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus14.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus14.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/zapa06.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav:
But, it looks awesome.
Keep well ~ Shankar
Fuck i love pd
@newlin said:
Great work. Can you summarize your stutter technique (objects used, etc.)?
yeah, the speed control, stuttering, pitch, all that stuff is quite easily controlled once you get your head round [tabread4~]
basically, what that object does, is play back your sample at the position you tell it to.
so, to playback normally, you`d send a constant stream of numbers into [tabread4~] at the samplerate of your sample. like this:
[0, 44100 1000(
|
[line~]
|
[tabread4~ mysample]
so what just happened, is i told the [line~] object to make a ramp from 0 to 44100 in 1000 ms. since most samples i use are 44100hz samplerate, that would play back 1 second of the sample in 1 second.
if i wanted to play it back twice as fast, i could send this to the ]line~]:
[0, 44100 500(
if i wanted to play back at normal speed, starting at 1 second into the sample, then i could send this:
[44100, 88200 1000(
|
[line~]
anyway, have a play round with [tabread4~] and read its help document and you~ll figure it out.
once you learn how to use that, then it~s just a case of doing the calculations to convert samplerate to millisends, and cut your sample into 4,8,16 sections etc.
also, its important to ramp the volume down before sending new messages [tabread4~], and then ramp the volume back up after sending them. a ramp time of about 5ms down and 5ms up has little effect on your sample playback, but stops a lot of clicking noise.
hope that helps. it"s abviously not as simple as just adding a [stutter~] object to your patch. but once you can figure out how all that works, you"re well on the way to learning and implementing all sorts of sample manipulation procedures.
good luck. matt
Looper with overdub and punch PLUS storage in a table
Take a look at this patch!
Now I've got something that almost does what I intended!
When you toggle record on, it starts writing to a large temporary table. When you toggle it off, it copies the contents of the temporary table to the table called $1 (in [pd tablecopy]). While it's playing, you can overdub by toggling [dub] and punch by toggling [pch].
Issues: If you push play too soon after you finish recording, it plays the first time through okay, and then makes this terrible block-sized-feedback noise. Strangely, if you toggle record again after this happens, it finishes playing the loop normally as it starts recording again (try it). So you have to wait to push play. Ideally, it would work like a looper pedal and start playing back immediately after you stop recording.
Also, there's a glitch when it wraps around to the beginning of the table (you can't overdub a steady tone and expect it to play without a gap).
I want to use a table at some point because I really want the ability to load a wav file and overdub it, and to give other parts of my main patch access to my loop to chop it up, granularize it, and otherwise manipulate it. Is there a way to do this while fixing all the above issues?
Thanks!!!
Looper with overdub and punch PLUS storage in a table
Take a look at this patch!
Now I've got something that almost does what I intended!
When you toggle record on, it starts writing to a large temporary table. When you toggle it off, it copies the contents of the temporary table to the table called $1 (in [pd tablecopy]). While it's playing, you can overdub by toggling [dub] and punch by toggling [pch].
Issues: If you push play too soon after you finish recording, it plays the first time through okay, and then makes this terrible block-sized-feedback noise. Strangely, if you toggle record again after this happens, it finishes playing the loop normally as it starts recording again (try it). So you have to wait to push play. Ideally, it would work like a looper pedal and start playing back immediately after you stop recording.
Also, there's a glitch when it wraps around to the beginning of the table (you can't overdub a steady tone and expect it to play without a gap).
I want to use a table at some point because I really want the ability to load a wav file and overdub it, and to give other parts of my main patch access to my loop to chop it up, granularize it, and otherwise manipulate it. Is there a way to do this while fixing all the above issues?
Thanks!!!
Axiome: live sample cutting
That's a good question domien: i spent so much time on it that i figured that it would be pretty self-explanatory.
My mistake...
I'll write it as a start for a manual:
To play a slicer, you have to push a "radio" (they're vsl's too
). The sample starts at the position of the button (you have to imagine your sample apportionned on the eight buttons, even if it's 4bars length). To stop the sample, press "PLAYING" (i know this is not common sense, but wait for the next release...).
The sample-cutter (eight buttons) actions are quantized to 1/16. So you can start a loop and when it comes at the end, start a second one and if you get the good 1/16 timing, it will sync to the first one. And so on...
Now, the pattern section (darker grey):
A pattern is a recording of actions on the cutter-buttons.
Set the length. (in 1/16)
Press "record" -> it shows "press", waiting for an action on one of the cutter-buttons (not necessarily the first one) to start recording. You can cancel record-enabled, recording or playing states anytime by hitting the record button again.
So, if you enable record and press a cutter-button, you start the record counter (record button became "recording").
Play on the cutter-buttons to record a pattern loop.
At the end of the record loop, the pattern recording plays back automatically what you've just played and becomes "playing".
You can stop the slicer (press "PLAYING"), but the pattern is still playing in the background until you press ("playing") to stop it. You can start the slicer again (press any cutter-button and the pattern is plays at its current position).
@domien:
To start or stop several slicers simultaneously, you'll need to have either:
-several mouse pointers (duh!!?)
-a computer keyboard or a midi keyboard, with key assignments (you'll have to create an abstraction or subpatch. But that would not be difficult, just send bangs to the button's inputs... i may work on that later)
-Other hardware... like the monome, which buttons are mapped to the ui (see the subpatch monome_com inside the slicer abstracts.
Anyway, you can still get the samples in sync by waiting for the end/beginning of the other loop(s).
Hope i didn't confuse you with my long explanations.
Putting the draft into the package...
Oh and thanks for the compliment
.
Cheers
Help please!!!
So I am new to PD and am taking a class. I currently have an assignment due in a few days and I am trying to finish it. I have to design a patch with multiple subpatches that will do to things.
Layer 2 On this layer the sound will play at a normal speed/pitch and it will play every 10 seconds. Gradually, the periodicity of the repetition will start increasing and it will take 2 minutes to end up playing every 5 seconds. After that minute the processes will start again, over and over. In other words, there will be an accelerando in the repetition of the unmodified sound. 2 points Layer 3 On this layer the sound will play over and over but the speed/pitch will change randomly so sometimes the sound will play faster (up to a tenth of a second) and sometimes the sound will play slower (up to 10 seconds). When the file plays faster it will naturally play at a higher pitch, and when it plays slower it will play at a lower pitch. On each repetition the sound should play sometimes forward and sometimes backwards.
Any suggestions on how to do this would be I would like to recieve because I am really confused
5x5 game & Tower of Hanoi implementation
5x5 game.
The Emacs crowd might know the 5x5.el game by Dave Pearson. It's about filling in a 5x5 squares but "obstructed" by a certain logic:
By "painting" (clicking in this case) a square inverts it's "colour" and inverts the colour of the surrounding (if any), but not diagonal, squares. It's made out of toggles, so in this case it's about to get all the toggles 'on'.
I've implemented it in Pd, and you can download it from [1]. - How many moves do you need to toggle them all?
Tower of Hanoi.
The Tower of Hanoi "problem" is usually seen as a toy which have three poles and a number of discs with different sizes. The game is to move the discs from one pole, where they are stacked such that their size increase from the top down, to one of the two other poles by only moving one discs at the time; and only to either an empty pole or a pole where the discs on that pole are (all) bigger then the disc being moved.
I've implemented a "solution" to the problem of moving user defined number of discs in as few moves as possible in Pd. It's an abstraction, that in when bang'ed make a move and outputs what disc was moved, from where it was moved and to where it was moved. It can be download from [1]. - It could easily have musical applications.
Escher-esque chord progressions
I've been getting into writing patches that generate music all by themselves, using mathematical
rules that apply quite nicely to music theory. I've made a few rhythm patches that make nice cross
rhythms using metronome division and delays (with values derived from multiples of the master
metronome), and i'll post these too if anyone is interested.
In this thread I'm showing off my "Mauritz Escher like Chord progressions" patch.
Screenshot: 
Mp3: http://responsible7.googlepages.com/zenpho_escher_pd.mp3
Patch: http://responsible7.googlepages.com/zenpho_escher.pd
First some basic music theory:
(skip this if you're comfortable with chords, 7ths, and inversions)
A major scale is constructed of 8 notes, with the "root" note doubled at the 8th note.
For the key of C major (all the "white" notes on a piano) the names and numbers of the notes in
the scale of C-major are:
Name, Number:
C, 1st (root)
D, 2nd
E, 3rd
F, 4th
G, 5th
A, 6th
B, 7th
C, 8th (remember the root is doubled at the octave)
A triad is constructed of the 1st, the 3rd, and the 5th notes in the scale.
A SEVENTH chord is constructed of a triad (notes 1,3 and 5) PLUS the 7th note in the
scale. So a C major 7th is note 1,3,5,7 or C,E,G,B.
Up until now we've been describing "standard" voicings of the chords, in other words, the notes
are played so that the root is the lowest pitched note, the 3rd is higher, the 5th is higher
still, and the 7th is the note just below the octave of the root.
At the risk of sounding redundant, "octave numbers" after the note name help clarify which octave
the note is to be played in. To play a C major 7th on the third octave, we would write:
C3,E3,G3,B3. To play it an octave higher we would write: C4,E4,G4,B4.
"Inversions" of chords re-order the pitches of the notes, but still play notes with the same
"name" as the 3rd, 5th, 7th etc. For example:
C3,E3,G3,B3 is a standard C major 7th...
...and G2,C3,E3,B3 is an inversion. All the notes are there (C,E,G,B) but they are in a different
order to the normal "Root, Third, Fifth, Seventh" arrangement. In this case, we say that "the
fifth is in the root".
Okay so now we know what a major 7th chord is. Lets deal with chord progressions.
Now imagine playing C3,E3,G3,B3 and removing the "root" (the C3) from the notes played,
we have a chord that reads "E3,G3,B3" - we were playing C major 7th and now we're playing E minor.
*THIS IS A VERY IMPORTANT STEP* Moving from C major 7 to E minor sounds "natrual" because the
notes that occour in C major 7 ALSO occour in the E minor.
Now lets make this E minor chord a 7th...
We've said before that a 7th chord can be constructed by playing the 1st, 3rd, and 5th notes, PLUS
the 7th note in the scale.
The scale of E minor (a flavour of minor) is:
Name, Number
E, 1st (root)
F#, 2nd
G, 3rd
E, 4th
B, 5th
C, 6th
D, 7th
E, 8th (octave)
The 7th note is "D" so we add the D note to our E minor triad to make E minor 7th.
E minor 7th is therefore: "E3,G3,B3,D4".
We can extend this E minor again, removing the root, working out the new scale for G major, adding
the 7th to make G major 7th, and again, and again, and again... but if we do - we keep moving
*UP IN PITCH* and spiral off the end of the keyboard.
HOW THE PATCH WORKS
Okay, so what my patch does is to take the idea of generating new 7th chords over and over,
but to play inversions of these chords so that the notes stay inside a single octave. If the
"root" note is in the 3rd octave, C3 for example. Then when I move to E minor, the D4 is
transposed to be a D3, to keep within this octave range.
Due to the fact that there are 12 semitones in an octave, and notes that fall outside the octave
range will wrap around to be an octave lower. The maths for generating the new chords basically
involves taking each note in the current major 7th chord and adding two semitones to each note in
turn.
Now our terminology could cause confusion here, because there are "notes in a scale" and "notes in a chord"... So I'm going to define some notation to show when i'm talking about the notes in a
chord.
For example:
A C major 7th has the notes C3,E3,G3,B3.
Note-1-in-the-chord is to be defined as chord_note_1.
Note-2-in-the-chord is defined as chord_note_2.
Note-3-in-the-chord is defined as chord_note_3.
Note-4-in-the-chord is defined as chord_note_4.
chord_note_1 has the pitch C3.
chord_note_2 has the pitch E3.
chord_note_3 has the pitch G3.
chord_note_4 has the pitch B3.
It is important to be clear about the idea of "pitch", "chord_notes" and "scale_notes" because
because chord_note_3 has the pitch "G3" and scale_note_3 of C major which is the pitch "E3".
Back to the procedure for generating new seventh chords.
We generate a major 7th to begin with.
C3,E3,G3,B3.
We add 2 semitones to chord_note_1 to get "D3", and we leave the other notes alone.
Our chord now reads: D3,E3,G3,B3.
Which is an "inversion" of E minor 7th.
This time we add 2 semitones to chord_note_2 to get "F#3", and we leave the other notes alone as
before.
Our chord now reads: D3,F#3,G3,B3
This is an inversion of G major 7th.
This time we add 2 semitones to chord_note_3 to get "A3", we leave the other notes.
Our chord now reads: D3,F#3,A3,B3
This is an inversion of B minor 7th.
This time we add 2 semitones to chord_note_4 to get C#4...
*BUT C#4 IS OUTSIDE THE OCTAVE 3! So we TRANSPOSE it down to C#3*
Our chord now reads: D#3,F#3,A3,C#3
This is an inversion of D major 7th.
After my patch modifies all 4 chord_notes, it moves back to chord_note_1, and adds another
2 semitones... over and over.
Eventually we get back to C major 7th again, but on the way we move through a variety of different
chords that evokes very interesting changes of moods.
Want to try playing with it?
Mp3: http://responsible7.googlepages.com/zenpho_escher_pd.mp3
Patch: http://responsible7.googlepages.com/zenpho_escher.pd