2007-02-08 23:01:35 |
Adam Sweet |
description |
Running Jokosher svn 1294. Ubuntu Edgy, latest gstreamer CVS downloaded and compiled 08/02/2007 (European date format :)
Remove ~/.jokosher
Start Jokosher, open new project
Import .wav
Split waveform in several places (3 in this case) by double-left-clicking the waveform,
Press play
While instrument is playing, hold rewind button down to cause playback head to rewind and then release
Repeat last step
Results:
No sound is played while playback head is rewinding
On release of rewind button, instrument continues to play from where it would have been had it not been rewound and is out of sync with playback head which is where it should be
On repeat of last step, playback head gets stuck at next split and the debug info reports a
Expected results:
After releasing the rewind button, playback should resume from the position at which the playback head is rewound to.
On repeating the rewind step, the instrument should continue to play from the position on the timeline to which it was rewound to, not get 'stuck'.
The playback head should remain in sync with the audio that is playing.
Side note:
None of the 3 behaviours in the Results occur when the waveform has not been split.
Debug output:
adam@marvin:~/sources/gstreamer/head$ ./trunk/Jokosher/Jokosher --debug
Filling LADSPA Registry
175 LADSPA effects loaded
Reading in presets...
...done.
Loading extensions:
importing extension jokosher-dbus.py
importing extension GNOMEAudioProfiles.py
importing extension APIConsole-0.1-py2.4.egg
importing extension SetTempo-0.1-py2.4.egg
importing extension Minimal-0.9-py2.4.egg
importing extension InstrumentTypeManager-0.2-py2.4.egg
importing extension FreesoundSearch-0.2-py2.4.egg
Attempting to open: /home/adam/jokosher tests/test01/test01.jokosher
Using autoaudiosink for audio output
added project playback bin to the pipeline
added adder0 to project playbackbin
added levelcaps to project playbackbin
added MasterLevel to project playbackbin
added autoaudiosink0 to project playbackbin
Loading project file version 0.9
added volume (instrument)
added level (instrument)
added audiopanorama (instrument)
added composition (instrument)
added audioresample (instrument)
linked instrument volume to instrument level
linked instrument level to instrument pan
linked instrument pan to instrument resample
created ghostpad for instrument playbackbin
added instrument playbackbin to adder playbackbin 0
linked instrument playbackbin to adder (project)
LOG COMMAND: ('P', 'DeleteInstrument', [0]) from -1264043828
create file source
setting event properties:
media-start = 0
media-duration = 0
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 0
LOG COMMAND: ('I0', 'DeleteEvent', [1]) from -1264043828
setting event properties:
media-start = 0
media-duration = 0
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 0
setting event properties:
media-start = 0
media-duration = 9450521540
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 9450521540
recieved group of tags
create file source
setting event properties:
media-start = 0
media-duration = 0
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 0
setting event properties:
media-start = 2033875862
media-duration = 7416645677
priority = 2
start = 2033875862
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 7416645677
setting event properties:
media-start = 0
media-duration = 2033875862
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 2033875862
LOG COMMAND: ('E1', 'Join', [2]) from -1264043444
create file source
setting event properties:
media-start = 0
media-duration = 0
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 0
setting event properties:
media-start = 4562096551
media-duration = 4888424988
priority = 2
start = 4562096551
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 4888424988
setting event properties:
media-start = 2033875862
media-duration = 2528220689
priority = 2
start = 2033875862
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 2528220689
LOG COMMAND: ('E2', 'Join', [3]) from -1264016148
create file source
setting event properties:
media-start = 0
media-duration = 0
priority = 2
start = 0
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 0
setting event properties:
media-start = 6963200000
media-duration = 2487321540
priority = 2
start = 6963200000
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 2487321540
setting event properties:
media-start = 4562096551
media-duration = 2401103448
priority = 2
start = 4562096551
location = /home/adam/jokosher tests/test01/audio/lugradio_jingle_drums_0_1170974965.wav
duration = 2401103448
LOG COMMAND: ('E3', 'Join', [4]) from -1264016660
play() in Project.py
current state: GST_STATE_NULL
Preparing the controller
FADE POINT: time(0.00) vol(0.99)
FADE POINT: time(2.03) vol(0.99)
FADE POINT: time(2.03) vol(0.99)
FADE POINT: time(4.56) vol(0.99)
FADE POINT: time(4.56) vol(0.99)
FADE POINT: time(6.96) vol(0.99)
FADE POINT: time(6.96) vol(0.99)
FADE POINT: time(9.45) vol(0.99)
just set state to PAUSED
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
NEW PAD on instrument Audio File
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_ASYNC
-- pending: GST_STATE_PAUSED
-- new: GST_STATE_READY
STATE CHANGED
-- status: GST_STATE_CHANGE_SUCCESS
-- pending: GST_STATE_VOID_PENDING
-- new: GST_STATE_PAUSED |
After splitting an waveform, there is not way to unsplit it.
Supposing you split a waveform, perform some editing which you don't want to lose by using undo and then decide that you don't want an instrument littered with unused splits, there is no way to unsplit them again.
As discussed on IRC with laszlok and david_corrales, this is a nice idea in theory but also poses the problem of users trying to un-split an instrument after they have inserted another piece of audio, possibly in a different audio format between the split parts. |
|
2007-02-09 09:44:34 |
Adam Sweet |
description |
After splitting an waveform, there is not way to unsplit it.
Supposing you split a waveform, perform some editing which you don't want to lose by using undo and then decide that you don't want an instrument littered with unused splits, there is no way to unsplit them again.
As discussed on IRC with laszlok and david_corrales, this is a nice idea in theory but also poses the problem of users trying to un-split an instrument after they have inserted another piece of audio, possibly in a different audio format between the split parts. |
After splitting a waveform, there is no way to unsplit it.
Supposing you split a waveform, perform some editing which you don't want to lose by using undo and then decide that you don't want an instrument littered with unused splits, there is no way to unsplit, or re-join them again.
As discussed on IRC with laszlok and david_corrales, this is a nice idea in theory but also poses the problem of users trying to un-split an instrument after they have inserted another piece of audio, possibly in a different audio format between the split parts. |
|