Home › Forums › General › Using Ctrlr › uiWaveform – capabilities and limitations?
- This topic has 15 replies, 4 voices, and was last updated 11 years, 3 months ago by msepsis.
-
AuthorPosts
-
October 1, 2012 at 10:03 pm #729
Besides being able to load and display a waveform, what are the current capabilities of the uiWaveform component in 1102? AFIK it’s not really useful for anything at the moment other than visualizing the waveform of a loaded wav/aif/bwf/aiff.
Can any data be pulled from the uiWaveform?
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
October 1, 2012 at 10:30 pm #4837No not yet, i never got it to work. I can add that and release it in the next nightly but that will delay the build a few days.
October 2, 2012 at 3:09 am #4838It would be a great add. I don’t know about delaying a nightly over it but some time soon the ability to get data from a wave loaded into a uiWaveform would be incredibly useful here.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
October 2, 2012 at 5:36 pm #4839http://youtu.be/EiS5Uvk8WjM?t=25s
I’d love to be able to select a portion of the loaded wave (drag select) on the uiWaveform to "grab" the sample data within the selection. Would need some way to designate whether it’s the Left or Right Channel or if the channels should be merged.. Things to think about ” title=”Smile” />
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
October 2, 2012 at 6:39 pm #4840That looks amazing!! Good job, Rob!
October 2, 2012 at 10:18 pm #4841I was working with that a little today the problem is bigger then i thought, since i need to make some kind of universal sample conversion mechanism, to be able to display all sort of data (multichannel, 8-32bits etc.). Good news is tht dRowAudio has some nice modules that have some additional stuff for AudioThumbnails (selecting, controlling, zooming etc) so i can use that. But first i need to convert the data on low-level i started a thread on JUCE Forum so hopefully someone will help, so far i was able to crash Ctrlr a few times today without any useful results, i was trying to show Evolver waveforms but no luck.
I’ll post some more once i get some info.
October 2, 2012 at 11:54 pm #4842Das, thank you. That means a heckofalot coming from the creator of several stunning ctrlr works such as yours.
Atom, that’s an exciting update, it will be exciting to see some of these things come into being over time.
So, currently in ctrlr using what JUCE has supplied (anything other than a uiWaveform) is there any current possible method of obtaining, say 64 8-bit samples from a mono 8 bit .wav or .aif file?
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
October 4, 2012 at 10:05 pm #4843Update:
I won the battle it took me 3 days but i can now display nice waveshapes from the Evolver.What else will you be able to do
– load waveshapes from memory (midi messages or whatever data) [done]
– load waveshapes from files (.wav, .aiff, .flac, .ogg i can add .mp3 and .wma and whatever but i doubt it’s a good idea) [done]
– load waveshapes from resources
– load waveshapes from program data stores in the program manager
– read the samples from the component
– save content of the component to a file [done]in addition there will be a CtrlrLuaAudioConverter class that will be able to convert between integer based data (you get via MIDI, in evolver theese are 16bit integer samples) to floatint point based data (this is how audio is processed using IEEE based floating point numbers). The conversion will be both ways [done for only evolver formats but i’m adding new ones right now]
October 6, 2012 at 2:57 pm #4844Very interesting.
It would also be useful to have the ability to upload files as well MIDI Sample Dump Standard[/url:2d8pbqlr] or generic estension like txt or bin etc..
Some midi synth as offer the ability to load and unload samples with midi dump in SDS format, and it would be really nice to have the view of them.Then in the future also understand how to manage them directly, load them from files, send and receive them, it would be a must.
October 8, 2012 at 3:57 pm #4845nice work, atom. I can’t wait to try this out.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
December 6, 2012 at 9:16 pm #5140Hi Atom,
would it be possible for you to shed some light or share an example panel that demonstrates this functionality? I’ve been away for a bit working on some other projects but am coming back to this full time now.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
December 6, 2012 at 10:27 pm #5141My example panel is broken, for now i can give you a method that i used to plot a waveform when receiving waves from the Evolver.
function plotWaveform(waveformData) -- Your method code here console ("plotWaveform data size"..waveformData:getSize()) audioBuffer = AudioSampleBuffer(1,128) converter:convertInt16 (waveformData, audioBuffer, 128, 1, false); waveForm = panel:getWaveformComponent("waveForm") if waveForm ~= nil then waveForm:reset (1, 44100.0, 128) waveForm:addBlock (0, audioBuffer, 0, 128) end end
December 12, 2012 at 1:51 am #5171per your example, what is “waveformData”? I’m assuming you have that defined elsewhere, probably in your panel’s midiMessageReceived script? I’m making the assumption that “waveformData” is the name of a string you have declared elsewhere when the panel receives a Waveshape data dump from the evolver?
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
January 4, 2013 at 8:20 pm #5386Frankly I’m more interested in getting data FROM any wave loaded into the uiWaveform component with the intention of being formatted for the synth and saved to a string: (http://www.carbon111.com/mwxt_manual.pdf, page 114 section 3.4 (WDATA))
I would be grabbing 64 eight bit samples from the wave loaded into the uiWaveform. a waveform on this synth is actually 128 samples but the last 64 are just a mirror of the first 64 (for a seamless loop).
It’d probably be easiest to limit my uiwaveform to only accept mono waves that are only 64 samples “long” but it of course would be cool to be able to mouseDrag a selection from a waveform loaded into the uiWaveform component, including masking or combining the R and L channel if the loaded wave is stereo.
lower priority:
I’d also like example code that can be attached to a button to load a wave file to the component instead of right clicking the componentSave waveform still seems to be broken. The waveforms saved are not usable. try loading a wave you’ve just saved from the component–it doesn’t work.
- This reply was modified 11 years, 3 months ago by msepsis.
- This reply was modified 11 years, 3 months ago by msepsis.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
January 4, 2013 at 10:01 pm #5389the waveform datai is a MemoryBlock that contains the samples in 16bit (two bytes per sample) format. That’s why i need to convert it to a AudioSampleBuffer (floating point data)
January 5, 2013 at 9:15 pm #5393thanks atom. and about the questions I asked in my last post on this thread from Jan 4th?
–how to get data from the uiWaveformComponent? For mono samples AND stereo samples (want to either get from R channel, L channel or a union of both channels)… sounds like my synth uses the same 16 bit format, but the MSB on my synth here is not two’s compliment – i can handle that part.
–how to only allow loading of mono waveforms to uiWaveformComponent?
–Lua code for a separate load wave button
–Save waveform (under right click) seems to be broken? i can’t load waves that i saved this way to the component- does nothing.- This reply was modified 11 years, 3 months ago by msepsis.
Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen
-
AuthorPosts
- The forum ‘Using Ctrlr’ is closed to new topics and replies.