Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    basesound --> load

    SDK Help
    0
    4
    396
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 17/01/2006 at 14:42, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   9.5 
      Platform:   Windows  ;   
      Language(s) :     C++  ;

      ---------
      i have a problem with loading sound with basesound class. i createred sound which is BaseSound pointer (as basesound doesn't seem to have a constructor o.O), but sound->load doesn't work... i think there must be something missing before load, but i can't find what... any help would be highly appreciated.

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 17/01/2006 at 22:26, xxxxxxxx wrote:

        Like most C4D 'Base' classes, there are no direct constructor/destructor methods. You must use 'Alloc' and 'Free' to allocated and free the class:

        BaseSound* sound = BaseSound::Alloc();
        BaseSound::Free(sound);

        Note that Load() only works with WAV sound files. It is possible that certain codecs are not supported (unless they are installed).

        Here is working source that I use (in conjunction with animation tracks) :

        if (type == Ssound)  
        {  
             // <Bool:On|Off>  
             if (!tokenReader.ParseBool(&fileReader;, &boolVal;, "on", "off")) return FALSE;  
             data->SetBool(ID_SOUND_ONOFF, boolVal);  
             // "<String:Sound_Filename>"  
             SoundSequence *sseq = static_cast<SoundSequence*>(seq);  
             BaseSound* bsound;  
             if (!(bsound = sseq->GetSound()))  
             {  
                  ErrorException::Throw(GeLoadString(ERROR_MEMORY_TEXT), "AnimatLOAD.ReadSequence.bsound");  
                  return FALSE;  
             }  
             if (!tokenReader.ParseQuotedString(&fileReader;, &name;))  
             {  
                  BaseSound::Free(bsound);  
                  return FALSE;  
             }  
             Filename soundFile = Filename(filename);  
             soundFile.SetFile(Filename(name));  
             if (bsound->Load(soundFile))  
             {  
                  sseq->SetSound(bsound);  
                  sseq->SetParameter(DescID(ID_SOUND_NAME), name, DESCFLAGS_DONTCHECKMINMAX);  
             }  
             else ErrorException::Throw(GeLoadString(ERROR_OPENFILE_TEXT), "Sound file:", name);  
             BaseSound::Free(bsound);  
        }  
        

        HTH,

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 18/01/2006 at 03:41, xxxxxxxx wrote:

          thanks, solved that, works ok now, but i got something really weird instead... I have a separate new class, in which sounddata pointer has to be created (because getsample needs pointer SData to work with), but it doesn't seem to work. Cinema throws "The instruction at "----" referenced memory at "----"..." error... it works if i declare wariable sd like SData sd; but doesnt with SData* sd=new SData();... that one works just fine in the main plugin cpp (NodeData::Message) though... any ideas?

          thanks in advance,
          regards

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 18/01/2006 at 07:44, xxxxxxxx wrote:

            ah, found it out myself. in the end it had nothing to do with the sdata 😆

            1 Reply Last reply Reply Quote 0
            • First post
              Last post