comparison audioio/AudioGenerator.cpp @ 36:b9e76c9e631c

* Fix serious failure to reload "imported" (i.e. all non-derived non-main) models from .sv file * Give a short playback duration to notes with formal duration of 0 or 1 * Show crosshairs on spectrogram even when there is another layer on top (if it isn't opaque) * Always paste to the same time in the layer as the cut/copy was from, rather than to the playback pointer -- less flexible, but more predictable and less annoying. We probably need a way to get the old behaviour if pasting from somewhere else in the future (e.g. from a text file), but we can't do that yet anyway * Use a compound operation for dragging and resizing selections, so as to ensure a single undo operation works * Use a note model as the target for feature extraction plugins that output variable samplerate data with more than one value per feature * Avoid possible crashes in cut/paste if a layer proves to have no model
author Chris Cannam
date Thu, 11 May 2006 11:35:46 +0000
parents f6b15e0b6fde
children 58cf1620d6e3
comparison
equal deleted inserted replaced
35:37e3c693af0c 36:b9e76c9e631c
698 #ifdef DEBUG_AUDIO_GENERATOR 698 #ifdef DEBUG_AUDIO_GENERATOR
699 std::cout << "mixModel [note]: point at frame " << pliFrame << ", block start " << (startFrame + i * m_pluginBlockSize) << ", resulting time " << eventTime << std::endl; 699 std::cout << "mixModel [note]: point at frame " << pliFrame << ", block start " << (startFrame + i * m_pluginBlockSize) << ", resulting time " << eventTime << std::endl;
700 #endif 700 #endif
701 701
702 size_t duration = pli->duration; 702 size_t duration = pli->duration;
703 if (duration == 0 || duration == 1) {
704 duration = m_sourceSampleRate / 20;
705 }
703 NoteOff noff; 706 NoteOff noff;
704 noff.pitch = onEv.data.note.note; 707 noff.pitch = onEv.data.note.note;
705 noff.frame = pliFrame + duration; 708 noff.frame = pliFrame + duration;
706 noteOffs.insert(noff); 709 noteOffs.insert(noff);
707 } 710 }