Giter Club home page Giter Club logo

bristol-fixes's People

Contributors

nomadbyte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bristol-fixes's Issues

odyssey: No output for PINK noise

ARP Odyssey: when selecting the noise type switch to PINK, there's no noise output. Switching it back to WHITE restores the output signal to white noise.

Cppcheck reports issues, likely due to typos

These issues flagged by cppcheck were previously reported by user: dcb to Bristol Project and remain unfixed:

Bristol-Bug: 94
Bristol-Bug: 95

These seem like typos, probably unnoticed in usage due to effective code paths, still should be easily fixed.

Linux: `make` fails on 'libbristolaudio/audioEngineJack.c' due to 'alsa/iatomic.h' not found

Building the original bristol-0.60.11 sources on Ubuntu 18.04 fails due to 'alsa/iatomic.h' not found. It's being included in 'libbristolaudio/audioEngineJack.c'. Below is the error log.

make
...
gcc -DHAVE_CONFIG_H -I. -I..   -I/usr/X11R6/include -pthread -Wall -g -I./../include/slab -I./../include/bristol -DBRISTOL_HAS_OSS=1 -D_BRISTOL_DRAIN -DBRISTOL_HAS_ALSA=1 -D_BRISTOL_JACK -D_BRISTOL_JACK_MIDI -D_BRISTOL_JACK_SESSION -I/usr/include/alsa   -g -O2 -I/usr/X11R6/include -MT audioEngineJack.o -MD -MP -MF .deps/audioEngineJack.Tpo -c -o audioEngineJack.o audioEngineJack.c
audioEngineJack.c:42:10: fatal error: alsa/iatomic.h: No such file or directory
 #include <alsa/iatomic.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
Makefile:323: recipe for target 'audioEngineJack.o' failed
make[2]: *** [audioEngineJack.o] Error 1
make[2]: Leaving directory '/home/developer/work/bristol-develop/libbristolaudio'
Makefile:366: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/developer/work/bristol-develop'
Makefile:297: recipe for target 'all' failed
make: *** [all] Error 2

odyssey: Diminished OSC1,2 tune range (both coarse and fine)

ARP Odyssey: The OSC1/OSC2 frequency COARSE slider is expected to have a range of 20Hz - 2kHz, basically 6 octaves (in KBD mode), here it only allows roughly one octave (bottom-top). In LFO mode the oscillator's COARSE range is expected to be 0.2Hz-20Hz (roughly 6 octaves).

