~ubuntu-branches/debian/sid/bristol/sid

« back to all changes in this revision

Viewing changes to ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2011-02-15 02:54:23 UTC
  • mfrom: (13.1.6 experimental)
  • Revision ID: james.westby@ubuntu.com-20110215025423-g8hcla5gyl08mae3
Tags: 0.60.8-2
* Upload to unstable.
* Relax JACK's build-deps to let this build in sid.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1

2
 
    0.60.5 8 Jun 2010 Maintenance release
 
2
    0.60.8 23 Dec 2010 Maintenance release, Hammond optimisations.
 
3
 
 
4
Made some changes to the way bristolrc is handled. If the file exists then a
 
5
seach is made for two tokens, PREARGS and POSTARGS. If they don't exist then 
 
6
the same default behaviour takes place: all the contents are concatenated into
 
7
a set of options that are inserted before all the user parameters. If either
 
8
of these tokens are found then PREARGS are inserted before the user parameters
 
9
and POSTARGS are appended to the whole net commandline to the GUI and engine.
 
10
This gives a lot more flexibility to override default behaviour, for example:
 
11
 
 
12
PREARGS=-count 1024 -rate 48000
 
13
POSTARGS=-jackstats -jack -multi 0
 
14
 
 
15
Using such contents then the command 'startBristol -mini' would be expanded to
 
16
 
 
17
startBristol -count 1024 -rate 48000 -mini -jackstats -jack -multi 0
 
18
 
 
19
A part of the reason for the above change was that there were reports of issues
 
20
with the ARP 2600 and period sizes less than 1024. The culprit appeared to be
 
21
the -multi option, this defaulted to 4 for the 2600. Changed it to default to
 
22
zero with a need to then explicitly reconfigure it. The reconfigure can now be
 
23
automated in POSTARGS. The diverse Bristol front end appliations such as 
 
24
monoBristol provide user arguments to the startup script, the current bristolrc
 
25
definitions can provide capabilities to extend how they operate as there are now
 
26
pre and post arguments that encapsulate the frontend parameters.
 
27
 
 
28
This release is noted as including hammond optimisations, these are not with
 
29
respect to CPU load, rather with respect to accuracy of the emulation:
 
30
 
 
31
Adjusted the B3 Preacher Compression code to provide a more pronounced non-
 
32
linear amplification. The results are interesting/different. It mixes well 
 
33
with the new gearbox generated for a clean tonewheel (mostly sinewaves with
 
34
no crosstalk) and a mild crosstalk gearbox with some sliced tonewheel harmonics.
 
35
The control is not continuous, there are 3 stages which are selected as the
 
36
rotary changes position, this would normally be represented with radiobuttons
 
37
however the GUI previously only had a rotary control so this was used to prevent
 
38
a big reordering of the options panel layout.
 
39
 
 
40
The new tonewheel gearbox are in the factory shadow profiles, per default as
 
41
below. To test them then copy the target gearbox to your private memories
 
42
(these are the defaults, your installation may be different):
 
43
 
 
44
        source: /usr/local/share/bristol/memory/profiles/tonewheel*
 
45
        dest: ~/.bristol/memory/profiles/tonewheel
 
46
 
 
47
Also made few alterations to the B3 VC algorithm changing the tap gains and 
 
48
LC filter values, altered the tap selections for the different 1/2/3 settings
 
49
and adjusted the selector mode to reconfigure LC and phase (which work in
 
50
combination) rather than the actual tapping points. More work could be done
 
51
but these do now give some different characteristics where previously VC3 was
 
52
the only useful setting. [Note: it would actually be quite easy to make even
 
53
further improvements here by using an alternative filter algorithm into the 
 
54
different taps. The current one is a rooney which has weak phase modification,
 
55
it is similar to the original in as much as that could only introduce about
 
56
1ms of phase change however bristol has other algorithms that would give better
 
57
phase changes by frequency which would be closer to the Hammond vibra. The
 
58
current code overcomes the rooney limitation by taking the phase changed filter
 
59
signal (which has a phase change that is dependent on frequency) with an
 
60
additional phase change that is time constant. The issue is efficiency, the 
 
61
rooneys are single pole and come almost for free. ffs]
 
