Song Time
Implemented some time ago.
* fixed an overflow error in EstimateSongLengthUntilRow
Song Time
Added EstimateSongLengthUntilRow. Please test if it works.
+ added function EstimateSongLengthUntilRow
crosscompiling from Linux to Mac M1
port to PowerPC Mac G3/G4
Perhaps a global function that takes a module (TModule) and position (order, row) returns time?
Mute Instrument
Save the inner representation to the Stream
Import older format AON8.
cant load saved .wav
Fixed.
* WAV loader: update error message for unsupported integer bits per sample format: 'only 8-bit, 16-bit or 24-bit samples are supported' (was: 'only 8-bit or 16-bit samples are supported')
can't load this .wav
Fixed.
can't load this .wav
Fixed.
+ implemented loading of 24-bit .wav files (they're converted to 16-bit on load)
* WAV loader: fixed message about unsupported IEEE float size - only 32-bit or 64-bit samples are supported. Previously, it said 'only 32-bit samples are supported'
* update copyright year
Catch TTrackerEngine.Create(Driver) Exception
under Linux this loop takes about a minute and couses after that a stream overflow
Ok. Closing.
ThreadSync problem
This was reported by Key-Real as fixed.
Fallback to another Driver by init fail
Implemented.
* fixed .wav writing by adding a padding byte at the end of data chunk, in case of odd bytes (rare, can only happen when writing 8-bit mono .wav files)
can't load this .wav
Fixed.
can't load this .wav
Fixed.
* fixed loading of .wav files with odd-sized chunks
can't load this .wav
Import older format AON8.
play only one row
+ introduced TTrackerEngine.LoadModule overload, that loads the module from a TStream
get the channel data
Finally, I found the time to implement oscilloscope support!!! I just got it working and merged it into trunk. Take a look at the test_scopes.lpr example, to see how it works.
deleting branch, after it has been reintegrated into trunk
* network error caused the previous merge commit to fail, this should complete the merge
* merged (reintegrated) the Oscilloscopes branch into trunk
* show usage, if called with no params
+ range check the lower bound of ASourceSignalParam for all ASourceSignal values and raise an appropriate exception, instead of crashing randomly
* clamp source signal index, so it doesn't go below 1
* no, virtual channels are actually numbered from 1
* virtual channels are numbered from 0
- rm implemented TODO
* don't crash the oscilloscope for ossVirtualChannel, if the channel is free
* initialize OldScope in the beginning
+ allow changing the oscilloscope triggering type
+ allow changing the oscilloscope subchannel
+ allow changing the sampling rate in the scope display
+ support setting the source signal
* fixed scope buffer overflow when no triggering is used
+ implemented scope triggering support
* invert the Y coordinate, in order to follow the traditional scope display
+ support generating oscilloscopes for a different sampling rate
+ introduced TVirtualChannel.AdvanceGivenSamplePositionAtGivenSamplingRate
* refactor TVirtualChannel.GetIncrement to use GetIncrementForSamplingRate
+ introduced TVirtualChannel.GetIncrementForSamplingRate
+ support osfS16NE oscilloscope buffer
- rm TODO comment
+ full support for selecting the oscilloscope channel
+ scope optimization: move the for loop inside the ifs and case statements
+ support stereo samples
* clamp scope buf even when using the user buffer
+ clamp scope buffer output within the -1..1 range
+ added TODO comments
+ implemented 16-bit mono sample support for the scope
- rm TODO, because it has been implemented
* refresh scope with less blinking
* use proper scale factor for the scope
32-bit fix for the scope calculation
* fixed typecast bug in the scope data retrieval
+ added test program for the oscilloscopes
* small correction to the scope vol calc
+ partial implementation of AddSampleDataForVirtualChannel
+ some more work on the oscilloscope - handle the different sources and call AddSampleDataForVirtualChannel for the relevant virtual channel(s)
+ added ASampleFramesSinceLastTick parameter to TPlayerState.GetOscilloscopeSampleData
- removed oscilloscope include files
- removed TOscilloscopes. Instead, add a GetOscilloscopeSampleData in TPlayerState (not yet implemented)
* synchronize with trunk
- don't inherit TCachedFileStream from TFileStream, inherit from TStream instead
+ log errno in case of 'error reading from pipe'
* undo previous commit
* TTextFileLogger.LogMessage: don't close the file, in case Append() failed
+ disconnect the context set state callback in the pulseaudio device destructor
+ disconnect the stream callbacks in the pulseaudio device destructor
* update copyright year
+ more detailed logging in the PulseAudio device destructor
+ verbose log messages for creating and freeing the audio devices
MIDI Channel/Program/Bank like in IT
* replaced DebugLn with FLogger.LogMessage(vlDebug, ...) in the ALSA driver
* check if the passed device config belongs to the driver class and ignore it, if it doesn't
its happens at work, the pc has only headphones, no speaker attached. This will lost interest when the fallback to working diver is implemented
get info to log the sound driver settings after init
+ added AutoTry driver flag, indicating which drivers should be autotried (currently all, except the .wav writer)