![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: disk file record/play |
Bill Meadows Member |
![]() ![]() ![]() I have been trying to create a sound installation environment and have been frustrated in my attempts to write and read disk files. I would like to record a live input to disk, then much later play that recording back. I tried doing this in a timeline, by placing a disk recorder followed by a disk player. I must create a "dummy" disk file inorder for the player to compile, but then the timeline records the file fine. However, when the disk player tries to play it back, it fails. The failure will be anything from playing the old "dummy" sound file contents to totally crashing the Mac. It seems like the disk player can only play files that exist at compilation time. This seems bizarre to me - it isn't loading into memory - so why can't it be changed "on the fly"? I could use MemoryWriter and Sample, but then I am limited to a three minute sample time, and more importantly, the MemoryWriter/Sample sound would have to "exist" on the Capy for the entire duration of the installation - thus eating into my available DSP resources. Am I missing something here? IP: Logged |
SSC Administrator |
![]() ![]() ![]() We looked into doing this several years ago, but it is more complicated than it might seem. It *is* on our list. As far as MemoryWriter/Sample pairs, you do not need to have the Sample playing the whole time. Kyma will reserve the MemoryWriter's memory until the Sample uses it. During the intervening time no DSP processing is used up. IP: Logged |
dennis Member |
![]() ![]() ![]() I'm familiar with what you're describing, Bill. At execution time, the file space must be available so that the DiskRecorder on the Capybara is guarenteed to succeed. I think, but I'm not certain, that the file space is allocated at load-time. (The Tape Recorder tool seems to be the one exception and I'm not sure how that works.) If the file space is allocated at load-time rather than compile-time, that suggests a workaround. Perhaps you can have several different Sound structures, all compiled seperately so that they can be loaded seperately. In some, you place DiskRecorders for files X,Y,Z and in others you place DiskPlayers for X,Y,Z. I'd probably try using a CompiledSoundGrid to organize the Sounds. Hopefully, some SmallTalk script will permit you to invoke the appropriate sequence of Sounds so that you alternately record and playback. Otherwise, you'd have to use an external MIDI sequencer. Does this make sense? IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: I understand having to allocate space for the recording. In my tests, I have to create a "dummy" recording (by simply running the DiskRecorder) that has the appropriate length and filename inorder for the *Player* to compile. What I don't understand is why, once this is done and the Sound is running, if I re-write that disk file then the DiskPlayer can't play it - even though it has the same length and filename. What you are suggesting would work if I was willing to sit there and run recorders, then *compile* and run players. (A Grid won't work.) This is a pretty big limitation for live installations. IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: What it won't do is allow me to process a recording in a variety of ways - all of the processes would have to compile into one giant Sound. Nor could I run any other Sounds inbetween recording and processing (e.g.-in a Timeline) If the recording length and filename remain the same, I don't see why the file *contents* should prevent playback from disk. IP: Logged |
SSC Administrator |
![]() ![]() ![]() quote: In a Timeline you could have the following sequence: 1. MemoryWriter writes into RAM labelled 'rec1' 2. Some other Sound(s) play ... 3. Process a Sample that is playing back 'rec1' through GranularReverb 4. Process a Sample playing back 'rec1' through Chopper 5. Play some other Sound(s) etc... IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: Does the MemoryWriter need to exist in its own track for the entire duration of the Timeline inorder to keep 'rec1' in RAM and available for other processing? The Sample in steps 3 & 4 can be in a different Sound from the MemoryWriter? Should I check the "Global" on the MemoryWriter? (I'm not at my system or I'd just try this...) IP: Logged |
SSC Administrator |
![]() ![]() ![]() The MemoryWriter need only exist for as long as it takes to write what you want into memory. It doesn't have to be on its own track or last until you play back from the memory. The fact that you've named the memory allows the Kyma compiler to protect that RAM until the last time it is referenced (by a Sample or SampleCloud or whatever). In a Timeline, the Sample in steps 3 & 4 can be in a different Sound from the MemoryWriter. (Though, behind the scenes, the Timeline itself turns into a big Mixer whenever you play it, so in actuality they are in the same Sound). It's usually better not to check "Global" on the MemoryWriter. If Kyma has trouble scheduling the players, you can try checking Global as an experiment. But it's actually easier for the scheduler if you leave that box unchecked. [This message has been edited by SSC (edited 07 September 2001).] IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() Excellent. At least I can record and process three minute clips - now if only the Timeline could loop! IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.