62
 
 
63
Reintroduced some B3 code to give contact delays for each drawbar. The delay
 
64
is configured in the tonewheel file and is then a function of velocity. The
 
65
tonewheel file defines the maximum sample delay before any given harmonic is
 
66
activated and this delay is reduced depending on velocity. It is also possible
 
67
to configure a click sample per bus out of 4 available however the author
 
68
will state that none of the samples is accurate: click, thump, shelf, etc, is
 
69
not an accurate emulation. Depending on which source is considered authoritative
 
70
then the Hammond click may be a pure function of tonewheel position and its
 
71
activation point. This code emulates that effect with the option of adding in
 
72
extra effect as a combination of the tonewheel file samples and the overall
 
73
click setting. Note that the 'click' level does not affect the cut in points
 
74
of the harmonics, reducing the 'click' level will not affect the tick sound 
 
75
when a drawbar contact is finally made. The harmonics do not have a constant
 
76
phase as per the original however the tonewheel file can override that to
 
77
emulate the L and M series spinets. With the current code, pressing a key very
 
78
slowly should result in the delays between the different busses being almost
 
79
audible, an effect that reduces with velocity. The configured Click is reduced
 
80
when the vibrachorus is on as is also heard on the originals.
 
81
 
 
82
This click code has actually been available for a few years, it was removed as
 
83
it affected other developments for gearbox optimisation. This optimisation was
 
84
to 'post generate' the tonewheels: if a harmonic was not needed then it would
 
85
never be generated. This was not condusive to busbar delays so now the decision
 
86
has been taken to drop the CPU optimisation in preference of a more accurate
 
87
rendition. At the same time the tonewheel damping was corrected so that, under
 
88
control of the Damp option, the summed levels of any given wheel is not linear
 
89
but is a function of the number of times it is tapped. It is noted here that
 
90
if no click is desired, at all, then the 'preacher' algorithm should be 
 
91
disabled at which point notes are generated from zero point as per many of
 
92
the commercial emulators. Several of the later Hammond models reduced/eliminated
 
93
key click using various techniques, disabling the Preacher would give results
 
94
closer to the B2XX series organs. Disabling the preacher removes the damping,
 
95
busbar offsets, and all the other features of the tonewheel file.
 
96
 
 
97
Adjusted the click code to introduce changes to the bus offset delays by key
 
98
as well as velocity. The existing code used a single profile per gearbox but no
 
99
two keys would have had the same contact profile as this was based on aging of
 
100
the springs: the code now has semi-random delay selection. The 'semi' refers to
 
101
code that will select the same offsets if the same key is sounded sequentially,
 
102
this is how Jimmy Smith used to play key click with the same key - now the
 
103
delays for that sequential key do not change (they will if intermediate notes
 
104
are sounded which he also did and potentially the delay offsets may be prebuilt
 
105
for the whole keyboard rather than calculated, ffs). The different bus delays
 
106
only affect timing not the actual effect so if 'Click' is non-zero then the
 
107
sample selection per bus will be constant even though the delay changes. Now,
 
108
another affect of the bus delays is that if playing quickly it is possible that
 
109
a note will start and stop before even all the harmonics have sounded, this is
 
110
another trick of Smith when he played notes to not traverse the complete travel
 
111
of the key: not all harmonics would actually make contact and this is also
 
112
possible with bristol (depending on velocity, buffer size and configured bus
 
113
delays).
 
114
 
 
115
Added a -keytoggle flag, it affects GUI behaviour where a key is released when
 
116
the mouse button is released. Previously the key state latched which was useful
 
117
for polyphonic emulators but not necessarily for the monophonic ones. The
 
118
default operation is now not to latch the keys, this option overrides the new
 
119
default behaviour to give latching keys again.
 
120
 
 
121
There were some sticky keys and note 'ticks' when using the monophonic synths
 
122
with -nnp (no note preference). The polyphonic note logic could completely kill
 
123
notes when overvoice and if a keyoff event occurs for a voice on the new list
 
124
then some of the flags would get damaged. None of this happens with monophonic
 