Per Mfg. specs ref-1:

  • OSC1 Coarse tuning:(KBD/LF:KBD) bottom:20Hz, top:2kHz, mid:200Hz
  • OSC1 Coarse tuning:(KBD/LF:LF) bottom:0.2Hz, top:20Hz, mid:2Hz
  • OSC1 Fine tuning:(KBD/LF bottom:-400cent, top:+400cent, mid:0 (+/- 4 semitones)
  • OSC1 Pulse width: bottom:50%, top:5%

odyssey: OSC1 in LFO mode generates audible frequency

ARP Odyssey: OSC1 generates low but still audible freq (did not measure the exact freq).

OSC1 KBD/LF switch in LF-mode should result in the generation of lower (inaudible) frequency: 0.2-20Hz ==> 2.0e-1|2.0e0|2.0e1.

odyssey: MARK I/II skins should likely correspond to Mk II

ARP Odyssey: MARK I/II switch is likely meant to be Mk II (Mk2: "golden" , Mk3: "orange") ref-1.

The black-gold face was introduced while still at Mk I. However, given the PPC (proportional pitch control) buttons, it indicates rather the Mk II, as the Mk I had the rotary pitch bend knob.

The black-orange face was introduced at Mk III.

odyssey: VCF keyboard tracking has a rather drastic effect

ARP Odyssey: VCF slider in keyboard tracking mode (KBD CV switch up) seems to be overly aggressive??, non gradual. It jumps from bright sound at 0-level, but when off-zero it drops to very muffled sound, even at higher VCF cut-off.

The VCF slider is supposed to track the VCF cut-off freq, based on the selected voltage-source. In the KBD CV mode, the control voltages applied to cut-off should correspond to the pressed keys. I understand that VCF cut-off freq tracking is supposed to act similarly to keyboard tracking of the main OSC1,2 frequency (+/- 1 V/oct ). So raising the VCF tracking slider in KBD CV mode should result in a gradual raising of the VCF cut-off (sound brightens) up until the full level corresponding to the pressed key tuning level.

Basically, there should not be that drastic cut-off jump off-zero slider level.

extended ascii char. from keyboard are ignored

When playing notes with computer keybord, neither extended ascii key nor dead key
can be used for mapping.
Then, e.g. with a french azerty keybord, only the bottom set of keys is usefull.

There are in fact two different issues :

  • the extended ascii keys : only one line of code has to be changed!
    In brightonControllers.c, inside brightonMapKeyboard method, the "from" variable
    must be declared "unsigned char" in place of "int".
    That's it! Well almost: the profile file must be coded in any kind of iso 8859
    to get extended ascii characters on one byte.

To use UTF 8 coding (or any other multi bytes coding), (unsigned) int or char
declarations would have to be replaced by wchar_t. That's an other story.

  • the dead keys (on a french azerty keyboard, the key "^" between "p" and "$" is one of them...)
    Here a list of substitutions is needed. Can be done by adding a dynamic array to brightonWindow. It's not
    very clean but it avoids any other change of existing struct definitions. To fill this
    array, add a optional fourth field to "KM" records in the profile file.

Solve the first issue would be already a big step forward, for a very little price.

See #93 extended ascii char. from keyboard are ignored

odyssey: WHITE/PINK noise switch shown reversed

ARP Odyssey panel WHITE/PINK noise switch:

  • Currently, the panel shows the WHITE/PINK noise switch with PINK label on top. Originally it is expected to be in the reverse orientation (top:WHITE, bottom: PINK)

Linux: Building with GCC 10 fails with 'multiple definition of' linking errors

Building with GCC 10 fails with linking errors:

bristol.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
dco.o:/home/testuser/bristol-develop/bristol/dco.c:42: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
dco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
expdco.o:/home/testuser/bristol-develop/bristol/expdco.c:43: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
expdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
filter2.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
filter.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
filter.o:/home/testuser/bristol-develop/bristol/filter.c:148: multiple definition of `pidsr'
filter2.o:/home/testuser/bristol-develop/bristol/filter2.c:150: first defined here
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:48: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
junodco.o:/home/testuser/bristol-develop/bristol/junodco.c:42: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
junodco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
lfo.o:/home/testuser/bristol-develop/bristol/lfo.c:41: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
prophetdco.o:/home/testuser/bristol-develop/bristol/prophetdco.c:50: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
prophetdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
sdco.o:/home/testuser/bristol-develop/bristol/sdco.c:44: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
vox.o:/home/testuser/bristol-develop/bristol/vox.c:62: multiple definition of `wave1'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:73: first defined here
vox.o:/home/testuser/bristol-develop/bristol/vox.c:63: multiple definition of `wave2'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:74: first defined here
vox.o:/home/testuser/bristol-develop/bristol/vox.c:43: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
vox.o:/home/testuser/bristol-develop/bristol/vox.c:44: multiple definition of `samplecount'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:49: first defined here
vox.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
granulardco.o:/home/testuser/bristol-develop/bristol/granulardco.c:42: multiple definition of `samplerate'
midihandlers.o:/home/testuser/bristol-develop/bristol/midihandlers.c:636: first defined here
granulardco.o:/home/testuser/bristol-develop/bristol/granulardco.c:41: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
bit1osc.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
bit1osc.o:/home/testuser/bristol-develop/bristol/bit1osc.c:50: multiple definition of `samplecount'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:49: first defined here
cs80osc.o:/home/testuser/bristol-develop/bristol/cs80osc.c:44: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
cs80osc.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
cs80osc.o:/home/testuser/bristol-develop/bristol/cs80osc.c:45: multiple definition of `samplecount'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:49: first defined here
blo.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
trilogyosc.o:/home/testuser/bristol-develop/bristol/trilogyosc.c:43: multiple definition of `note_diff'
arpdco.o:/home/testuser/bristol-develop/bristol/arpdco.c:42: first defined here
trilogyosc.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: multiple definition of `blo'
arpdco.o:/home/testuser/bristol-develop/bristol/./../include/bristol/bristolblo.h:50: first defined here
trilogyosc.o:/home/testuser/bristol-develop/bristol/trilogyosc.c:44: multiple definition of `samplecount'
hammond.o:/home/testuser/bristol-develop/bristol/hammond.c:49: first defined here

Allow UTF-8 with emulator profile file

ATM, as soon as we want to map a note to an extended ASCII character on a keyboard, we have to save the emulator profile file in some ISO 8859 to constrain such character on one byte.

To use UTF 8 coding with emulator profile files, (or any other multi bytes coding), (unsigned) int or char declarations would have to be replaced by wchar_t.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.