Changeset 1283

Show
Ignore:
Timestamp:
10/14/07 13:17:45 (12 months ago)
Author:
calvin
Message:

24 bit stereo bugfix, general fixes for !16 bit samples, didnt open midi out devices on init, mixdown bypasses audiodriver, +++

Location:
trunk/src
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/audioimportlib/Riff.cpp

    r578 r1283  
    600600                                        Sample[0] = INT32 ( x ); 
    601601                                        assert(align-3 <= sizeof(DWORD)); 
    602                                         Read(&aligntemp, align-3); // skip extra alignment byte if it exists 
    603602 
    604603                                        retcode = Read (&x, 3 ); 
    605604                                        Sample[1] = INT32 ( x ); 
    606605                                        assert(align-3 <= sizeof(DWORD)); 
    607                                         Read(&aligntemp, align-3); // skip extra alignment byte if it exists 
     606                                        Read(&aligntemp, align-6); // skip extra alignment bytes if they exists (?) 
    608607                                        break; 
    609608                                } 
  • trunk/src/buzeVSTi/buzeVSTi.cpp

    r1239 r1283  
    246246} 
    247247 
     248 
     249void BuzeVSTi::schedule_send(size_t index, int time_ms, unsigned int data) { 
     250} 
     251 
    248252bool BuzeVSTi::send(size_t index, unsigned int data) { 
    249253        return true; 
     254} 
     255 
     256size_t BuzeVSTi::getDevices() { 
     257        return 1; 
     258} 
     259 
     260bool BuzeVSTi::isInput(size_t index) { 
     261        return true; 
     262} 
     263 
     264bool BuzeVSTi::isOutput(size_t index) { 
     265        return true; 
     266} 
     267 
     268bool BuzeVSTi::isOpen(size_t index) { 
     269        return true; 
     270} 
     271 
     272const char* BuzeVSTi::getDeviceName(size_t index) { 
     273        return "VST Host MIDI Device"; 
    250274} 
    251275 
  • trunk/src/buzeVSTi/buzeVSTi.h

    r1238 r1283  
    4545         
    4646        // zzub::midi_io 
    47     virtual bool poll(); 
    48     virtual bool send(size_t index, unsigned int data); 
     47        virtual bool poll(); 
     48        virtual bool send(size_t index, unsigned int data); 
     49        void schedule_send(size_t index, int time_ms, unsigned int data); 
     50        virtual size_t getDevices(); 
     51        virtual bool isInput(size_t index); 
     52        virtual bool isOutput(size_t index); 
     53        virtual const char* getDeviceName(size_t index); 
     54        virtual bool isOpen(size_t index); 
    4955 
    5056        // vst: 
  • trunk/src/buzelib/Document.cpp

    r1281 r1283  
    7373void CDocument::selectMachine(metaplugin* machine) { 
    7474        resetKeyjazz(); 
     75        player->midiNoteMachine = machine; 
    7576 
    7677        if (!machine) return ; 
     
    8384 
    8485void CDocument::unselectMachine(metaplugin* machine) { 
     86        if (machine == player->midiNoteMachine) 
     87                player->midiNoteMachine = 0; 
    8588        vector<metaplugin*>::iterator i=find(selectedMachines.begin(), selectedMachines.end(), machine); 
    8689        if (i!=selectedMachines.end()) { 
     
    107110 
    108111void CDocument::clearSelectedMachines() { 
     112        player->midiNoteMachine = 0; 
    109113        selectedMachines.clear(); 
    110114        updateAllViews(0, UpdateMachineSelection); 
     
    989993 
    990994int CDocument::getWaveLevelSamples(wave_level* entry) { 
    991         return entry->sample_count; 
     995        return entry->wave->get_sample_count(entry->level); 
    992996} 
    993997 
  • trunk/src/buzelib/MainFrm.cpp

    r1282 r1283  
    727727} 
    728728 
     729struct silent_device : zzub::audiodevice { 
     730        silent_device(int sampleRate) { 
     731                this->api_id = 0; 
     732                this->device_id = 0; 
     733                this->in_channels = 0; 
     734                this->name = "Silent"; 
     735                this->out_channels = 2; 
     736                this->rates.push_back(sampleRate); 
     737        } 
     738}; 
     739 
    729740void CMainFrame::mixdownSong(metaplugin* plugin, metaplugin* recorder) { 
    730741        int oldWorkChannel = player->workChannel; 
    731742        bool playerLoop = player->getLoopEnabled(); 
    732743 
    733         int sampleRate = player->masterInfo.samples_per_second; 
    734744        _Module.releaseAudioDriver(); 
    735         if (!_Module.setAudioDriver("Silent", "", sampleRate, 256, 0, false)) { 
    736                 MessageBox("Could not set silent audio driver, mixdown aborted.", programName, MB_OK|MB_ICONERROR); 
    737                 _Module.setAudioDriver(); 
    738                 return ; 
    739         } 
     745 
     746        silent_device tempdev(player->masterInfo.samples_per_second); 
     747        player->workDevice = &tempdev; 
    740748 
    741749        _Module.showWaitWindow(); 
    742750 
    743751        document->connectMachines(plugin->getName(), recorder->getName()); 
    744         //recorder->addInput(plugin, 0x4000, 0x4000); 
    745752 
    746753        player->setSequencerPosition(player->getSongBeginLoop()); 
     
    754761        _Module.setWaitWindowText("Recording..."); 
    755762        while (player->getPlayState()==player_state_playing) { 
    756                 Sleep(50); 
     763                player->workStereo(256); 
    757764        } 
    758765 
     
    764771        player->setSongEnd(playerSongEnd); 
    765772        player->setLoopEnabled(playerLoop); 
     773        player->workDevice = 0; 
    766774        _Module.setAudioDriver(); 
    767775        player->workChannel = oldWorkChannel; 
     
    23242332 
    23252333bool CMainFrame::invoke(zzub_event_data_t& data) { 
    2326         if (data.type == event_type_midi_control) { 
     2334/*      if (data.type == event_type_midi_control) { 
    23272335 
    23282336                char status = data.midi_message.status >> 4; 
     
    23502358 
    23512359                return true; 
    2352         } 
     2360        }*/ 
    23532361 
    23542362        if (data.type == event_type_wave_allocated) { 
  • trunk/src/buzelib/WaveTableView.cpp

    r1282 r1283  
    452452                const wave_level& level=*entry->get_level(i); 
    453453                string note=noteFromInt(level.root_note); 
    454                 string len=stringFromInt(level.sample_count, 0); 
     454                string len=stringFromInt(entry->get_sample_count(i), 0); 
    455455                string rate=stringFromInt(level.samples_per_second, 0); 
    456                 string lbeg=stringFromInt(level.loop_start, 0); 
    457                 string lend=stringFromInt(level.loop_end, 0); 
     456                string lbeg=stringFromInt(entry->get_loop_start(i), 0); 
     457                string lend=stringFromInt(entry->get_loop_end(i), 0); 
    458458                string bits=stringFromInt(entry->get_bits_per_sample(i), 0); 
    459459 
     
    717717                        break; 
    718718                case UpdateMachines: 
     719                case UpdateSelectedMachine: 
    719720                        envelopeTab.updateMachines(); 
    720721                        //recordTab.bindWavePlugins(); 
  • trunk/src/buzelib/buze.cpp

    r1273 r1283  
    113113 
    114114        vector<int> midiOutDevices; 
    115         configuration->getMidiOutputs(midiInDevices); 
     115        configuration->getMidiOutputs(midiOutDevices); 
    116116        for (size_t i = 0; i < midiOutDevices.size(); i++) { 
    117117                int dev = midiOutDevices[i];