125
note preference or with polyphonic synths (well, the ticks may still happen if
 
126
the polyphony is exceeded but get burried in the mix of multiple voices, ffs).
 
127
 
 
128
Bug report on some emulators defaulting to only one semitone of pitchwheel
 
129
depth. This turns out to be emulator aliases: the interface recognises some
 
130
alias names but it could not set defaults except on exact names. Incorporated
 
131
some changes to accept the known emulator aliases too.
 
132
 
 
133
Feature request that the SID should acknowledge pitchbend wheel as well as or
 
134
instead of pitchbend on the modwheel. Not a big change and the issue with the
 
135
MOD wheel is that it was difficult to tune having no notch. Currently both 
 
136
controls can affect pitch but the modwheel can be turned on/off selectively.
 
137
 
 
138
There was a window when the global configuration options would not be sent to
 
139
the engine, a race condition. The result would be no output signal.
 
140
 
 
141
There was another race condition in the GUI library which for now has been
 
142
patched. The actual fix is a little larger but it will be left for future 
 
143
research.
 
144
 
 
145
Found a bug in the MIDI handling code for NOTE_ON velocity zero being mapped
 
146
to NOTE_OFF velocity 64. When the ringbuffer was introduced the check moved to
 
147
the wrong side of the ringbuffer causing an endless loop at 100% CPU, for 
 
148
some emulators quite a lot of nasty random noise and potential system 'hang'
 
149
for certain CPU configurations with RT scheduling. This had not been reported
 
150
which means either people did not bother or the use of NOTE_ON velocity zero
 
151
is not widely used.
 
152
 
 
153
Release 0.60.7 had an undocumented feature, undocumented because it was not
 
154
that big but it did go into the manual page. The option -jackstats will prevent
 
155
bristol from attempting to find out the current jack server settings, these
 
156
parameters would instead be defined with -count and -rate. This change fixes
 
157
some issues with jack connections, with LADI, and makes the GUI start a bit
 
158
faster as it does not have to poll the server from the script then reconnect
 
159
to the server from the audio thread.
 
160
 
 
161
The BME-700 Glide on/off switch was not active.
 
162
 
 
163
Roadrunner Vibrato was too deep, by a long way. Scaled back the tremelo at the
 
164
same time. Gentle vibrato was still possible but not under mouse control, it 
 
165
had to be done with keyboard accel/deccel.
 
166
 
 
167
    0.60.7 22 Oct 2010 Maintenance release, minor features
 
168
 
 
169
Added in an option called -memdump which will copy all memories for a given
 
170
synth (specified with -emulate) to a target location. That location is then used
 
171
as the session cache so further changes will be made to the dumped memories. 
 
172
That is intentional: this can be used with Session Management using a target
 
173
location in the session directory so that the session will include all of the
 
174
synth memories. The copy operation of the user memories only happens once when
 
175
the directory is created.
 
176
 
 
177
Added in an option call -neutral, this will initialise the emulator with the
 
178
value zero for all parameters. This provides a clean sheet from which to start
 
179
sound generation. The code is generic and there are some exceptions to where
 
180
it is applied: the organs and pianos do not implement the option, some of the
 
181
synths are exceptions too (P800, BitOne, DX) as they have a non-intuitive 
 
182
interface that does not lend itself to being zeroed. For testing the few that
 
183
do not implement the option then '-load -1' can be used as a potential 
 
184
alternative.
 
185
 
 
186
Added a runcom file "bristolrc" located in ${BRISTOL_CACHE}/bristolrc which
 
187
may contain the parameters that are always provided on the command line. The
 
188
parameters will be placed before the command line arguments so that they can
 
189
be overridded but they provide the possibility to simplify the command line
 
190
that needs to be specified when bristol is invoked. The variable BRISTOL_RC
 
191
can override the default location and the -rc option will circumvent it.
 
192
 
 
193
The size of the voice table is now a configure time parameter. There were some
 
194
requests for optimisation and reducing the size of these tables is a small one.
 
195
./configure BRISTOL_VOICECOUNT=32 is the default. This is not the max table
 
