Commit Graph

1222 Commits

Author SHA1 Message Date
Vesa V
2f983e0ed3 Merge pull request #938 from diizy/master-sf2-accurate
SF2: Make timing more accurate, also some fixes
2014-07-06 16:21:22 +03:00
Vesa
ff0c9beadd SF2: Make timing more accurate, also some fixes
I'm not saying sample-accurate, because it turns out, Fluidsynth has an internal buffer size and thus timing granularity of 64 frames. So 64 frames is the max. accuracy attainable for SF2. But it's better than nothing. Big thanks to David Henningsson of the Fluidsynth dev team, who very helpfully answered questions. A great guy.
In addition, there are some fixes to earlier commits here, which I ran into while working on the SF2 timing.
2014-07-06 16:11:35 +03:00
Tobias Doerffel
e12daf6bae Merge remote-tracking branch 'origin/stable-1.1' 2014-07-06 13:57:54 +02:00
Tobias Doerffel
97bb80b9b1 Merge branch 'stable-1.0' into stable-1.1
Conflicts:
	CMakeLists.txt
	README
	lmms.rc.in
2014-07-06 13:56:44 +02:00
Tobias Doerffel
6711f5d291 Added support for winpthreads library
Recent builds of MinGW64 runtime include the winpthreads library which
is not linked statically anymore and thus doesn't required non-portable
(de-)initialization function calls.
2014-07-06 13:52:32 +02:00
Tobias Doerffel
ab55b26e4b SWH/BodeShifterCV: fix out-of-bounds array access
The xcoeffs array only has 100 elements and thus accessing xcoeffs[100]
leads to undefined behaviour.
2014-07-05 17:47:49 +02:00
Vesa V
8407427c4b Merge pull request #933 from LMMS/stable-1.1
Stable 1.1
2014-07-05 16:34:34 +03:00
Vesa
88c546275b SF2: Remove superfluous API call that sets period size for audio backend
We don't use any audio backend with fluidsynth, so there's no need to set a period size for it.
2014-07-05 16:29:59 +03:00
Vesa
066a9c9f92 LB302: Remove the non-functional Accent button from the UI, pending real implementation 2014-07-05 11:46:53 +03:00
Vesa
3ca971f9e7 Update Zyn from repo, bump version 2014-07-02 23:32:41 +03:00
Vesa V
f3419648cf Merge pull request #916 from diizy/stable-1.1
Sync with Zyn repository - includes a GUI fix, also a fix to RemoteZynAd...
2014-07-02 09:44:10 +03:00
Tres Finocchiaro
20b63ea6c4 Moved isnan/isinf compat code to lmms_math.h 2014-06-30 23:19:04 -04:00
Vesa
71c1bf7dd8 Sync with Zyn repository - includes a GUI fix, also a fix to RemoteZynAddSubFx 2014-06-30 15:18:41 +03:00
Vesa V
6ffcc0e799 Merge pull request #911 from diizy/master-nph
Revision of handling of frameoffset for NPH, SPH
2014-06-30 12:52:44 +03:00
Vesa V
9c8c80683b Merge pull request #913 from LMMS/stable-1.1
Syncing...
2014-06-30 12:49:02 +03:00
Vesa
23433a70b5 Sample-exact models: improve
- Remove the redundant hasSampleExactData() function. Instead, signal lack of s.ex.data by returning a NULL in valueBuffer()
- Cache s.ex.buffers and only update them once per period
- Make valueBuffer() in AutomatableModel threadsafe so that it can be used for NPH's sharing the same model
- Add sample-exactness to instrumenttrack's vol & pan knobs
2014-06-30 01:59:18 +03:00
Vesa
71217c0d85 Addition to earlier: Fix monstro 2014-06-29 23:28:51 +03:00
Vesa
270af579b8 Revision of handling of frameoffset for NPH, SPH
Change in handling of frameoffset for multistreamed instruments and sampletracks.
- Instead of holding the offset for the lifetime of the playhandle, negate the offset in the first period
- Multistream-instruments require some small changes: they have to now check for the offset and accordingly leave empty space in the start of the period (already done in this commit)
- There are possibly optimizations that can be done later
- This change is necessary so that we can have sample-exact models, and sample-exact vol/pan knobs for all instruments. Earlier multistream instruments were always rendering some frames ahead-of-time, so applying sample-exact data for them would have been impossible, since we don't have the future-values yet...
2014-06-29 23:13:00 +03:00
Vesa
dd65d48318 Monstro: improve accuracy of env release 2014-06-29 13:27:29 +03:00
Vesa
a7bb31159e Merge branch 'stable-1.1'
Conflicts:
	include/basic_filters.h
	src/core/FxMixer.cpp
2014-06-28 17:24:23 +03:00
Vesa
92544a7932 What's this strings for Monstro 2014-06-26 19:21:16 +03:00
Vesa V
77230c07da Merge pull request #885 from diizy/gfx
Monstro waveform icons updated
2014-06-24 20:28:37 +03:00
Vesa
61cca2b513 Monstro waveform icons updated 2014-06-24 20:27:25 +03:00
Vesa
4185eac023 Merge branch 'stable-1.1'
Conflicts:
	src/core/AutomatableModel.cpp
