Free as in Freedom: Codeberg.org. Create your repos and join us!
Join Donate
No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Holger Wirtz 6f48797940 Additional fixes for automatic buffer size at compile time. 1 month ago
addon Added delay, reverb, filter - just with fixed values - only as a first test. Fixed maximum note allocation code in dexed.h. 4 months ago
doc Fixed bad latency (about 50ms!) with a bad but woking hack. Now the latency is at about 5.5ms. Added a screenshot from latency measurement. 2 months ago
.gitignore Initial commit 9 months ago
Encoder4.h Created derived classes for Encoder4 and LiquidCrystal_I2CPlus. 4 months ago
EngineMkI.cpp Code cleanup add license additions. 8 months ago
EngineMkI.h ... 9 months ago
EngineOpl.cpp Fixes. 9 months ago
EngineOpl.h Fixes. 9 months ago
LICENSE-APACHE2.txt Code cleanup add license additions. 8 months ago
LICENSE-GPL3.txt Code cleanup add license additions. 8 months ago
LiquidCrystalPlus_I2C.h Switched to Teensy Audio Board. Added link to source of LiquidCrystal_I2C. 4 months ago
MicroDexed.ino Additional fixes for automatic buffer size at compile time. Fixed onboard USB-MIDI via programing interface. 1 month ago
README.md Added additional project hints. Smaller changes. 7 months ago
UI.cpp Fixed delay volume handling. 2 months ago
UI.h Added mixer2 for controlling whole delay volume. Replaced delay-sync with delay-volume in UI. 4 months ago
aligned_buf.h Initial version 9 months ago
config.h Additional fixes for automatic buffer size at compile time. Fixed onboard USB-MIDI via programing interface. 1 month ago
controllers.h Fix for controllers. 9 months ago
dexed.cpp Added effects menu to UI - still not ready to use. 4 months ago
dexed.h Added delay, reverb, filter - just with fixed values - only as a first test. Fixed maximum note allocation code in dexed.h. 4 months ago
dexed_sysex.cpp Added selection of MIDI channel. Added auto-store for volume/midi-channel and voice/bank. Small fixes. 4 months ago
dexed_sysex.h Optimized bank and voice loading (not ready yet). 4 months ago
dx7note.cpp Small FPU optimisations. 9 months ago
dx7note.h ... 9 months ago
env.cc Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
env.cpp Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
env.h Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
exp2.cpp Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
exp2.h Initial version 9 months ago
fm_core.cpp Code cleanup add license additions. 8 months ago
fm_core.h ... 9 months ago
fm_op_kernel.cc Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
fm_op_kernel.cpp Fixed typo. 8 months ago
fm_op_kernel.h Initial version 9 months ago
freqlut.cpp Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
freqlut.h Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
lfo.cpp Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
lfo.h Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
midinotes.h Fixed summing of signals as integers. Added midinotes.h. Added overload detection. Small fixes. 8 months ago
module.h Initial version 9 months ago
pitchenv.cpp Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
pitchenv.h Changed all "double" values to macro FRAC_NUM (defined in synth.h as float), for using the FPU in the Teensy. Added shortcut if audio output is blocking -> go to MIDI input checking. 9 months ago
sin.cpp Small FPU optimisations. 9 months ago
sin.h Initial version 9 months ago
synth.h Added PT8211 output driver option. 6 months ago

README.md

MicroDexed

Dexed port for Teensy (3.5/3.6 with audio shield)

This is a port of the original Dexed/msfa engine (see https://github.com/asb2m10/dexed and https://github.com/google/music-synthesizer-for-android) to be used on a Teensy-3.5 or Teensy-3.6.

The current state is: work in progress…

License

MicroDexed is licensed on the GPL v3. The msfa component (acronym for music synthesizer for android, see https://github.com/google/music-synthesizer-for-android) stays on the Apache 2.0 license to able to collaborate between projects.

Credits & thanks

  • Dexed engine by Pascal Gauthier (asb2m10)
  • DX Synth engine (as part of Dexed): Raph Levien and the msfa team
  • PPPlay : Great OPL3 implementation, with documented code :D

Dexed comes with 3 engine types :

  • Modern : this is the original 24-bit music-synthesizer-for-android implementation.
  • Mark I : Based on the OPL Series but at a higher resolution (LUT are 10-bits). The target of this engine is to be closest to the real DX7.
  • OPL Series : this is an experimental implementation of the reversed engineered OPL family chips. 8-bit. Keep in mind that the envelopes stills needs tuning.