196
size which continues to be 128 voices: the -voices option is a runtime parameter
 
197
that can be used to increase the size of the table above the VOICECOUNT limit,
 
198
this ./configure option is just the default.
 
199
 
 
200
Resolved an issue with the filter tuning of a few of the emulators, they were
 
201
using an incorrect keyboard tracking value which meant that with the filter at
 
202
high emphasis there was discordance in the oscillator vs filter waveform
 
203
frequencies.
 
204
 
 
205
Reworked the summary text for small changes to some of the synth names: they 
 
206
are sometimes different from the switches used to start them however the actual
 
207
name is required to be able to use emulate correctly. The -summary list will
 
208
list the emulators that have been finished, --summary will list all of them
 
209
even though a selection do not actually operate yet.
 
210
 
 
211
Removed the empty pop-up menus. The code is still there however it is no longer
 
212
called by either GUI or library. There were diverse requests to stop posting
 
213
them as they had no purpose.
 
214
 
 
215
Added an initialisation watchdog timer. If the audio thread does not activate
 
216
in this period then the engine will gracefully exit rather than just hang 
 
217
around waiting for somebody to talk to him. The default timer is 30 seconds 
 
218
but can be changed with the '-watchdog <s>' parameter.
 
219
 
 
220
The ARP Axxe was about a semitone out of tune. The cause was the logic behind
 
221
the pitch buttons which was broken.
 
222
 
 
223
Glide parameter settings could be lost on restart, the 'glidemax' parameter was
 
224
not being correctly initialised so remained as zero.
 
225
 
 
226
Remedied a test failure for the jackd binary. If jack is requested as the audio
 
227
interface then we need to connect to it to find the correct sampling rates and
 
228
period sizes. The check for failure of this request was broken.
 
229
 
 
230
Fixed a very arbitrary race condition between the audio and midi threads
 
231
causing segfaults which only happens during initialisation with heavily loaded
 
232
CPU. Doubt if this will have been seen outside of development as the window
 
233
was extremely small.
 
234
 
 
235
There was a spurious 'newline' debug message when active sense was detected from
 
236
a keyboard. Bristol does not support active sensing (except from the GUI) and
 
237
whilst these messages did not cause any issue with the synth operation they 
 
238
were a great annoyance for the command line interface users. The print statement
 
239
was put under a debug flag.
 
240
 
 
241
    0.60.6 11 Aug 2010 Geometry configuration options, maintenance release
 
242
 
 
243
Was requested to implement a -geom option which would minimally allow for window
 
244
placement onto the screen. This seemed very reasonable so incorporated it. The
 
245
option will also take width and height parameters such as 500x200+100+100 and
 
246
where necessary break aspect ratio and configure antialiasing. If only one of
 
247
width/height is given then aspect ratio is maintained, and options such as
 
248
+100+100 will just affect window positioning. Options like -geom 640 will just
 
249
set the pixel width, maintain aspect ratio and take default placement, possibly
 
250
invoking antialiasing as well.
 
251
 
 
252
Randomised the TCP port numbers used to link the GUI to the bristol engine.
 
253
There remained an issue with the Jack Session Manager and configurations that
 
254
used multiple invocations of bristol: the TCP port identifiers would conflict
 
255
causing one of them to fail on reload. I think the option '-host unix:1234' is
 
256
a work around the issue as long as '1234' was always unique per bristol but
 
257
this only works on localhost as it uses unix domain sockets rather than TCP
 
258
domain. The longer term solution was to randomise the port numbers in the range
 
259
1024 to 16383, the transient service ports since otherwise there is still a
 
260
window for error if the TCP ports are not closed down cleanly (although that
 
261
is now finally a rare occurence). The port identifier can still be overridden
 
262
and will be inherrited by the JSM interface.
 
263
 
 
264
Resolved a few issues with different device drivers. OSS was actually broken for
 
265
a while due to incorrect flags and buffers and there were a few ALSA anomalies 
 
266
although they were inadvertently correct.
 
267
 
 
268
Was requested to add a manual page for bristoljackstats for part of the debian
 
269
hurdles. Took the chance to also remove two ancillary binaries which generated
 