2014-06-23 22:10:27 +03:00
Tobias Doerffel
1287aec800 Merge pull request #875 from diizy/logs
Logscale models: fix all issues and finalize the implementation
2014-06-21 23:43:05 +02:00
Tobias Doerffel
eee2ba7f16 Merge remote-tracking branch 'origin/stable-1.1'
Conflicts:
	data/locale/de.qm
	data/locale/de.ts
2014-06-21 23:30:59 +02:00
Tobias Doerffel
6d8890b4ff Merge remote-tracking branch 'origin/stable-1.0' into stable-1.1 2014-06-21 23:29:32 +02:00
Vesa
87c4f9c7f2 SF2 player: fix playback issues
Changing the velocity after noteon doesn't really seem to work on fluidsynth (may be dependent on soundfont file) - seems like the panning changes when velocity is changed.
So I disabled that, after which everything works fine.
2014-06-21 11:21:25 +03:00
Vesa
14909bdf1b Log scales finalized 2014-06-20 22:46:10 +03:00
Vesa
b4f0c73beb Watsyn updates 2014-06-20 02:57:33 +03:00
Tobias Doerffel
e0dcd1c352 Merge pull request #863 from tresf/stable-1.1
Allow vertical resize for VST Plugin Control Window
2014-06-19 09:55:07 +02:00
Tobias Doerffel
ceec0b175c Merge pull request #861 from diizy/lb302
LB302: Correct slide for samplerate
2014-06-19 09:54:52 +02:00
tresf
73bd963a3f Allow vertical resize for VST Plugin Control Window 2014-06-18 02:54:29 -04:00
Vesa
c93f6587e6 LB302: Correct slide for samplerate 2014-06-17 14:35:53 +03:00
Vesa
0d2249828d Graphics updates 2014-06-17 12:39:52 +03:00
Tobias Doerffel
41197a949a Merge pull request #852 from diizy/sf2fix
SF2 player: fix playback issues
2014-06-15 23:32:14 +02:00
Tobias Doerffel
3de952e9c1 Merge pull request #844 from grejppi/stable-1.1-kicker
kicker: keep start note behaviour for old presets
2014-06-15 23:31:52 +02:00
Vesa
9d3c8a98ae Monstro: fix another silly error... 2014-06-15 22:38:25 +03:00
Vesa
dcfa4ebe43 Monstro: oops... corrected an error 2014-06-15 17:29:24 +03:00
Vesa
b5d9286fdc Monstro - additional small fix... 2014-06-15 16:01:12 +03:00
Vesa
8a2aeaa595 Monstro updates
- Fix FM (use PM-based FM to prevent pitch drift)
- Bunch of codepath optimizations
- Somewhat saner min/max values for PW
2014-06-15 15:58:07 +03:00
Vesa
585f8b6d93 SF2 player: fix playback issues
Changing the velocity after noteon doesn't really seem to work on fluidsynth (may be dependent on soundfont file) - seems like the panning changes when velocity is changed.
So I disabled that, after which everything works fine.
2014-06-14 20:36:21 +03:00
Vesa
c45163f936 LB302: one last fix... 2014-06-14 14:32:15 +03:00
Hannu Haahti
ebc9da8c71 kicker: keep start note behaviour for old presets 2014-06-12 16:20:26 +03:00
Vesa
11209593e0 Last LB302 fixes for now (I hope!) 2014-06-11 15:05:07 +03:00
Vesa
9af0d7af93 LB302: further fixes
- My earlier fixes caused some new issues, now I'm fixing them, this time I'm pretty sure there won't be anything I missed
2014-06-10 09:02:20 +03:00
Tobias Doerffel
5fdc8e63d9 Merge pull request #819 from diizy/mixeriph2
Ensure that NotePlayHandles get processed before the InstrumentPlayHandl...
2014-06-09 13:43:51 +02:00
Vesa
40407f6ce6 LB302: Fix playback bugs (sticking pitch), add bandlimited waves 2014-06-07 14:39:45 +03:00
Vesa
bad08a2632 Ensure that NotePlayHandles get processed before the InstrumentPlayHandle on instruments that use both NotePlayHandles and InstrumentPlayHandle, such as LB302 and SF2-Player
Issue: Currently, we use threads to process all PlayHandles, so there's no guarantee of the order they are processed in. This causes timing inaccuracy and jitter: notes of instruments that use both NPH's and IPH's can get randomly delayed by one entire period.
The issue is solved thusly:
- When processing an IPH, we check if the instrument is midi-based. If yes, we just process it normally (no NPH's to worry about).
- If it's not, then it also uses NPH's, so we'll have the IPH wait until all NPH's belonging to same instrument have been processed. There's some similar code in the new FX mixer, I pretty much just copied how we do it there.
2014-06-06 14:24:51 +03:00
Tres Finocchiaro
922ab25217 Fast forward vesa's sample-accurate changes 2014-06-04 09:03:19 -04:00