PURE DATA: 22 Advanced Audio with [tabread4~]

Поділитися
Вставка
  • Опубліковано 4 жов 2024

КОМЕНТАРІ • 88

  • @RaccoonEatingCacti
    @RaccoonEatingCacti Місяць тому

    This is exactly what I came to pure data for. Thank you!

  • @PizzWisard
    @PizzWisard 6 років тому +4

    For those wondering how to trigger the sample and have it play once instead of looping.
    Trigger the sample using the the message shown at 13:20 then use a delay set with the time length of the sample to send a bang to stop the sample once it has played.
    Simple yet effective.
    Thank you for the tutorial by the way! It's been very helpful.

  • @richardjermain4052
    @richardjermain4052 4 роки тому +1

    Watched this first nearly 10 years ago. I feel really comfortable with PD now and put it down for a while before coming back to old projects. When I need a refresher, I always come back here before looking anywhere else. Still the best tutorial playlist on YT! Thanks!

  • @williamhuston1
    @williamhuston1 9 років тому

    This is such a great video. Just enough detail to get the basic idea. This video was the basis of my "Sample-Looper" abstraction which was the first module in my BHPDToolkit. I've made several tracks on my Soundcloud channel which use this looper as the basis. I am just beginning to design a protocol to automate this (and all my modules) using OSC, so it will be able to be controllable with messages, and be able have persistence, store/recall patches, replay the movements of a live performance, etc. I have not had this much fun with computers since hacking on a TRS-80 in about 1979! Thanks Dr. Hernandez, and also Miller Puckette for this amazing tool.

    • @cheetomoskeeto
      @cheetomoskeeto  9 років тому

      +William Huston Thx for the kind words, William.

  • @iosmusicman
    @iosmusicman Рік тому

    Super instructional. Many thanks. Cheers. Lee

  • @christorb
    @christorb 9 років тому

    Thanks for uploading all of these tutorials. I've not used Pure Data before and I'm having to design a listening test in it. Your tutorials are really useful!

    • @cheetomoskeeto
      @cheetomoskeeto  9 років тому

      Christopher Youdale Ahh... the contemporary "drop the needle" implemented in Pd; music to my ears!

    • @christorb
      @christorb 9 років тому

      Well it's certainly saved me the headache of attempting to design one in Matlab, which doesn't seem to be all that great for real-time audio applications!
      I'm actually really enjoying Pure Data! Relatively intuitive and I can see you'd be able to get pretty creative with it! I'll be playing around with it more in the future, beyond designing my test (which has gone well so far)!

  • @AudioFusionPro
    @AudioFusionPro 11 років тому

    these tutorials are so awesome. THanks for hooking it up!

  • @Anton-wc7lb
    @Anton-wc7lb 4 роки тому

    This is great! Thank you! I connected from the Hslider to the right into the right inlet of the phasor-object, that way it's turned into a scrubber tool as well :) Rock on!

  • @cheetomoskeeto
    @cheetomoskeeto  14 років тому +1

    @obmij132 use [t b f] and connect the rightmost outlet to the right inlet of a [f ] and connect the leftmost outlet of to a [0 ( Then code some sort of on/off by sending a bang to the left inlet of the [f ] that is storing the playback rate.

  • @doohoyi
    @doohoyi 11 років тому

    amazing tutorial. got lots of help! thank you.

  • @cheetomoskeeto
    @cheetomoskeeto  15 років тому +1

    @reduxphl thx for the comments. indeed, I'll be making a tutorial for making GUIs in Pd using graph on parent and graph on canvas. Eventually, I'll be getting to granular synthesis too (which this is the foundation for).

  • @reubenriisager9852
    @reubenriisager9852 9 років тому +1

    cheetomoskeeto I'm having an interesting problem, I'm sure I have followed this tutorial perfectly, but I get "$1: argument number out of range" . I hope you can help, thankyou so much for all these tutorials, they have helped me so much!

  • @JhOzEnhsk
    @JhOzEnhsk 9 років тому +3

    I have this problem
    $f1: no such table
    gatom: no method for 'read'

  • @Sevish
    @Sevish 6 років тому

    Thanks for the video. I'm coming from the Max/MSP Windows world and now wondering how difficult it will be to learn Pure Data when I switch over to Linux. Looks like a piece of cake!

    • @curls6778
      @curls6778 3 роки тому

      Hey, cool seeing your comment here. I really like your music, it's some of the best microtonal music out there.

  • @thimkthimk
    @thimkthimk 13 років тому

    @ayearofholidays you may have figured this out already, but you can send the slider back out to the phasor's right inlet.

  • @Smomid
    @Smomid 7 років тому

    Can you make a video where you take this patch and alter it to record live audio? I think it might be the most popular video on UA-cam if you did. Thanks, all your videos are excellent and very helpful.

  • @uoailewa
    @uoailewa 8 місяців тому

  • @cheetomoskeeto
    @cheetomoskeeto  12 років тому

    @elektromoon you aren't doing anything wrong. this ends up being a limitation of [tabread4~]. Check out the Pure Data forum (Google it) for workarounds.

  • @BurkhardusX
    @BurkhardusX Рік тому

    How to change playback speed without affecting the pitch? Eslastic Audio?

  • @demonicsweaters
    @demonicsweaters 4 роки тому

    great tutorial. I'm looking to trigger samples with a midi controller one shots or loops. Do you have any tutorials like this?

  • @gusmiller
    @gusmiller 11 років тому +1

    Hi firstly thank you. I've been going through your videos and they are very helpful.
    I seem to be getting the error;
    "usage: read [flags] filename tablename..."
    and I don't understand what it means, any help (from anyone) would be much appreciated.
    Thank you
    .GuS.

  • @xoshaun
    @xoshaun 9 років тому

    Hi Rafael. I made it through the tutorial quite well with all of my placement. For some reason my file would not play. It is an .aif file. I posted a screen capture... Video with still image so you can look at it. I'm not sure why it isn't working.

    • @Merthalophor
      @Merthalophor 9 років тому

      Check the console. There is a quite exact error message. If I was you I'd try to open a wav file and see if that works...

  • @elektromoon
    @elektromoon 12 років тому +1

    Maybe I do something wrong, but for me it works very strange. I always have a soundfiler_read error: truncated to 4000000 elements, and the samplesize is always 4e+06, which means that the speed is always the same, what is more, the track lasts maximum 90 sec even if it is originally longer, it is cut after 90 sec. What can be wrong? How could I add long tracks like 10-20 minutes? Thanks in advance for the help.

  • @zhou_sei
    @zhou_sei 12 років тому +1

    awesome vid!
    one question: is there a way to have this patch play once when hit with a bang?

  • @collectifsin1
    @collectifsin1 12 років тому

    hey guys, I'll check into the forum but i think your the most efficient to answer to that:
    bout this prblm of limitation in the duration of the sample, is there any solution?
    cause i know there is other soundreader but they dont permit to do some timestretch or move into the sequence like granular synthesis, and i have to do that on a 1 hour track!... Hope pure data is not so restricted.. but i understand that ask 1 hour of sample to a buffer is a lot..

  • @elmeromero3836
    @elmeromero3836 6 років тому

    hey was the tutorial for granular synthesis ever made ?? the looper or sampler in this tutorial is cool but i like to add duration and dont know how ... all the tutorials are gret by the way .. thank you for that

  • @EsaRuoho
    @EsaRuoho 11 років тому

    nevermind - i had to reboot pd-extended and it worked. this has been so awkward for me - not sure if i should just save and restart everytime it doesn't recognize an object.

  • @UtenteM
    @UtenteM 5 років тому

    if I duplicate the array, the file's speed rate is subject to variations (sometimes faster, sometimes slower), I renamed the tables different, and I also putted the value of the original speed rate into the message box which goes to phasor, so I tried to tap that when the problem comes, but the velocity is still speeded or slowed down. Why this happens? How can I fix it?

  • @jsogman
    @jsogman 6 років тому

    I'm hoping to make something just like this but I'd like to sample live incoming audio, and then perform these same opperations, pitch, and playback start etc (not to mention other cool stuff like backwards playback etc...) But wondering how the table size calculation would work... I guess I just keep one table size and sample rate? The issue is I want to get something into the buffer/table by starting and stopping recording when I tell it to and so that seems like it would be great to make it of a variable size up until the biggest size of the buffer... Does this sound like I could use this vids technique to extend to do what I'm trying to do? Thanks for any answers/suggestions in advance...

  • @blairforbes1132
    @blairforbes1132 7 років тому

    Does anyone know how to program pure data so that it automatically calculates the sample size whenever a different sample is loaded into the patch and then relays that to the message box that feeds into the hslider which then acts as the play button?

  • @cheetomoskeeto
    @cheetomoskeeto  14 років тому

    @Alex787 [read( goes into [soundfiler] and [soundfiler] goes into [expr]

  • @aleksandertidemann5208
    @aleksandertidemann5208 4 роки тому

    Hey! Quick question; how would you go about stopping a clip when it has done one full cycle? I know there are no [select] objects which operate at audio-rate so I'm curious what the best method would be. All the best

  • @enslavementuk2566
    @enslavementuk2566 9 років тому +1

    Hey i need a hand with creating audio from video in pure data, this video helped me so much but i am hopelessly stuck when it comes to getting any data from the video to create audio
    do you have an email or anything i could talk with you via?
    Cheers.

  • @adamwright139
    @adamwright139 8 років тому

    I know you say you won't deal with changing the pitch separate from the speed in this video but did you ever make a video where you do this?
    Thanks

    • @cheetomoskeeto
      @cheetomoskeeto  8 років тому

      +adamwright139 I never got around to this.

  • @Dinos4urFour
    @Dinos4urFour 6 років тому

    How could I create a patch where the sample plays up to a certain point, and then returns to the start of the file? E.g. I have a X ms sound file and I want it to start playback from Y ms and end at Z ms and then start from Y again. How could I implement this such that I can change the Y and Z values in real time?

  • @mateorovere1181
    @mateorovere1181 5 років тому

    Hi! This tutorial is awesome!!
    Just have a cuple questions:
    Why is it on loop without using the loop object?
    What do i have to change to make it sound once?

    • @michaelsintros292
      @michaelsintros292 5 років тому +1

      It's looping because the playback position is being determined by a saw wave oscillator (phasor~), which is repeating in nature. If you want it to play only once (i.e. stop once it gets to the end), you could set up a conditional statement that bangs the "0" (connected to the inlet of phasor~ in this patch) when the current position is the last sample (given by sampleSize in this patch). Or you could just use a "line" object instead of phasor. If you don't want to have the other features (such as looping playback, variable speed, etc) this might be preferable.

    • @mateorovere1181
      @mateorovere1181 5 років тому

      @@michaelsintros292 Great!! Very helpful Michael, thank you!

  • @cristianvillarreal8891
    @cristianvillarreal8891 9 років тому

    I made the process step by step, but the soundfiler doesn´t send any number. Somebody knows what can be the problem? Thanks!

  • @ayearofholidays
    @ayearofholidays 14 років тому

    Hello again. I made this audio player of yours, and I tried adding a 0 to 1 slider instead of just message boxes with numbers, and it works, however there's this ugly zipping noise. I know you've mentioned vline~ before, and I tried it as the help file uses it, but then it just stutters and won't play. Ideally, it would be great to use the same slider that's tracking the playback to adjust and its playback position. Is there a way to do that? Thank you!

  • @MiiukiSama
    @MiiukiSama 8 років тому +2

    Hey, I have a problem with the command "expr 44100 / $f1" it just don't work, sends an error... I've tried many different ways of writting it, any suggestions?.
    Thanks

    • @GrampaMadeAVideo
      @GrampaMadeAVideo 8 років тому

      +Augusto Aleksei I have this same problem

    • @rafaelhernandez2096
      @rafaelhernandez2096 8 років тому +1

      +Jen Kutler Hmm... when I patch it, [expr ] works properly. The file type will matter. In the example, I'm using a .wav file. Send me a DM.

  • @nathan1234xxxxx
    @nathan1234xxxxx 10 років тому

    Am new to PD, i tried this however when I import a .wav file nothing happens?
    What am i doing wrong? Tutorials never tells you what to when when something doesn't work.

  • @AntsanParcher
    @AntsanParcher 8 років тому +1

    Wouldn't it be more sensible to control speed by multiplying with the sample rate? That would be file-independent, too.

    • @michaelsintros292
      @michaelsintros292 5 років тому

      That's essentially what you're doing here. Phasor just generates a saw wave and you can manipulate the speed and amplitude of that wave. This momentary "position" of this wave is used to determine the sample being played back, so if you are manipulating the rate of this wave, you *are* manipulating sample rate. Note that there is not really a parameter here that is explicitly called "sample rate", nor do I think there is one in PD, because we're working with sound on a much more basic level here.

  • @bubulili
    @bubulili 7 років тому

    how can i make a sampler and load very long samples to pure data?

  • @Alex787
    @Alex787 14 років тому

    i made this exactly the same but got this message when trying to load an audio file "error: expr: no method for 'read'" any ideas??

  • @casillamo
    @casillamo 8 років тому

    Hello Dear @cheetomoskeeto,
    I am a music teacher and I would like to include this example in an article about using Pd for music education. I want to know if this example was developed by you and how can attribute it. Thanks

    • @cheetomoskeeto
      @cheetomoskeeto  8 років тому +1

      +Camilo Ignacio Leal Molina Send me a PM

  • @raverlof
    @raverlof 11 років тому

    Hi! First of all, thank you for all your time and effort with this tutorials.
    I dont understand why you enter a ratio to a phasor~ which its hot inlet is expecting a number to convert it to frequency?? Why for? Shouldnt you enter a frequency? I'm a bit confused...sorry = ) maybe its a dummy quesiton... hehe
    thanks again for all your help! really appreciate it.

  • @chk05120
    @chk05120 8 років тому

    Hi. I'm quite new to PD. Is it the phasor that keeps the loop going? How can I get it just to trigger once. I want to be able to bang it to start at the beginning every time it receives a bang. I figured another way out. The [open"loop"] message into [readsf~] works but I lose the true stereo. The tabread4~ gives me the correct stereo image playback. Any advice would be appreciated. Thanks

    • @cheetomoskeeto
      @cheetomoskeeto  8 років тому +1

      +Carlo Thompson use [line~ ] instead of [phasor~ ]

    • @chk05120
      @chk05120 8 років тому

      Thanks

    • @soanis6362
      @soanis6362 7 років тому

      is it possible to plug line~ to tabplay~ for a clip progress bar?

  • @cristianriano6384
    @cristianriano6384 7 років тому

    Hello, someone knows about convolution in pure data

  • @mucinexmonster8958
    @mucinexmonster8958 8 років тому +1

    @cheetomoskeeto Is it possible to do this twice in the same patch and have two separate sound files playing at once? If so how? I tried just copying and pasting the whole thing it would only work for one sound. I tried connecting it to the same dac but it didn't work.

    • @cheetomoskeeto
      @cheetomoskeeto  8 років тому +1

      +Maryjane Stewart It is possible. You'd need to change the table/array names, however. So, you might do something like "channelL-01", "channelR-01" where the "-01" is the difference between the two. You'd need to also remember to change the [tabread4~ ] objects to ensure that they are reading from the correct tables.

  • @brianf1295
    @brianf1295 10 років тому +1

    How do I stop this loop after one run through? Very curious how to do this.

    • @rafaelhernandez2096
      @rafaelhernandez2096 10 років тому +1

      Use some sort of [==] or [sel 1] in conjunction with a [spigot] to cut the flow of the signal or then set the playback to 0 by setting the frequency of the [phasor~] to 0. The latter is probably more preferred because the [phasor~] is what drives the playback of the sample by reading it from the table.

    • @brianf1295
      @brianf1295 10 років тому

      great, thanks. I'll try it.

    • @squireltheo
      @squireltheo 9 років тому

      Rafael Hernandez Hey, also trying to stop this from looping so that it can be triggered instead. Can you explain this in logical terms please. Like, if ? == ? do ?. Cheers in advance :)

    • @rafaelhernandez2096
      @rafaelhernandez2096 9 років тому

      squireltheo What you want to always keep in kind is that this technique uses a continually oscillating wave ([phasor~]) in order to read the table. So, you'll never be able to stop that wave as long as the dsp is on. This makes triggering quite challenging but still doable. The solution would essentially involve a tracking of the samples to determine when to stop and a use of [phasor~] right inlet to explicitly start it at a certain point. The pseudocode:
      - TRIGGER sample from starting point (right inlet value of 0 to 1 where 0 is start and 1 is end)
      - IF sample has surpassed the maximum length of samples it should go, set the amplitude to 0 (effectively turning it off)
      - ELSE let the sample play

    • @squireltheo
      @squireltheo 9 років тому

      Cheers man! Sounds perfect! Much appreciated.

  • @stevenlandry4404
    @stevenlandry4404 8 років тому

    Anyway to write an mp3 file to a table? or only .AIFF's or .WAV's?

    • @cheetomoskeeto
      @cheetomoskeeto  8 років тому +1

      +Steven Landry [soundfiler] doesn't support decoding mp3s.

    • @stevenlandry4404
      @stevenlandry4404 8 років тому

      Does anything in pure data do? Mp3play~ doesn't seem to work for pc

  • @regfinley7111
    @regfinley7111 7 років тому

    Hello. I have a question. I am researching programs and sdk's and such to make a production work station synth/sampler And to do this I will be using a raspberry pi. this tutorial opened my eyes to Pd and I think it is exactly what i need as it can run on Linux. So my question is would I be able to use the pd library to handle all of the audio on my raspberry pi and trigger the play and stop "bang's" because as of now this tutorial is all I really need to make a midi controller out of an arduino which is simple enough then to get the serial midi data to start triggering wave files that are located on my raspberry pi.

    • @cheetomoskeeto
      @cheetomoskeeto  7 років тому

      This is all possible and, as well, quite common in the Pd community. I suggest you check out the Pure Data group on Facebook for an active group of folks who use Pd like this (and in other ways).

  • @bluevioletalien
    @bluevioletalien 11 років тому

    Sample size should have been 649984, you made it 649974.

  • @itzniebang9582
    @itzniebang9582 8 років тому

    Can you send me the 'synth-guitar.wav' file?

  • @collectifsin1
    @collectifsin1 12 років тому

    hey guys, I'll check into the forum but i think your the most efficient to answer to that:
    bout this prblm of limitation in the duration of the sample, is there any solution?
    cause i know there is other soundreader but they dont permit to do some timestretch or move into the sequence like granular synthesis, and i have to do that on a 1 hour track!... Hope pure data is not so restricted.. but i understand that ask 1 hour of sample to a buffer is a lot..

  • @EsaRuoho
    @EsaRuoho 11 років тому

    Hi, I tried to do a cmd-1 and add "expr 44100 / $f1" but it said that it's not valid (red brackets around the box).. When I tried to make it into a message with CMD-2, it would work, but keep saying
    gatom: no method for 'expr' .. phasor~: no method for 'expr'.. what am i doing wrong with PD-Extended for OSX?

  • @collectifsin1
    @collectifsin1 12 років тому

    hey guys, I'll check into the forum but i think your the most efficient to answer to that:
    bout this prblm of limitation in the duration of the sample, is there any solution?
    cause i know there is other soundreader but they dont permit to do some timestretch or move into the sequence like granular synthesis, and i have to do that on a 1 hour track!... Hope pure data is not so restricted.. but i understand that ask 1 hour of sample to a buffer is a lot..

  • @collectifsin1
    @collectifsin1 12 років тому

    hey guys, I'll check into the forum but i think your the most efficient to answer to that:
    bout this prblm of limitation in the duration of the sample, is there any solution?
    cause i know there is other soundreader but they dont permit to do some timestretch or move into the sequence like granular synthesis, and i have to do that on a 1 hour track!... Hope pure data is not so restricted.. but i understand that ask 1 hour of sample to a buffer is a lot..