270
notes but were only for QA testing, not general distribution.
 
271
 
 
272
Added an option called -sleep which stalls the init process for <n> seconds.
 
273
This was too easy not to implement and may help to overcome what looks like a
 
274
race conditition when using a session manager to restart multiple Bristol 
 
275
clients.
 
276
 
 
277
Corrected some ./configure options so that they correctly check for jack and
 
278
alsa header files rather than just the packages and libraries before including
 
279
them in the build. This change included adjusting the default drivers so that
 
280
OSS is configured when jack and alsa are not available.
 
281
 
 
282
    0.60.5 08 Jun 2010 Maintenance release
3
283
 
4
284
Fixed an issue with the SID where double clicking on the memory Load button 
5
285
would turn on the soft chip debug code. This was a development feature that was
390
670
 
391
671
The CLI is available for the following emulators:
392
672
 
393
 
        Mini
394
 
        Explorer
395
 
        Voyager
396
 
        Odyssey
397
 
        Axxe
398
 
        B3
399
 
        BME700
400
 
        Realistic
401
 
        Juno
402
 
        Jupiter
403
 
        PolySix
404
 
        MonoPoly
405
 
        OB-X
406
 
        OB-Xa
407
 
        Pro1
408
 
        Prophet5
409
 
        Prophet52
410
 
        Prophet10
411
 
        Sonic-6
412
 
        Stratus
413
 
        Trilogy
414
 
        Sidney
415
 
        Solina
416
 
        Vox
417
 
        VoxM2
418
 
        RoadRunner
419
 
        Rhodes
420
 
        Rhodesbass
 
673
    Mini
 
674
    Explorer
 
675
    Voyager
 
676
    Odyssey
 
677
    Axxe
 
678
    B3
 
679
    BME700
 
680
    Realistic
 
681
    Juno
 
682
    Jupiter
 
683
    PolySix
 
684
    MonoPoly
 
685
    OB-X
 
686
    OB-Xa
 
687
    Pro1
 
688
    Prophet5
 
689
    Prophet52
 
690
    Prophet10
 
691
    Sonic-6
 
692
    Stratus
 
693
    Trilogy
 
694
    Sidney
 
695
    Solina
 
696
    Vox
 
697
    VoxM2
 
698
    RoadRunner
 
699
    Rhodes
 
700
    Rhodesbass
421
701
 
422
702
The arp2600, bm, bit1, bit99, bit100, dx and poly800 have not been converted
423
703
and are for future study. The bit and Poly need a separate interface due to
440
720
 
441
721
set alias trans Osc1-Transpose=%
442
722
 
443
 
The commmand 'trans 0.5' will cause a transpose request to be made to the 
 
723
The command 'trans 0.5' will cause a transpose request to be made to the 
444
724
engine. Multiple commands can be aliased together using ';' between them.
445
725
Multiple parameters can be set such as
446
726
 
682
962
frequencies. The code now does cut in bandwidth limits depending on a few run
683
963
time parameters:
684
964
 
685
 
        -blo n         - maximum number of harmonics to map, defaults to 31
686
 
        -blofraction f - upper frequency limit as fraction of samplerate (0.8)
 
965
    -blo n         - maximum number of harmonics to map, defaults to 31
 
966
    -blofraction f - upper frequency limit as fraction of samplerate (0.8)
687
967
 
688
968
The code will attempt to stuff as many harmonics up to 'n' such that the 
689
969
fractional limit is not broken. Using values > 1.0 will lead to pretty wild
1862
2142
points of this fair synth:
1863
2143
 
1864
2144
    Added a mod wheel that can drive GenX/Y.
1865
 
        PWM is implemented on oscillator B
1866
 
        Installed an ADSR rather than AR, selectable.
1867
 
        No alternative scalings - use scala file support
 
2145
    PWM is implemented on oscillator B
 
2146
    Installed an ADSR rather than AR, selectable.
 
2147
    No alternative scalings - use scala file support
1868
2148
 
1869
2149
The emulation is not duophonic. Primarily poly with separated glide. It does
1870
2150
have the same 'diaphonic' capabilities although they were pretty dubious in