uiWaveform – capabilities and limitations?

Home Forums General Using Ctrlr uiWaveform – capabilities and limitations?

Viewing 16 posts - 1 through 16 (of 16 total)
  • Author
    Posts
  • #729
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    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

    #4837
    atom
    Keymaster
    • Topics: 159
    • Replies: 2945
    • Total: 3104
    • ★★★★★

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

    #4838
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    It 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

    #4839
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    http://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 <img loading=” title=”Smile” />

    Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen

    #4840
    dasfaker
    Keymaster
    • Topics: 80
    • Replies: 793
    • Total: 873
    • ★★★

    That looks amazing!! Good job, Rob!

    #4841
    atom
    Keymaster
    • Topics: 159
    • Replies: 2945
    • Total: 3104
    • ★★★★★

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

    #4842
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    Das, 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

    #4843
    atom
    Keymaster
    • Topics: 159
    • Replies: 2945
    • Total: 3104
    • ★★★★★

    Update:
    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]

    #4844
    Tronic
    Participant
    • Topics: 7
    • Replies: 45
    • Total: 52
    #4845
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    nice work, atom. I can’t wait to try this out.

    Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen

    #5140
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    Hi 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

    #5141
    atom
    Keymaster
    • Topics: 159
    • Replies: 2945
    • Total: 3104
    • ★★★★★

    My 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
    
    #5171
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    per 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

    #5386
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    Frankly 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 component

    Save 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 9 years, 4 months ago by msepsis.
    • This reply was modified 9 years, 4 months ago by msepsis.

    Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen

    #5389
    atom
    Keymaster
    • Topics: 159
    • Replies: 2945
    • Total: 3104
    • ★★★★★

    the 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)

    #5393
    msepsis
    Participant
    • Topics: 219
    • Replies: 732
    • Total: 951
    • ★★★

    thanks 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 9 years, 4 months ago by msepsis.

    Monstrum Media | Music, Sound & Software Design, Chicago / San Francisco listen

Viewing 16 posts - 1 through 16 (of 16 total)
  • The forum ‘Using Ctrlr’ is closed to new topics and replies.
There is currently 0 users and 27 guests online
No users are currently active
Forum Statistics
Threads: 2,495, Posts: 17,374, Members: 77,605
Most users ever online was 12 on January 22, 2019 3:47 pm
Ctrlr