PURE DATA: 22 Advanced Audio with [tabread4~]

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ก.ย. 2024

ความคิดเห็น • 88

  • @RaccoonEatingCacti
    @RaccoonEatingCacti 8 วันที่ผ่านมา

    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 8 ปีที่แล้ว

    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  8 ปีที่แล้ว

      +William Huston Thx for the kind words, William.

  • @cheetomoskeeto
    @cheetomoskeeto  14 ปีที่แล้ว +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).

  • @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)!

  • @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.

  • @AudioFusionPro
    @AudioFusionPro 11 ปีที่แล้ว

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

  • @iosmusicman
    @iosmusicman ปีที่แล้ว

    Super instructional. Many thanks. Cheers. Lee

  • @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?

  • @doohoyi
    @doohoyi 11 ปีที่แล้ว

    amazing tutorial. got lots of help! thank you.

  • @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 TH-cam if you did. Thanks, all your videos are excellent and very helpful.

  • @JhOzEnhsk
    @JhOzEnhsk 9 ปีที่แล้ว +3

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

  • @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.

  • @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!

  • @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.

  • @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...

  • @aleksandertidemann5208
    @aleksandertidemann5208 3 ปีที่แล้ว

    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

  • @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?

  • @redmermaid14
    @redmermaid14 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?

  • @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.

  • @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.

  • @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.

  • @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

  • @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?

  • @enslavementuk2566
    @enslavementuk2566 8 ปีที่แล้ว +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.

  • @uoailewa
    @uoailewa 7 หลายเดือนก่อน

  • @BurkhardusX
    @BurkhardusX ปีที่แล้ว

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

  • @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.

  • @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.

  • @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!

  • @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.

  • @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?

  • @bubulili
    @bubulili 7 ปีที่แล้ว

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

  • @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.

  • @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?

  • @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??

  • @collectifsin1
    @collectifsin1 11 ปีที่แล้ว

    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..

  • @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!

  • @cheetomoskeeto
    @cheetomoskeeto  14 ปีที่แล้ว

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

  • @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...

  • @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

  • @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

  • @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.

  • @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.

  • @cristianriano6384
    @cristianriano6384 7 ปีที่แล้ว

    Hello, someone knows about convolution in pure data

  • @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.

  • @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?

  • @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 11 ปีที่แล้ว

    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 11 ปีที่แล้ว

    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 11 ปีที่แล้ว

    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..