commit
0969d6cd2a
8 changed files with 816 additions and 51 deletions
7
.github/workflows/build.yml
vendored
7
.github/workflows/build.yml
vendored
|
|
@ -70,6 +70,7 @@ jobs:
|
||||||
-DSFIZZ_JACK=ON \
|
-DSFIZZ_JACK=ON \
|
||||||
-DSFIZZ_VST=ON \
|
-DSFIZZ_VST=ON \
|
||||||
-DSFIZZ_LV2_UI=ON \
|
-DSFIZZ_LV2_UI=ON \
|
||||||
|
-DSFIZZ_PUREDATA=ON \
|
||||||
-DSFIZZ_TESTS=ON \
|
-DSFIZZ_TESTS=ON \
|
||||||
-DSFIZZ_SHARED=OFF \
|
-DSFIZZ_SHARED=OFF \
|
||||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
||||||
|
|
@ -157,7 +158,7 @@ jobs:
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: |
|
run: |
|
||||||
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${Env:release_arch}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON
|
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${Env:release_arch}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON -DSFIZZ_PUREDATA=ON
|
||||||
- name: Build tests
|
- name: Build tests
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
|
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
|
||||||
|
|
@ -192,7 +193,7 @@ jobs:
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: |
|
run: |
|
||||||
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${Env:release_arch}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON
|
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${Env:release_arch}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON -DSFIZZ_PUREDATA=ON
|
||||||
- name: Build tests
|
- name: Build tests
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
|
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
|
||||||
|
|
@ -270,6 +271,7 @@ jobs:
|
||||||
-DENABLE_LTO=OFF \
|
-DENABLE_LTO=OFF \
|
||||||
-DSFIZZ_JACK=OFF \
|
-DSFIZZ_JACK=OFF \
|
||||||
-DSFIZZ_VST=ON \
|
-DSFIZZ_VST=ON \
|
||||||
|
-DSFIZZ_PUREDATA=ON \
|
||||||
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
||||||
-DCMAKE_CXX_STANDARD=17
|
-DCMAKE_CXX_STANDARD=17
|
||||||
- name: Build
|
- name: Build
|
||||||
|
|
@ -339,6 +341,7 @@ jobs:
|
||||||
-DENABLE_LTO=OFF \
|
-DENABLE_LTO=OFF \
|
||||||
-DSFIZZ_JACK=OFF \
|
-DSFIZZ_JACK=OFF \
|
||||||
-DSFIZZ_VST=ON \
|
-DSFIZZ_VST=ON \
|
||||||
|
-DSFIZZ_PUREDATA=ON \
|
||||||
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
||||||
-DCMAKE_CXX_STANDARD=17
|
-DCMAKE_CXX_STANDARD=17
|
||||||
- name: Build
|
- name: Build
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
find_path(PUREDATA_INCLUDE_DIR "m_pd.h" PATH_SUFFIXES "pd")
|
find_path(PD_INCLUDE_BASEDIR "m_pd.h" PATH_SUFFIXES "pd")
|
||||||
|
set(PD_IMP_DEF "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/bin/pd.def")
|
||||||
|
|
||||||
if(PUREDATA_INCLUDE_DIR)
|
if(PD_INCLUDE_BASEDIR)
|
||||||
message(STATUS "Puredata headers: ${PUREDATA_INCLUDE_DIR}")
|
message(STATUS "Puredata headers: ${PUREDATA_INCLUDE_DIR}")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Puredata headers not found, using our own")
|
message(STATUS "Puredata headers not found, using our own")
|
||||||
set(PUREDATA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/include")
|
set(PD_INCLUDE_BASEDIR "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/include")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
@ -14,3 +15,45 @@ elseif(APPLE)
|
||||||
else()
|
else()
|
||||||
set(PUREDATA_SUFFIX ".pd_linux")
|
set(PUREDATA_SUFFIX ".pd_linux")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
add_library(pdex-implib STATIC IMPORTED)
|
||||||
|
if(MSVC)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "pd.lib"
|
||||||
|
COMMAND "lib" "/out:pd.lib" "/def:${PD_IMP_DEF}" "/machine:${MSVC_C_ARCHITECTURE_ID}"
|
||||||
|
DEPENDS "${PD_IMP_DEF}")
|
||||||
|
add_custom_target(pdex-implib-generated
|
||||||
|
DEPENDS "pd.lib")
|
||||||
|
set_target_properties(pdex-implib PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/pd.lib")
|
||||||
|
else()
|
||||||
|
find_program(PD_DLLTOOL_PROGRAM "dlltool")
|
||||||
|
if(NOT PD_DLLTOOL_PROGRAM)
|
||||||
|
message(FATAL_ERROR "Cannot find dlltool")
|
||||||
|
endif()
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "libpd.dll.a"
|
||||||
|
COMMAND "${PD_DLLTOOL_PROGRAM}" "-l" "libpd.dll.a" "-d" "${PD_IMP_DEF}"
|
||||||
|
DEPENDS "${PD_IMP_DEF}")
|
||||||
|
add_custom_target(pdex-implib-generated
|
||||||
|
DEPENDS "libpd.dll.a")
|
||||||
|
set_target_properties(pdex-implib PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/libpd.dll.a")
|
||||||
|
endif()
|
||||||
|
add_dependencies(pdex-implib pdex-implib-generated)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
function(add_pd_external TARGET)
|
||||||
|
add_library("${TARGET}" MODULE ${ARGN})
|
||||||
|
target_include_directories("${TARGET}" PRIVATE "${PD_INCLUDE_BASEDIR}")
|
||||||
|
set_target_properties("${TARGET}" PROPERTIES
|
||||||
|
PREFIX ""
|
||||||
|
SUFFIX "${PUREDATA_SUFFIX}")
|
||||||
|
if(APPLE)
|
||||||
|
set_property(TARGET "${TARGET}" APPEND_STRING
|
||||||
|
PROPERTY LINK_FLAGS " -Wl,-undefined,suppress,-flat_namespace")
|
||||||
|
elseif(WIN32)
|
||||||
|
target_link_libraries("${TARGET}" PRIVATE pdex-implib)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
|
||||||
|
|
@ -23,16 +23,19 @@ function(copy_puredata_resources TARGET SOURCE_DIR DESTINATION_DIR)
|
||||||
add_dependencies("${TARGET}" "${TARGET}_puredata_resources")
|
add_dependencies("${TARGET}" "${TARGET}_puredata_resources")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
add_library(sfizz_puredata MODULE sfizz_puredata.c)
|
add_pd_external(sfizz_puredata "sfizz_puredata.c")
|
||||||
target_include_directories(sfizz_puredata PRIVATE "${PUREDATA_INCLUDE_DIR}")
|
target_compile_definitions(sfizz_puredata PRIVATE "SFIZZ_NUM_CCS=${SFIZZ_NUM_CCS}")
|
||||||
target_link_libraries(sfizz_puredata PRIVATE sfizz::sfizz)
|
target_link_libraries(sfizz_puredata PRIVATE sfizz::sfizz)
|
||||||
|
|
||||||
set_target_properties(sfizz_puredata PROPERTIES
|
set_target_properties(sfizz_puredata PROPERTIES
|
||||||
PREFIX ""
|
|
||||||
SUFFIX "${PUREDATA_SUFFIX}"
|
|
||||||
OUTPUT_NAME "sfizz"
|
OUTPUT_NAME "sfizz"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
|
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
set_property(TARGET sfizz_puredata APPEND_STRING
|
||||||
|
PROPERTY LINK_FLAGS " -static")
|
||||||
|
endif()
|
||||||
|
|
||||||
copy_puredata_resources(sfizz_puredata
|
copy_puredata_resources(sfizz_puredata
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
"${PUREDATA_BINARY_DIR}")
|
"${PUREDATA_BINARY_DIR}")
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ ampeg_sustain=50
|
||||||
ampeg_release=2
|
ampeg_release=2
|
||||||
fil_type=lpf_4p
|
fil_type=lpf_4p
|
||||||
resonance=3
|
resonance=3
|
||||||
cutoff=2000
|
cutoff=3000
|
||||||
oscillator_phase=-1
|
oscillator_phase=-1
|
||||||
cutoff_oncc300=3600
|
cutoff_oncc300=3600
|
||||||
cutoff_curvecc300=1
|
cutoff_curvecc300=1
|
||||||
|
|
|
||||||
601
plugins/puredata/external/pd/bin/pd.def
vendored
Normal file
601
plugins/puredata/external/pd/bin/pd.def
vendored
Normal file
|
|
@ -0,0 +1,601 @@
|
||||||
|
LIBRARY pd
|
||||||
|
EXPORTS
|
||||||
|
ABORT
|
||||||
|
array_free
|
||||||
|
array_getcoordinate
|
||||||
|
array_getfields
|
||||||
|
array_new
|
||||||
|
array_redraw
|
||||||
|
array_resize
|
||||||
|
array_resize_and_redraw
|
||||||
|
atom_gensym
|
||||||
|
atom_getfloat
|
||||||
|
atom_getfloatarg
|
||||||
|
atom_getint
|
||||||
|
atom_getintarg
|
||||||
|
atom_getsymbol
|
||||||
|
atom_getsymbolarg
|
||||||
|
atom_string
|
||||||
|
audio_isopen
|
||||||
|
audio_shouldkeepopen
|
||||||
|
binbuf_add
|
||||||
|
binbuf_addbinbuf
|
||||||
|
binbuf_addsemi
|
||||||
|
binbuf_addv
|
||||||
|
binbuf_clear
|
||||||
|
binbuf_duplicate
|
||||||
|
binbuf_eval
|
||||||
|
binbuf_evalfile
|
||||||
|
binbuf_free
|
||||||
|
binbuf_getnatom
|
||||||
|
binbuf_gettext
|
||||||
|
binbuf_getvec
|
||||||
|
binbuf_new
|
||||||
|
binbuf_print
|
||||||
|
binbuf_read
|
||||||
|
binbuf_read_via_canvas
|
||||||
|
binbuf_read_via_path
|
||||||
|
binbuf_realizedollsym
|
||||||
|
binbuf_resize
|
||||||
|
binbuf_restore
|
||||||
|
binbuf_text
|
||||||
|
binbuf_write
|
||||||
|
bug
|
||||||
|
canvas_addinlet
|
||||||
|
canvas_addoutlet
|
||||||
|
canvas_class DATA
|
||||||
|
canvas_closebang
|
||||||
|
canvas_connect
|
||||||
|
canvas_create_editor
|
||||||
|
canvas_dataproperties
|
||||||
|
canvas_deletelinesfor
|
||||||
|
canvas_deletelinesforio
|
||||||
|
canvas_destroy_editor
|
||||||
|
canvas_dirty
|
||||||
|
canvas_disconnect
|
||||||
|
canvas_dspstate DATA
|
||||||
|
canvas_editmode
|
||||||
|
canvas_fixlinesfor
|
||||||
|
canvas_free
|
||||||
|
canvas_getargs
|
||||||
|
canvas_getcurrent
|
||||||
|
canvas_getcurrentdir
|
||||||
|
canvas_getdir
|
||||||
|
canvas_getdollarzero
|
||||||
|
canvas_getenv
|
||||||
|
canvas_getindex
|
||||||
|
canvas_getrootfor
|
||||||
|
canvas_hitbox
|
||||||
|
canvas_initbang
|
||||||
|
canvas_isabstraction
|
||||||
|
canvas_isconnected
|
||||||
|
canvas_istable
|
||||||
|
canvas_loadbang
|
||||||
|
canvas_makebindsym
|
||||||
|
canvas_makefilename
|
||||||
|
canvas_new
|
||||||
|
canvas_noundo
|
||||||
|
canvas_open
|
||||||
|
canvas_path_iterate
|
||||||
|
canvas_readscalar
|
||||||
|
canvas_realizedollar
|
||||||
|
canvas_redraw
|
||||||
|
canvas_redrawallfortemplate
|
||||||
|
canvas_redrawallfortemplatecanvas
|
||||||
|
canvas_rename
|
||||||
|
canvas_resortinlets
|
||||||
|
canvas_resortoutlets
|
||||||
|
canvas_restoreconnections
|
||||||
|
canvas_resume_dsp
|
||||||
|
canvas_rminlet
|
||||||
|
canvas_rmoutlet
|
||||||
|
canvas_selectinrect
|
||||||
|
canvas_setargs
|
||||||
|
canvas_setcurrent
|
||||||
|
canvas_setcursor
|
||||||
|
canvas_setdeleting
|
||||||
|
canvas_setundo
|
||||||
|
canvas_showtext
|
||||||
|
canvas_stowconnections
|
||||||
|
canvas_suspend_dsp
|
||||||
|
canvas_unsetcurrent
|
||||||
|
canvas_update_dsp
|
||||||
|
canvas_updatewindowlist
|
||||||
|
canvas_vis
|
||||||
|
canvas_whichfind DATA
|
||||||
|
canvas_writescalar
|
||||||
|
class_addanything
|
||||||
|
class_addbang
|
||||||
|
class_addcreator
|
||||||
|
class_addlist
|
||||||
|
class_addmethod
|
||||||
|
class_addpointer
|
||||||
|
class_addsymbol
|
||||||
|
class_doaddfloat
|
||||||
|
class_domainsignalin
|
||||||
|
class_gethelpdir
|
||||||
|
class_gethelpname
|
||||||
|
class_getname
|
||||||
|
class_getpropertiesfn
|
||||||
|
class_getsavefn
|
||||||
|
class_isdrawcommand
|
||||||
|
class_new
|
||||||
|
class_new64
|
||||||
|
class_set_extern_dir
|
||||||
|
class_setdrawcommand
|
||||||
|
class_sethelpsymbol
|
||||||
|
class_setparentwidget
|
||||||
|
class_setpropertiesfn
|
||||||
|
class_setsavefn
|
||||||
|
class_setwidget
|
||||||
|
clock_delay
|
||||||
|
clock_free
|
||||||
|
clock_getlogicaltime
|
||||||
|
clock_getsystime
|
||||||
|
clock_getsystimeafter
|
||||||
|
clock_gettimesince
|
||||||
|
clock_gettimesincewithunits
|
||||||
|
clock_new
|
||||||
|
clock_set
|
||||||
|
clock_setunit
|
||||||
|
clock_unset
|
||||||
|
clone_class DATA
|
||||||
|
copy_perform
|
||||||
|
copybytes
|
||||||
|
cos_table DATA
|
||||||
|
dbtopow
|
||||||
|
dbtorms
|
||||||
|
dsp_add
|
||||||
|
dsp_add_copy
|
||||||
|
dsp_add_plus
|
||||||
|
dsp_add_scalarcopy
|
||||||
|
dsp_add_zero
|
||||||
|
dsp_addv
|
||||||
|
endpost
|
||||||
|
error
|
||||||
|
ex_Avg
|
||||||
|
ex_Sum
|
||||||
|
ex_avg
|
||||||
|
ex_funcs DATA
|
||||||
|
ex_getsym
|
||||||
|
ex_mkvector
|
||||||
|
ex_size
|
||||||
|
ex_store
|
||||||
|
ex_sum
|
||||||
|
ex_symname
|
||||||
|
fielddesc_cvtfromcoord
|
||||||
|
fielddesc_cvttocoord
|
||||||
|
fielddesc_getcoord
|
||||||
|
fielddesc_setcoord
|
||||||
|
floatinlet_new
|
||||||
|
freebytes
|
||||||
|
ftom
|
||||||
|
g_editor_freepdinstance
|
||||||
|
g_editor_newpdinstance
|
||||||
|
g_template_freepdinstance
|
||||||
|
g_template_newpdinstance
|
||||||
|
garray_class DATA
|
||||||
|
garray_getarray
|
||||||
|
garray_getfloatarray
|
||||||
|
garray_getfloatwords
|
||||||
|
garray_getglist
|
||||||
|
garray_npoints
|
||||||
|
garray_redraw
|
||||||
|
garray_resize
|
||||||
|
garray_resize_long
|
||||||
|
garray_setsaveit
|
||||||
|
garray_template
|
||||||
|
garray_usedindsp
|
||||||
|
garray_vec
|
||||||
|
gensym
|
||||||
|
get_sys_dacsr
|
||||||
|
get_sys_main_advance
|
||||||
|
get_sys_schedadvance
|
||||||
|
get_sys_schedblocksize
|
||||||
|
get_sys_sleepgrain
|
||||||
|
get_sys_soundin
|
||||||
|
get_sys_soundout
|
||||||
|
get_sys_time
|
||||||
|
get_sys_time_per_dsp_tick
|
||||||
|
getbytes
|
||||||
|
getfn
|
||||||
|
getzbytes
|
||||||
|
gfxstub_deleteforkey
|
||||||
|
gfxstub_new
|
||||||
|
glist_add
|
||||||
|
glist_addglist
|
||||||
|
glist_arraydialog
|
||||||
|
glist_clear
|
||||||
|
glist_delete
|
||||||
|
glist_deselect
|
||||||
|
glist_dpixtodx
|
||||||
|
glist_dpixtody
|
||||||
|
glist_drawiofor
|
||||||
|
glist_eraseiofor
|
||||||
|
glist_findgraph
|
||||||
|
glist_findrtext
|
||||||
|
glist_fontheight
|
||||||
|
glist_fontwidth
|
||||||
|
glist_getcanvas
|
||||||
|
glist_getfont
|
||||||
|
glist_getnextxy
|
||||||
|
glist_getzoom
|
||||||
|
glist_glist
|
||||||
|
glist_grab
|
||||||
|
glist_init
|
||||||
|
glist_isgraph
|
||||||
|
glist_isselected
|
||||||
|
glist_istoplevel
|
||||||
|
glist_isvisible
|
||||||
|
glist_mergefile
|
||||||
|
glist_noselect
|
||||||
|
glist_pixelstox
|
||||||
|
glist_pixelstoy
|
||||||
|
glist_read
|
||||||
|
glist_redraw
|
||||||
|
glist_retext
|
||||||
|
glist_select
|
||||||
|
glist_selectall
|
||||||
|
glist_sort
|
||||||
|
glist_valid DATA
|
||||||
|
glist_writetobinbuf
|
||||||
|
glist_xtopixels
|
||||||
|
glist_ytopixels
|
||||||
|
glob_evalfile
|
||||||
|
glob_initfromgui
|
||||||
|
glob_pdobject DATA
|
||||||
|
glob_quit
|
||||||
|
glob_setfilename
|
||||||
|
gobj_activate
|
||||||
|
gobj_click
|
||||||
|
gobj_delete
|
||||||
|
gobj_displace
|
||||||
|
gobj_getrect
|
||||||
|
gobj_save
|
||||||
|
gobj_select
|
||||||
|
gobj_shouldvis
|
||||||
|
gobj_vis
|
||||||
|
gpointer_check
|
||||||
|
gpointer_copy
|
||||||
|
gpointer_init
|
||||||
|
gpointer_setarray
|
||||||
|
gpointer_setglist
|
||||||
|
gpointer_unset
|
||||||
|
graph_array
|
||||||
|
gstub_cutoff
|
||||||
|
gstub_new
|
||||||
|
gtemplate_get
|
||||||
|
guiconnect_new
|
||||||
|
guiconnect_notarget
|
||||||
|
iem_fstyletoint
|
||||||
|
iem_inttofstyle
|
||||||
|
iem_inttosymargs
|
||||||
|
iem_symargstoint
|
||||||
|
iemgui_all_dollar2raute
|
||||||
|
iemgui_all_dollararg2sym
|
||||||
|
iemgui_all_loadcolors
|
||||||
|
iemgui_all_raute2dollar
|
||||||
|
iemgui_all_sym2dollararg
|
||||||
|
iemgui_clip_font
|
||||||
|
iemgui_clip_size
|
||||||
|
iemgui_color
|
||||||
|
iemgui_color_hex DATA
|
||||||
|
iemgui_delete
|
||||||
|
iemgui_delta
|
||||||
|
iemgui_dialog
|
||||||
|
iemgui_displace
|
||||||
|
iemgui_dollar2raute
|
||||||
|
iemgui_label
|
||||||
|
iemgui_label_font
|
||||||
|
iemgui_label_pos
|
||||||
|
iemgui_new_dogetname
|
||||||
|
iemgui_new_getnames
|
||||||
|
iemgui_newzoom
|
||||||
|
iemgui_pos
|
||||||
|
iemgui_properties
|
||||||
|
iemgui_raute2dollar
|
||||||
|
iemgui_receive
|
||||||
|
iemgui_save
|
||||||
|
iemgui_select
|
||||||
|
iemgui_send
|
||||||
|
iemgui_size
|
||||||
|
iemgui_verify_snd_ne_rcv
|
||||||
|
iemgui_vis
|
||||||
|
iemgui_vu_col DATA
|
||||||
|
iemgui_vu_db2i DATA
|
||||||
|
iemgui_vu_scale_str DATA
|
||||||
|
iemgui_zoom
|
||||||
|
ilog2
|
||||||
|
inlet_free
|
||||||
|
inlet_new
|
||||||
|
inmidi_aftertouch
|
||||||
|
inmidi_byte
|
||||||
|
inmidi_controlchange
|
||||||
|
inmidi_noteon
|
||||||
|
inmidi_pitchbend
|
||||||
|
inmidi_polyaftertouch
|
||||||
|
inmidi_programchange
|
||||||
|
inmidi_realtimein
|
||||||
|
inmidi_sysex
|
||||||
|
linetraverser_next
|
||||||
|
linetraverser_skipobject
|
||||||
|
linetraverser_start
|
||||||
|
logpost
|
||||||
|
max_ex_tab
|
||||||
|
max_ex_tab_store
|
||||||
|
max_ex_var
|
||||||
|
max_ex_var_store
|
||||||
|
mayer_fft
|
||||||
|
mayer_fht
|
||||||
|
mayer_ifft
|
||||||
|
mayer_realfft
|
||||||
|
mayer_realifft
|
||||||
|
midi_getdevs
|
||||||
|
mmio_close_audio
|
||||||
|
mmio_getdevs
|
||||||
|
mmio_open_audio
|
||||||
|
mmio_reportidle
|
||||||
|
mmio_send_dacs
|
||||||
|
mtof
|
||||||
|
namelist_append
|
||||||
|
namelist_append_files
|
||||||
|
namelist_free
|
||||||
|
namelist_get
|
||||||
|
nullfn
|
||||||
|
obj_connect
|
||||||
|
obj_disconnect
|
||||||
|
obj_issignalinlet
|
||||||
|
obj_issignaloutlet
|
||||||
|
obj_list
|
||||||
|
obj_nexttraverseoutlet
|
||||||
|
obj_ninlets
|
||||||
|
obj_noutlets
|
||||||
|
obj_nsiginlets
|
||||||
|
obj_nsigoutlets
|
||||||
|
obj_saveformat
|
||||||
|
obj_siginletindex
|
||||||
|
obj_sigoutletindex
|
||||||
|
obj_starttraverseoutlet
|
||||||
|
open_via_helppath
|
||||||
|
open_via_path
|
||||||
|
outlet_anything
|
||||||
|
outlet_bang
|
||||||
|
outlet_float
|
||||||
|
outlet_free
|
||||||
|
outlet_getsymbol
|
||||||
|
outlet_list
|
||||||
|
outlet_new
|
||||||
|
outlet_pointer
|
||||||
|
outlet_setstacklim
|
||||||
|
outlet_symbol
|
||||||
|
pa_close_audio
|
||||||
|
pa_getdevs
|
||||||
|
pa_open_audio
|
||||||
|
pa_send_dacs
|
||||||
|
pd_bang
|
||||||
|
pd_bind
|
||||||
|
pd_canvasmaker DATA
|
||||||
|
pd_checkglist
|
||||||
|
pd_checkobject
|
||||||
|
pd_compatibilitylevel DATA
|
||||||
|
pd_emptylist
|
||||||
|
pd_error
|
||||||
|
pd_fft
|
||||||
|
pd_findbyclass
|
||||||
|
pd_float
|
||||||
|
pd_forwardmess
|
||||||
|
pd_free
|
||||||
|
pd_getcanvaslist
|
||||||
|
pd_getdspstate
|
||||||
|
pd_getparentwidget
|
||||||
|
pd_globallock
|
||||||
|
pd_globalunlock
|
||||||
|
pd_list
|
||||||
|
pd_maininstance DATA
|
||||||
|
pd_new
|
||||||
|
pd_newest
|
||||||
|
pd_objectmaker DATA
|
||||||
|
pd_pointer
|
||||||
|
pd_popsym
|
||||||
|
pd_pushsym
|
||||||
|
pd_symbol
|
||||||
|
pd_typedmess
|
||||||
|
pd_unbind
|
||||||
|
pd_vmess
|
||||||
|
plus_perform
|
||||||
|
pointerinlet_new
|
||||||
|
post
|
||||||
|
postatom
|
||||||
|
postfloat
|
||||||
|
poststring
|
||||||
|
powtodb
|
||||||
|
q8_rsqrt
|
||||||
|
q8_sqrt
|
||||||
|
qrsqrt
|
||||||
|
qsqrt
|
||||||
|
resample_dsp
|
||||||
|
resample_free
|
||||||
|
resample_init
|
||||||
|
resamplefrom_dsp
|
||||||
|
resampleto_dsp
|
||||||
|
resizebytes
|
||||||
|
rmstodb
|
||||||
|
rtext_activate
|
||||||
|
rtext_displace
|
||||||
|
rtext_draw
|
||||||
|
rtext_erase
|
||||||
|
rtext_free
|
||||||
|
rtext_getseltext
|
||||||
|
rtext_gettag
|
||||||
|
rtext_gettext
|
||||||
|
rtext_height
|
||||||
|
rtext_key
|
||||||
|
rtext_mouse
|
||||||
|
rtext_new
|
||||||
|
rtext_retext
|
||||||
|
rtext_select
|
||||||
|
rtext_width
|
||||||
|
s_ DATA
|
||||||
|
s__N DATA
|
||||||
|
s__X DATA
|
||||||
|
s_anything DATA
|
||||||
|
s_bang DATA
|
||||||
|
s_float DATA
|
||||||
|
s_list DATA
|
||||||
|
s_pointer DATA
|
||||||
|
s_signal DATA
|
||||||
|
s_symbol DATA
|
||||||
|
s_x DATA
|
||||||
|
s_y DATA
|
||||||
|
scalar_class DATA
|
||||||
|
scalar_getbasexy
|
||||||
|
scalar_new
|
||||||
|
scalar_redraw
|
||||||
|
sched_geteventno
|
||||||
|
sched_set_using_audio
|
||||||
|
sched_tick
|
||||||
|
signalinlet_new
|
||||||
|
socketreceiver_new
|
||||||
|
socketreceiver_read
|
||||||
|
startpost
|
||||||
|
symbolinlet_new
|
||||||
|
sys_addhist
|
||||||
|
sys_addpollfn
|
||||||
|
sys_advance_samples DATA
|
||||||
|
sys_audioapi DATA
|
||||||
|
sys_audiodevnametonumber
|
||||||
|
sys_audiodevnumbertoname
|
||||||
|
sys_bail
|
||||||
|
sys_bashfilename
|
||||||
|
sys_clearhist
|
||||||
|
sys_close
|
||||||
|
sys_close_audio
|
||||||
|
sys_close_midi
|
||||||
|
sys_closesocket
|
||||||
|
sys_debuglevel DATA
|
||||||
|
sys_decodedialog
|
||||||
|
sys_defaultfont DATA
|
||||||
|
sys_defeatrt DATA
|
||||||
|
sys_do_open_midi
|
||||||
|
sys_externalschedlib DATA
|
||||||
|
sys_fclose
|
||||||
|
sys_flags DATA
|
||||||
|
sys_font DATA
|
||||||
|
sys_fontheight
|
||||||
|
sys_fontweight DATA
|
||||||
|
sys_fontwidth
|
||||||
|
sys_fopen
|
||||||
|
sys_get_audio_apis
|
||||||
|
sys_get_audio_devs
|
||||||
|
sys_get_audio_params
|
||||||
|
sys_get_inchannels
|
||||||
|
sys_get_midi_apis
|
||||||
|
sys_get_midi_devs
|
||||||
|
sys_get_midi_params
|
||||||
|
sys_get_outchannels
|
||||||
|
sys_getblksize
|
||||||
|
sys_getmeters
|
||||||
|
sys_getrealtime
|
||||||
|
sys_getsr
|
||||||
|
sys_getversion
|
||||||
|
sys_gui
|
||||||
|
sys_guicmd DATA
|
||||||
|
sys_havegui
|
||||||
|
sys_hipriority DATA
|
||||||
|
sys_hostfontsize
|
||||||
|
sys_idlehook DATA
|
||||||
|
sys_init_fdpoll
|
||||||
|
sys_initmidiqueue
|
||||||
|
sys_isabsolutepath
|
||||||
|
sys_libdir DATA
|
||||||
|
sys_listdevs
|
||||||
|
sys_listmididevs
|
||||||
|
sys_load_lib
|
||||||
|
sys_loadpreferences
|
||||||
|
sys_lock
|
||||||
|
sys_log_error
|
||||||
|
sys_logerror
|
||||||
|
sys_microsleep
|
||||||
|
sys_midiapi DATA
|
||||||
|
sys_midibytein
|
||||||
|
sys_mididevnametonumber
|
||||||
|
sys_mididevnumbertoname
|
||||||
|
sys_midiindevlist DATA
|
||||||
|
sys_midioutdevlist DATA
|
||||||
|
sys_nearestfontsize
|
||||||
|
sys_nmidiin DATA
|
||||||
|
sys_nmidiout DATA
|
||||||
|
sys_noloadbang DATA
|
||||||
|
sys_open
|
||||||
|
sys_open_absolute
|
||||||
|
sys_open_midi
|
||||||
|
sys_ouch
|
||||||
|
sys_poll_midi
|
||||||
|
sys_pollgui
|
||||||
|
sys_pollmidiqueue
|
||||||
|
sys_pretendguibytes
|
||||||
|
sys_printhook DATA
|
||||||
|
sys_printtostderr DATA
|
||||||
|
sys_putmidibyte
|
||||||
|
sys_putmidimess
|
||||||
|
sys_queuegui
|
||||||
|
sys_register_loader
|
||||||
|
sys_reopen_audio
|
||||||
|
sys_reopen_midi
|
||||||
|
sys_reportidle
|
||||||
|
sys_rmpollfn
|
||||||
|
sys_save_audio_params
|
||||||
|
sys_savepreferences
|
||||||
|
sys_schedadvance DATA
|
||||||
|
sys_send_dacs
|
||||||
|
sys_set_audio_api
|
||||||
|
sys_set_audio_settings
|
||||||
|
sys_set_audio_settings_reopen
|
||||||
|
sys_set_audio_state
|
||||||
|
sys_set_midi_api
|
||||||
|
sys_setchsr
|
||||||
|
sys_setextrapath
|
||||||
|
sys_setmiditimediff
|
||||||
|
sys_sleepgrain DATA
|
||||||
|
sys_sockerror
|
||||||
|
sys_trylock
|
||||||
|
sys_trytoopenone
|
||||||
|
sys_unbashfilename
|
||||||
|
sys_unixerror
|
||||||
|
sys_unlock
|
||||||
|
sys_unqueuegui
|
||||||
|
sys_usestdpath DATA
|
||||||
|
sys_verbose DATA
|
||||||
|
sys_vgui
|
||||||
|
sys_zoom_open DATA
|
||||||
|
sys_zoomfontheight
|
||||||
|
sys_zoomfontwidth
|
||||||
|
template_find_field
|
||||||
|
template_findbyname
|
||||||
|
template_findcanvas
|
||||||
|
template_free
|
||||||
|
template_getfloat
|
||||||
|
template_getsymbol
|
||||||
|
template_match
|
||||||
|
template_new
|
||||||
|
template_notify
|
||||||
|
template_setfloat
|
||||||
|
template_setsymbol
|
||||||
|
text_drawborder
|
||||||
|
text_eraseborder
|
||||||
|
text_setto
|
||||||
|
text_widgetbehavior DATA
|
||||||
|
text_xpix
|
||||||
|
text_ypix
|
||||||
|
value_get
|
||||||
|
value_getfloat
|
||||||
|
value_release
|
||||||
|
value_setfloat
|
||||||
|
verbose
|
||||||
|
vinlet_class DATA
|
||||||
|
voutlet_class DATA
|
||||||
|
word_free
|
||||||
|
word_init
|
||||||
|
word_restore
|
||||||
|
zero_perform
|
||||||
|
zgetfn
|
||||||
|
|
@ -16,6 +16,10 @@ static t_class* cls_sfizz_tilde;
|
||||||
typedef struct _sfizz_tilde {
|
typedef struct _sfizz_tilde {
|
||||||
t_object obj;
|
t_object obj;
|
||||||
t_outlet* outputs[2];
|
t_outlet* outputs[2];
|
||||||
|
t_inlet* input_cc;
|
||||||
|
t_inlet* input_bend;
|
||||||
|
t_inlet* input_touch;
|
||||||
|
t_inlet* input_polytouch;
|
||||||
sfizz_synth_t* synth;
|
sfizz_synth_t* synth;
|
||||||
int midi[3];
|
int midi[3];
|
||||||
int midinum;
|
int midinum;
|
||||||
|
|
@ -23,6 +27,20 @@ typedef struct _sfizz_tilde {
|
||||||
char* filepath;
|
char* filepath;
|
||||||
} t_sfizz_tilde;
|
} t_sfizz_tilde;
|
||||||
|
|
||||||
|
static t_float clamp01(t_float x)
|
||||||
|
{
|
||||||
|
x = (x > 0) ? x : 0;
|
||||||
|
x = (x < 1) ? x : 1;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
static t_float clampB1(t_float x)
|
||||||
|
{
|
||||||
|
x = (x > -1) ? x : -1;
|
||||||
|
x = (x < 1) ? x : 1;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
static void sfizz_tilde_set_file(t_sfizz_tilde* self, const char* file)
|
static void sfizz_tilde_set_file(t_sfizz_tilde* self, const char* file)
|
||||||
{
|
{
|
||||||
const char* dir = self->dir->s_name;
|
const char* dir = self->dir->s_name;
|
||||||
|
|
@ -69,6 +87,11 @@ static void* sfizz_tilde_new(t_symbol* sym, int argc, t_atom argv[])
|
||||||
self->outputs[0] = outlet_new(&self->obj, &s_signal);
|
self->outputs[0] = outlet_new(&self->obj, &s_signal);
|
||||||
self->outputs[1] = outlet_new(&self->obj, &s_signal);
|
self->outputs[1] = outlet_new(&self->obj, &s_signal);
|
||||||
|
|
||||||
|
self->input_cc = inlet_new(&self->obj, &self->obj.ob_pd, &s_float, gensym("cc"));
|
||||||
|
self->input_bend = inlet_new(&self->obj, &self->obj.ob_pd, &s_float, gensym("bend"));
|
||||||
|
self->input_touch = inlet_new(&self->obj, &self->obj.ob_pd, &s_float, gensym("touch"));
|
||||||
|
self->input_polytouch = inlet_new(&self->obj, &self->obj.ob_pd, &s_float, gensym("polytouch"));
|
||||||
|
|
||||||
sfizz_synth_t* synth = sfizz_create_synth();
|
sfizz_synth_t* synth = sfizz_create_synth();
|
||||||
self->synth = synth;
|
self->synth = synth;
|
||||||
|
|
||||||
|
|
@ -94,6 +117,14 @@ static void sfizz_tilde_free(t_sfizz_tilde* self)
|
||||||
outlet_free(self->outputs[0]);
|
outlet_free(self->outputs[0]);
|
||||||
if (self->outputs[1])
|
if (self->outputs[1])
|
||||||
outlet_free(self->outputs[1]);
|
outlet_free(self->outputs[1]);
|
||||||
|
if (self->input_cc)
|
||||||
|
inlet_free(self->input_cc);
|
||||||
|
if (self->input_bend)
|
||||||
|
inlet_free(self->input_bend);
|
||||||
|
if (self->input_touch)
|
||||||
|
inlet_free(self->input_touch);
|
||||||
|
if (self->input_polytouch)
|
||||||
|
inlet_free(self->input_polytouch);
|
||||||
}
|
}
|
||||||
|
|
||||||
static t_int* sfizz_tilde_perform(t_int* w)
|
static t_int* sfizz_tilde_perform(t_int* w)
|
||||||
|
|
@ -120,6 +151,22 @@ static void sfizz_tilde_dsp(t_sfizz_tilde* self, t_signal** sp)
|
||||||
(t_int)sp[0]->s_vec, (t_int)sp[1]->s_vec, (t_int)sp[0]->s_n);
|
(t_int)sp[0]->s_vec, (t_int)sp[1]->s_vec, (t_int)sp[0]->s_n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_list(t_sfizz_tilde* self, t_symbol* sym, int argc, t_atom* argv)
|
||||||
|
{
|
||||||
|
(void)sym;
|
||||||
|
|
||||||
|
if (argc == 2 && argv[0].a_type == A_FLOAT && argv[1].a_type == A_FLOAT) {
|
||||||
|
int key = (int)argv[0].a_w.w_float;
|
||||||
|
if (key < 0 || key > 127)
|
||||||
|
return;
|
||||||
|
t_float vel = clamp01(argv[1].a_w.w_float / 127);
|
||||||
|
if (vel > 0)
|
||||||
|
sfizz_send_hd_note_on(self->synth, 0, key, vel);
|
||||||
|
else
|
||||||
|
sfizz_send_hd_note_off(self->synth, 0, key, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void sfizz_tilde_midiin(t_sfizz_tilde* self, t_float f)
|
static void sfizz_tilde_midiin(t_sfizz_tilde* self, t_float f)
|
||||||
{
|
{
|
||||||
int byte = (int)f;
|
int byte = (int)f;
|
||||||
|
|
@ -167,7 +214,6 @@ static void sfizz_tilde_midiin(t_sfizz_tilde* self, t_float f)
|
||||||
case 0xe0: // pitch bend
|
case 0xe0: // pitch bend
|
||||||
sfizz_send_pitch_wheel(self->synth, 0, (midi[1] + (midi[2] << 7)) - 8192);
|
sfizz_send_pitch_wheel(self->synth, 0, (midi[1] + (midi[2] << 7)) - 8192);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -187,17 +233,55 @@ static void sfizz_tilde_reload(t_sfizz_tilde* self, t_float value)
|
||||||
sfizz_tilde_do_load(self);
|
sfizz_tilde_do_load(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sfizz_tilde_hdcc(t_sfizz_tilde* self, t_float cc, t_float value)
|
static void sfizz_tilde_hdcc(t_sfizz_tilde* self, t_float f1, t_float f2)
|
||||||
{
|
{
|
||||||
sfizz_automate_hdcc(self->synth, 0, (int)cc, value);
|
int cc = (int)f1;
|
||||||
|
if (cc < 0 || cc >= SFIZZ_NUM_CCS)
|
||||||
|
return;
|
||||||
|
sfizz_automate_hdcc(self->synth, 0, (int)cc, clamp01(f2));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sfizz_tilde_voices(t_sfizz_tilde* self, t_float value)
|
static void sfizz_tilde_cc(t_sfizz_tilde* self, t_float f1, t_float f2)
|
||||||
{
|
{
|
||||||
int numvoices = (int)value;
|
sfizz_tilde_hdcc(self, f1, f2 / 127);
|
||||||
if (numvoices < 1)
|
}
|
||||||
numvoices = 1;
|
|
||||||
|
|
||||||
|
static void sfizz_tilde_hdbend(t_sfizz_tilde* self, t_float f1)
|
||||||
|
{
|
||||||
|
sfizz_send_hd_pitch_wheel(self->synth, 0, clampB1(f1));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_bend(t_sfizz_tilde* self, t_float f1)
|
||||||
|
{
|
||||||
|
return sfizz_tilde_hdbend(self, f1 / 8191);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_hdtouch(t_sfizz_tilde* self, t_float f1)
|
||||||
|
{
|
||||||
|
sfizz_send_hd_channel_aftertouch(self->synth, 0, clamp01(f1));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_touch(t_sfizz_tilde* self, t_float f1)
|
||||||
|
{
|
||||||
|
sfizz_tilde_hdtouch(self, f1 / 127);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_hdpolytouch(t_sfizz_tilde* self, t_float key, t_float f2)
|
||||||
|
{
|
||||||
|
if (key < 0 || key > 127)
|
||||||
|
return;
|
||||||
|
sfizz_send_hd_poly_aftertouch(self->synth, 0, (int)key, clamp01(f2));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_polytouch(t_sfizz_tilde* self, t_float f1, t_float f2)
|
||||||
|
{
|
||||||
|
sfizz_tilde_hdpolytouch(self, f1, f2 / 127);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sfizz_tilde_voices(t_sfizz_tilde* self, t_float f1)
|
||||||
|
{
|
||||||
|
int numvoices = (int)f1;
|
||||||
|
numvoices = (numvoices < 1) ? 1 : numvoices;
|
||||||
sfizz_set_num_voices(self->synth, numvoices);
|
sfizz_set_num_voices(self->synth, numvoices);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,14 +302,30 @@ void sfizz_setup()
|
||||||
CLASS_DEFAULT, A_GIMME, A_NULL);
|
CLASS_DEFAULT, A_GIMME, A_NULL);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_dsp, gensym("dsp"), A_CANT, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_dsp, gensym("dsp"), A_CANT, A_NULL);
|
||||||
|
class_addlist(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_list);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_midiin, &s_float, A_FLOAT, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_midiin, &s_float, A_FLOAT, A_NULL);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_load, gensym("load"), A_DEFSYM, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_load, gensym("load"), A_DEFSYM, A_NULL);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_reload, gensym("reload"), A_DEFFLOAT, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_reload, gensym("reload"), A_DEFFLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_cc, gensym("cc"), A_FLOAT, A_FLOAT, A_NULL);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_hdcc, gensym("hdcc"), A_FLOAT, A_FLOAT, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_hdcc, gensym("hdcc"), A_FLOAT, A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_bend, gensym("bend"), A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_hdbend, gensym("hdbend"), A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_touch, gensym("touch"), A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_hdtouch, gensym("hdtouch"), A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_polytouch, gensym("polytouch"), A_FLOAT, A_FLOAT, A_NULL);
|
||||||
|
class_addmethod(
|
||||||
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_hdpolytouch, gensym("hdpolytouch"), A_FLOAT, A_FLOAT, A_NULL);
|
||||||
class_addmethod(
|
class_addmethod(
|
||||||
cls_sfizz_tilde, (t_method)&sfizz_tilde_voices, gensym("voices"), A_FLOAT, A_NULL);
|
cls_sfizz_tilde, (t_method)&sfizz_tilde_voices, gensym("voices"), A_FLOAT, A_NULL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,60 @@
|
||||||
#N canvas 932 395 659 405 12;
|
#N canvas 614 464 709 426 12;
|
||||||
#X declare -lib sfizz;
|
#X declare -lib sfizz;
|
||||||
#X obj 4 3 cnv 15 650 80 empty empty sfizz 20 30 0 40 -261682 -66577
|
#X obj 4 3 cnv 15 700 80 empty empty sfizz 20 30 0 40 -261682 -66577
|
||||||
0;
|
0;
|
||||||
#X text 45 54 A synthesizer for instruments in SFZ format;
|
#X text 45 54 A synthesizer for instruments in SFZ format;
|
||||||
#X obj 241 165 r sfizz-ctl;
|
|
||||||
#X text 33 167 create a SFZ instrument;
|
#X text 33 167 create a SFZ instrument;
|
||||||
#X obj 29 324 midiin;
|
#X obj 26 323 midiin;
|
||||||
#X obj 29 349 s sfizz-ctl;
|
#X text 23 300 connect MIDI-in;
|
||||||
#X text 26 301 connect MIDI-in;
|
|
||||||
#X obj 162 223 dac~;
|
#X obj 162 223 dac~;
|
||||||
#X msg 180 346 voices \$1;
|
#X msg 177 345 voices \$1;
|
||||||
#X obj 180 371 s sfizz-ctl;
|
#X text 175 301 modify the polyphony;
|
||||||
#X text 178 302 modify the polyphony;
|
#X obj 376 326 hsl 127 15 0 1 0 1 empty empty empty -2 -8 0 10 -262144
|
||||||
#X obj 183 326 hsl 128 15 1 256 0 1 empty empty empty -2 -8 0 10 -262144
|
-1 -1 6300 1;
|
||||||
-1 -1 3138 1;
|
#X floatatom 466 346 5 0 0 0 - - -;
|
||||||
#X floatatom 273 346 5 0 0 0 - - -;
|
#X text 372 302 modulate a parameter;
|
||||||
#X obj 378 372 s sfizz-ctl;
|
#X msg 373 346 hdcc 300 \$1;
|
||||||
#X obj 381 327 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 -262144
|
|
||||||
-1 -1 6350 1;
|
|
||||||
#X floatatom 471 347 5 0 0 0 - - -;
|
|
||||||
#X text 377 303 modulate a parameter;
|
|
||||||
#X msg 378 347 hdcc 300 \$1;
|
|
||||||
#X obj 27 115 declare -lib sfizz;
|
#X obj 27 115 declare -lib sfizz;
|
||||||
#X obj 163 192 sfizz~ example.sfz;
|
#X obj 163 192 sfizz~ example.sfz;
|
||||||
#X text 18 93 load the sfizz library;
|
#X text 18 93 load the sfizz library;
|
||||||
#X msg 221 115 \; pd dsp 1;
|
#X msg 221 115 \; pd dsp 1;
|
||||||
#X text 218 94 click to turn on DSP;
|
#X text 218 94 click to turn on DSP;
|
||||||
#X text 153 247 output stereo audio;
|
#X text 153 247 output stereo audio;
|
||||||
#X msg 366 223 reload;
|
#X msg 398 223 reload;
|
||||||
#X obj 366 248 s sfizz-ctl;
|
#X msg 498 223 load example.sfz;
|
||||||
#X obj 466 248 s sfizz-ctl;
|
#X text 396 200 reload the instrument or load another;
|
||||||
#X msg 466 223 load example.sfz;
|
#X obj 241 165 r \$0-input;
|
||||||
#X text 364 200 reload the instrument or load another;
|
#X obj 26 348 s \$0-input;
|
||||||
#X connect 2 0 19 0;
|
#X obj 177 370 s \$0-input;
|
||||||
#X connect 4 0 5 0;
|
#X obj 373 371 s \$0-input;
|
||||||
|
#X obj 398 248 s \$0-input;
|
||||||
|
#X obj 498 248 s \$0-input;
|
||||||
|
#X obj 177 326 nbx 5 14 1 256 0 1 empty empty empty 0 -8 0 10 -262144
|
||||||
|
-1 -1 64 256;
|
||||||
|
#X text 567 302 send a note;
|
||||||
|
#X obj 568 348 makenote 100 500;
|
||||||
|
#X obj 568 373 list;
|
||||||
|
#X obj 568 398 s \$0-input;
|
||||||
|
#X msg 568 323 60;
|
||||||
|
#X obj 386 92 cnv 15 300 100 empty empty Inlets 20 12 0 14 -233017
|
||||||
|
-66577 0;
|
||||||
|
#X text 395 140 3: pitch bend;
|
||||||
|
#X text 395 154 4: channel aftertouch;
|
||||||
|
#X text 395 168 5: polyphonic aftertouch and key;
|
||||||
|
#X text 395 126 2: controller and value;
|
||||||
|
#X text 395 112 1: note and velocity;
|
||||||
|
#X connect 3 0 22 0;
|
||||||
|
#X connect 6 0 23 0;
|
||||||
|
#X connect 8 0 11 0;
|
||||||
#X connect 8 0 9 0;
|
#X connect 8 0 9 0;
|
||||||
#X connect 11 0 8 0;
|
#X connect 11 0 24 0;
|
||||||
#X connect 11 0 12 0;
|
#X connect 13 0 5 0;
|
||||||
#X connect 14 0 17 0;
|
#X connect 13 1 5 1;
|
||||||
#X connect 14 0 15 0;
|
#X connect 18 0 25 0;
|
||||||
#X connect 17 0 13 0;
|
#X connect 19 0 26 0;
|
||||||
#X connect 19 0 7 0;
|
#X connect 21 0 13 0;
|
||||||
#X connect 19 1 7 1;
|
#X connect 27 0 6 0;
|
||||||
#X connect 24 0 25 0;
|
#X connect 29 0 30 0;
|
||||||
#X connect 27 0 26 0;
|
#X connect 29 1 30 1;
|
||||||
|
#X connect 30 0 31 0;
|
||||||
|
#X connect 32 0 29 0;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ cmake -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
|
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
|
||||||
-DSFIZZ_VST=ON \
|
-DSFIZZ_VST=ON \
|
||||||
-DSFIZZ_AU=ON \
|
-DSFIZZ_AU=ON \
|
||||||
|
-DSFIZZ_PUREDATA=ON \
|
||||||
-DSFIZZ_RENDER=OFF \
|
-DSFIZZ_RENDER=OFF \
|
||||||
-DSFIZZ_SHARED=OFF \
|
-DSFIZZ_SHARED=OFF \
|
||||||
-DSFIZZ_TESTS=ON \
|
-DSFIZZ_TESTS=ON \
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue