Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

Unlimited Size WAV Record V0.4

Post any examples or modules that you want to share here

Re: Unlimited Size WAV Record V0.4

Postby tester » Tue Oct 24, 2017 3:12 pm

My little "dream" would be to have a way to record easily long stereo audios (30-60mins) from within flowstone, both from external sources (realtime) and internal exports (full processing speed), and without overusing RAM..

But this seems to be impossible in current version of FS, or at least - nobody figured out how to do it. The problem with wave read/write prims is, these use float-based indexes, which means - rounding the counter at some point, which means - let's forget about (even not too) long auditions.

Thanks to KG, I can load and use such long audio files (although I need there some additional nodes too; asm), but that's it. Export will work only via vst transport, not from exe files.

As for recording from external sources, your little project works pretty well, with the exception of RAM usage. As for exporting internally, I'm not sure what are the limits, because I haven't reach yet there in my current project.

So, after finding your project, i started to think about general-purpose dll, for handling audio recording. This also means data logger (DAQ configured as audio interface) at samplerate up to audio sample rate.

General thoughts on what I would see in such dll solution:

1. it receives trigger/state for start/stop recording, where "stop" (1to0) = save the file (in other words, bypass sending arrays of floats to flowstone; when flowstone loads file to mem, then mem data can be handled without unpacking it).
2. it optionally sends a trigger, that file has been saved (if saving of long audio works fast, then maybe this can be bypassed in flowstione via delay).
3. optional switch for mono/stereo format.
4. optional input for samplerate (with acceptance of low samplerates, like 256sps - this probably involves some interpolation/averaging methods; low SR datastreams usually involve many-hours sessions)
5. optional input for triggering continuous split (split audio during recording, so that segments are continuous with each other)
6. output node (float, not array), at 100Hz, that sends (averaged) value of current audio - this could help to produce live recording graph from within the flowstone.
Need to take a break? Looking for relaxing sounds? I have something right for you.
(by purchasing, you are also supporting further development of related projects).
Thank you for your contribution.
tester
 
Posts: 1791
Joined: Wed Jan 18, 2012 10:52 pm
Location: Poland, internet

Re: Unlimited Size WAV Record V0.4

Postby aronb » Tue Oct 24, 2017 8:59 pm

My wishes for a record / playback block :idea: ...

Up to 30 minutes of record time
0 to 6 channels of simultaneous record
Standard (and Slower) Sample rates

I use Flowstone for Lighting, Special Effects, and Animatronics Control, (not just for Audio) because Flowstone is so powerful and capable.

Sometimes I need speed (48KHz) with multiple channels.
Other times I need multiple channels only sampled at 100Hz.
And yet other times 1 channel at 10Hz...

Spogg, this should be our common tag line...
"Live Long and Flowstone" :D

Aron
User avatar
aronb
 
Posts: 99
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Unlimited Size WAV Record V0.4

Postby Youlean » Wed Oct 25, 2017 12:39 am

tester wrote:My little "dream" would be to have a way to record easily long stereo audios (30-60mins) from within flowstone, both from external sources (realtime) and internal exports (full processing speed), and without overusing RAM..

But this seems to be impossible in current version of FS, or at least - nobody figured out how to do it. The problem with wave read/write prims is, these use float-based indexes, which means - rounding the counter at some point, which means - let's forget about (even not too) long auditions.

Thanks to KG, I can load and use such long audio files (although I need there some additional nodes too; asm), but that's it. Export will work only via vst transport, not from exe files.

As for recording from external sources, your little project works pretty well, with the exception of RAM usage. As for exporting internally, I'm not sure what are the limits, because I haven't reach yet there in my current project.

So, after finding your project, i started to think about general-purpose dll, for handling audio recording. This also means data logger (DAQ configured as audio interface) at samplerate up to audio sample rate.

General thoughts on what I would see in such dll solution:

1. it receives trigger/state for start/stop recording, where "stop" (1to0) = save the file (in other words, bypass sending arrays of floats to flowstone; when flowstone loads file to mem, then mem data can be handled without unpacking it).
2. it optionally sends a trigger, that file has been saved (if saving of long audio works fast, then maybe this can be bypassed in flowstione via delay).
3. optional switch for mono/stereo format.
4. optional input for samplerate (with acceptance of low samplerates, like 256sps - this probably involves some interpolation/averaging methods; low SR datastreams usually involve many-hours sessions)
5. optional input for triggering continuous split (split audio during recording, so that segments are continuous with each other)
6. output node (float, not array), at 100Hz, that sends (averaged) value of current audio - this could help to produce live recording graph from within the flowstone.

Everything of that is possible with dll of course. Green arrays are not that memory inefficient as you might think, it just needs to be implemented in a right way which I didn't do for this dll.

Here is what can I offer you:

Make memory efficient mono/stereo audio recorder with green array output - 50e and it will be finished tomorrow.
You can expect on 44100kHz sample rate one channel to take ~ 173 kb/s, 10.13mb/min, 608mb/h ram usage. This is theoretical minimum. We might try recording to ram and frequently caching to disk to save the ram, but this will then use more CPU, and it will still use ram when you load it as above. Anything extra will cost more. Changing samplerate with interpolation won't be easy task so it will be most expensive task to do...
Youlean
 
Posts: 175
Joined: Mon Jun 09, 2014 2:49 pm

Re: Unlimited Size WAV Record V0.4

Postby Youlean » Wed Oct 25, 2017 12:43 am

aronb wrote:Up to 30 minutes of record time
0 to 6 channels of simultaneous record
Standard (and Slower) Sample rates

Sometimes I need speed (48KHz) with multiple channels.
Other times I need multiple channels only sampled at 100Hz.
And yet other times 1 channel at 10Hz...

If you don't need interpolation and samplerate filters than it would be relatively easy thing to add
Youlean
 
Posts: 175
Joined: Mon Jun 09, 2014 2:49 pm

Re: Unlimited Size WAV Record V0.4

Postby aronb » Wed Oct 25, 2017 8:01 pm

Youlean wrote:
aronb wrote:Up to 30 minutes of record time
0 to 6 channels of simultaneous record
Standard (and Slower) Sample rates

Sometimes I need speed (48KHz) with multiple channels.
Other times I need multiple channels only sampled at 100Hz.
And yet other times 1 channel at 10Hz...

If you don't need interpolation and samplerate filters than it would be relatively easy thing to add


OK... I can live with that!
Keep the sample rate at whatever the interface is (i.e. ASIO 44100 or 4800 or 9600 or whatever) and thus no sample rate filters.
Just record 1 to 6 channels at the sample rate, up to 30 minutes of record time - WOOT!!!

Aron
User avatar
aronb
 
Posts: 99
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Unlimited Size WAV Record V0.4

Postby tester » Wed Oct 25, 2017 9:27 pm

Lower samplerate = less datapoints (smaller file - we don't talk about duplicating data points?), so I'm fine with such result. Anything else (filters, interpolations) can be added via FS or hardware implementations.

As for using audio as green arrays. I'm not sure if this is usable in Flowstone, when dealing with large files. Right now, I load audio as mem, and the only array converter is the one that averages graph data. From that point on, visual interactions are made on graph data, and audio is handled as mem, converted to stream via indexes and such sort of things. This works pretty well. From what I see, relatively well estimated normalization values can be taken from graph data as well.

So in general, I would prefer to save audio externally, bypassing flowstone. FS should only know when audio is saved on disk, so that it can load it and reuse.

@aronb - fifty fifty?
Need to take a break? Looking for relaxing sounds? I have something right for you.
(by purchasing, you are also supporting further development of related projects).
Thank you for your contribution.
tester
 
Posts: 1791
Joined: Wed Jan 18, 2012 10:52 pm
Location: Poland, internet

Re: Unlimited Size WAV Record V0.4

Postby Youlean » Wed Oct 25, 2017 10:15 pm

tester wrote:Lower samplerate = less datapoints (smaller file - we don't talk about duplicating data points?), so I'm fine with such result. Anything else (filters, interpolations) can be added via FS or hardware implementations.

As for using audio as green arrays. I'm not sure if this is usable in Flowstone, when dealing with large files. Right now, I load audio as mem, and the only array converter is the one that averages graph data. From that point on, visual interactions are made on graph data, and audio is handled as mem, converted to stream via indexes and such sort of things. This works pretty well. From what I see, relatively well estimated normalization values can be taken from graph data as well.

So in general, I would prefer to save audio externally, bypassing flowstone. FS should only know when audio is saved on disk, so that it can load it and reuse.

@aronb - fifty fifty?

Saving to file would require more work to do, so it will cost you another 50e. It would be nice you 2 to make exact feature list how dll should work and I will then tell you what is possible or not and how much exactly it will cost you.
Youlean
 
Posts: 175
Joined: Mon Jun 09, 2014 2:49 pm

Re: Unlimited Size WAV Record V0.4

Postby Youlean » Wed Oct 25, 2017 10:33 pm

Also there is array to mem primitive so you might want to use that to save to wav and then clear buffers. That will save you 50e. :D
Youlean
 
Posts: 175
Joined: Mon Jun 09, 2014 2:49 pm

Re: Unlimited Size WAV Record V0.4

Postby aronb » Thu Oct 26, 2017 2:44 pm

Youlean wrote:Also there is array to mem primitive so you might want to use that to save to wav and then clear buffers. That will save you 50e. :D


My big issue is multichannel. If a multi-array could be converted to mem, then saved as a multichannel wave file then fine. But I have not been able to make this work, using green and mem prims :(

My development system has 32GB of RAM and a 3.4GHz i7 Intel Processor, and when I start moving big arrays the system still gets slow. I am also doing calculations to produce special effects, and cant have the system get unresponsive over time while recording, so whatever method is chosen, it needs to have the same repeatable results regardless of the number of channels (up to 6).

@tester - what do you mean by saving audio externally bypassing Flowstone?

Also, the way I use Flowstone is unique (I think ;) ). I don't create VSTs, I just use the visual programming wires to create signals, just within the schematic. I use Flowstone to create animation motion or special lighting effects or sometimes audio effects, and record the output (1 to 6 channels) for playback using Reapers ASIO pipe (ASIO input and output prims). I would rather just record within Flowstone, save the multi-channel wave files, then import the recorded waves and manipulate them with Reaper. Just like you would creating a song from different musical instruments recorded separately, then assembling them to form the song.

Note: I use about 1% of Reapers capability - I am just using it to time align my created multi-channel wave segments I import to music, that is it. Any simple DAW would work (nTrack, Audacity, etc) - I wish Flowstone had a simple DAW built in OR a way to record wave files, then I would have everything I would need to do a show piece.

Aron
User avatar
aronb
 
Posts: 99
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Unlimited Size WAV Record V0.4

Postby Youlean » Fri Oct 27, 2017 1:22 pm

OK, so both of you will need saving to wav file. So, so far this would be the dll:


    up to 6 channel recording
    abs average for every channel (not sure what tester actually meant for that)
    saving to wav
    "hop" feature for saving every 2nd, 3rd etc sample
    button to start recording
    output to send trigger when file was saved to HDD


This all would be 100e so far.
Youlean
 
Posts: 175
Joined: Mon Jun 09, 2014 2:49 pm

PreviousNext

Return to User Examples

Who is online

Users browsing this forum: Majestic-12 [Bot] and 4 guests